シミュレーターでアクセスが許可されていると表示されているのに、実際のオブジェクトへの 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 アクセスでは見つけられず、ポリシーも確認できませんでした。

関連情報