2

次のように、バケットごとにOnly PutObjectポリシーを設定しようとしています。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt####",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:PutObjectVersionAcl"
            ],
            "Resource": [
                "arn:aws:s3:::my-bucket/*"
            ]
        }
    ]
}

しかし、ファイルをアップロードしようとするとAWS SDK、AWS から 403 応答を受け取ったと思います。このポリシーがアタッチされている IAM ユーザーの正しいアクセス キーを必ず使用してください。

なぜAWS3がこのポリシーに文句を言うべきではないのか知っている人はいますか?

編集:

何時間もの試行錯誤の後、私は説明したい奇妙な行動に出くわしました.

s3:ListBucket上記のポリシーに追加すると、問題なく動作します。これがないと、403 が返されます。ListBucket アクションが必要ないのに、Amazon が強制的にListBucketアクションを設定するのはなぜですか?

ありがとう

4

1 に答える 1

-1

これをトラブルシューティングする最善の方法は、ポリシーに次のアクションとリソースを提供することです。

"Action": [
    "s3:*"
],
"Resource": [
    "arn:aws:s3:::my-bucket",
    "arn:aws:s3:::my-bucket/*"
]

これにより、正しいアクセス キーを使用していることを確認できます。成功した場合は、不正なアクション (s3:ListBucket など) を使用している可能性があります。CloudTrail を使用して、呼び出されている不正なアクションを見つけることができます。

于 2015-07-29T18:11:47.177 に答える