KMS 密钥的 Amazon Config 传输通道权限 - Amazon Config
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

KMS 密钥的 Amazon Config 传输通道权限

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

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

如果您使用 IAM 角色设置 Amazon Config,可将以下权限策略附加到 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 存储桶策略或 Amazon KMS 密钥未提供对 Amazon Config 的适当访问权限,则 Amazon Config 尝试向 Amazon S3 存储桶发送配置信息将失败。在这种情况下,Amazon Config 会再次发送这些信息,这次会以 Amazon Config 服务委托人的身份发送。在这种情况下,您必须将下文提到的权限策略附加到 Amazon KMS 密钥,以授予 Amazon Config 在向 Amazon S3 存储桶传输信息时使用该密钥的权限。

使用服务相关角色(S3 存储桶传输)时 Amazon KMS 密钥的必需权限

Amazon Config 服务相关角色无权访问 Amazon KMS 密钥。因此,如果您使用服务相关角色设置 Amazon Config,Amazon Config 会将信息作为 Amazon Config 服务主体发送。您需要将下文提到的访问策略附加到 Amazon KMS 密钥,以授予 Amazon Config 在向 Amazon S3 存储桶传输信息时使用 Amazon KMS 密钥的权限。

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

此策略允许 Amazon Config 在向 Amazon S3 存储桶传输信息时使用 Amazon 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 – 用于加密 Amazon Config 将向其传送配置项的 Amazon S3 存储桶中的数据的 Amazon KMS 密钥。

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

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

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