我想使用 AWS Identity and Access Management (IAM) 角色下载采用 SSE-KMS 加密的 Amazon Simple Storage Service (Amazon S3) 对象。但是,我收到了“Access Denied”错误。
使用 AWS Key Management Service (AWS KMS) 密钥 (SSE-KMS) 的服务器端加密利用转发访问会话 (FAS) 发起 AWS KMS API 请求,而 IP 地址限制可能会无意中拒绝这些请求。当您使用受 IP 限制的 IAM 角色并尝试下载使用 SSE-KMS 加密的 Amazon S3 对象时,可能会收到“Access Denied”错误。
要修改附加到您的 IAM 用户的策略以包含 aws:ViaAWSService 条件,请完成以下步骤:
打开您当前用于限制 IP 地址的 IAM 用户策略。限制策略示例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": [ "IP ADDRESS" ] } } } ] }
修改该策略以包含 aws:ViaAWSService 条件。IAM 用户策略示例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": [ "IP ADDRESS" ] }, "Bool": { "aws:ViaAWSService": "false" } } } ] }
**注意:**aws:ViaAWSService 条件现在可允许 AWS 服务在 IP 地址限制下代表您发起 API 调用。
IP 地址条件运算符