KMS 密钥的 AWS Config 传输通道权限
如果您想为 S3 存储桶的 AWS KMS 密钥创建策略,允许您对由 AWS Config 为 S3 存储桶传输而传输的对象使用基于 KMS 的加密,请使用本主题中的信息。
目录
使用 IAM 角色(S3 存储桶传输)时 KMS 密钥的必需权限
如果您使用 IAM 角色设置,AWS 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 存储桶策略或 AWS KMS 密钥未提供对 AWS Config 的适当访问权限,则 AWS Config 尝试向 Amazon S3 存储桶发送配置信息将失败。在这种情况下,AWS Config 会再次发送这些信息,这次会以 AWS Config 服务委托人的身份发送。在这种情况下,您必须将下文提到的权限策略附加到 AWS KMS 密钥,以授予 AWS Config 在向 Amazon S3 存储桶传输信息时使用该密钥的权限。
使用服务相关角色(S3 存储桶传输)时 AWS KMS 密钥的必需权限
AWS Config 服务相关角色无权访问 AWS KMS 密钥。因此,如果您使用服务相关角色设置,AWS ConfigAWS Config 会将信息作为 AWS Config 服务主体发送。您需要将下文提到的访问策略附加到 AWS KMS 密钥,以授予 AWS Config 在向 Amazon S3 存储桶传输信息时使用 AWS KMS 密钥的权限。
授予 AWS Config 对 AWS KMS 密钥的访问权限
此策略允许 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 Config 将向其传送配置项的 Amazon S3 存储桶中的数据的 AWS KMS 密钥。 -
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 服务主体仅代表账户 123456789012 中 us-east-1 区域中的传输通道与您的 Amazon S3 存储桶进行交互:"ArnLike": {"AWS:SourceArn":
"arn:aws:config:us-east-1:123456789012:*"}。