使用 aws cli 或 CDK 一次为 Cloudwatch 的所有日志组创建加密

Create encryption for all log group of Cloudwatch at a time using aws cli or CDK

为了使用 CLI 命令为 CloudWatch 所有日志组创建加密,需要单独的日志组名称。有没有办法使用单个命令一次加密 CloudWatch 中的所有日志组?或者有没有办法使用 CDK 来实现?

我遵循了以下 AWS 文档:
https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html

为了关联 KMS 密钥,每次都要求我提供个人组名。

aws logs associate-kms-key --log-group-name my-log-group --kms-key-id "key-arn"

使用 CLI 或任何 SDK,您可以获得所有日志组的列表,然后使用循环逐一加密。

用于 python3 SDK (Boto3) this is the relevant documentation regarding the describe_log_groups 功能。您的最终代码应如下所示:

import boto3
client = boto3.client('logs')
response = client.describe_log_groups()
for log_group in response['logGroups']:
    client.associate_kms_key(
        logGroupName=log_group['logGroupName'],
        kmsKeyId='key-arn'
    )