AWS Config 交付渠道 KMS 密钥的权限 - AWS Config

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS Config 交付渠道 KMS 密钥的权限

如果您想为 S3 存储桶的 AWS KMS 密钥创建策略,允许您对由 AWS Config S3 存储桶交付的对象使用基于 KMS 的加密,请使用本主题中的信息。

使用 IAM 角色(S3 存储桶传输)时 KMS 密钥的必需权限

如果您 AWS Config 使用 IAM 角色进行设置,则可以将以下权限策略附加到 KMS 密钥:

{ "Id": "Policy_ID", "Statement": [ { "Sid": "AWSConfigKMSPolicy", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Effect": "Allow", "Resource": "*myKMSKeyARN*", "Principal": { "AWS": [ "account-id1", "account-id2", "account-id3" ] } } ] }
注意

如果 IAM 角色、Amazon S3 存储桶策略或 AWS KMS 密钥未提供对 AWS Config的适当访问权限 AWS Config,则尝试向 Amazon S3 存储桶发送配置信息将失败。在这种情况下,再次 AWS Config 发送信息,这次是作为 AWS Config 服务主体发送。在这种情况下,您必须将下文提到的权限策略附加到 AWS KMS 密钥,以授予在向 Amazon S3 存储桶传送信息时使用该密钥的 AWS Config 权限。

使用服务相关角色时 AWS KMS 密钥所需的权限(S3 存储桶交付)

AWS Config 服务相关角色无权访问 AWS KMS 密钥。因此,如果您 AWS Config 使用服务相关角色进行设置,则 AWS Config 将改为以 AWS Config 服务主体身份发送信息。您需要在 AWS KMS 密钥上附加访问策略(如下所述),以授予在向 Amazon S3 存储桶传送信息时使用该 AWS KMS 密钥的 AWS Config 权限。

授予对 AWS KMS 密钥的 AWS Config 访问权限

此策略 AWS Config 允许在向 Amazon S3 存储桶传送信息时使用 AWS KMS 密钥

{ "Id": "Policy_ID", "Statement": [ { "Sid": "AWSConfigKMSPolicy", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "myKMSKeyARN", "Condition": { "StringEquals": { "AWS:SourceAccount": "sourceAccountID" } } } ] }

替换密钥策略中的以下值:

  • mykmsKeyarn — 用于加密将向其传送配置项目 AWS KMS 的 Amazon S3 存储桶 AWS Config 中数据的密钥的 ARN。

  • sourceAccountID – AWS Config 将向其传送配置项的账户的 ID。

您可以使用上述 AWS KMS 密钥策略中的AWS:SourceAccount条件来限制 Config 服务主体仅在代表特定账户执行操作时与 AWS KMS 密钥交互。

AWS Config 还支持这样的AWS:SourceArn条件,即限制 Config 服务委托人仅在代表特定 AWS Config 交付渠道执行操作时与 Amazon S3 存储桶进行交互。使用 AWS Config 服务主体时,该AWS:SourceArn属性将始终设置为交付渠道arn:aws:config:sourceRegion:sourceAccountID:*所在sourceRegion区域,并且sourceAccountID是包含配送渠道的账户的 ID。有关 AWS Config 配送渠道的更多信息,请参阅管理交付渠道。例如,添加以下条件以限制 Config 服务主体仅代表账户 123456789012us-east-1 区域中的传输通道与您的 Amazon S3 存储桶进行交互:"ArnLike": {"AWS:SourceArn": "arn:aws:config:us-east-1:123456789012:*"}