当模拟器表示允许访问时,AWS S3 访问被拒绝实际对象

当模拟器表示允许访问时,AWS S3 访问被拒绝实际对象

我有一个用户,我将称之为 Alfred User,并附加以下 IAM 策略

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::my-bucket-name/*",
                "arn:aws:s3:::my-bucket-name/",
                "arn:aws:s3:::my-bucket-name"
            ]
        }
    ]
}

在 IAM 模拟器中,我使用此策略和此 ARN 对 GetObject 获得“允许”:arn:aws:s3:::my-bucket-name/my-object.xml

在 CLI 上,我执行以下命令时收到 AccessDenied 消息:aws s3 cp s3://my-bucket-name/my-object.xml temp/my-object.xml

调用 GetObject 操作时发生客户端错误(AccessDenied):访问被拒绝

我查看了所有我能想到的资料,但还是无法解释这种差异。我遗漏了什么?

我尝试过的事情

这里的“creds”是指“AWS IAM 访问密钥”

  • IAM 模拟器——有效
  • 一组不同的 IAM 凭证——这有效
  • 使用aws s3 ls s3://my-bucket-name/- 这适用于 Alfred 的 IAM 凭证和我的凭证
  • 将策略与不同 AWS 账户中类似配置的存储桶进行比较。据我所知,这些策略几乎完全相同。

答案1

事实证明,这是对加密此存储桶的 KMS 密钥的权限问题。这些密钥归根帐户所有,因此我无法使用我的正常 IAM 访问权限找到它们,也看不到它们的策略。

相关内容