我想使用 AWS Identity and Access Management (IAM) 角色下載 SSE-KMS 加密的 Amazon Simple Storage Service (Amazon S3) 物件。但是,我收到 “Access Denied” (存取遭拒) 錯誤。
解決方法
使用 AWS Key Management Service (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 位址條件運算子