1. ホーム

AWS S3 CLI のパーミッションのバグ

2022-02-09 08:42:54

AWS CLIを使用してS3上にバケットを作成したところ、ファイルをアップロードする際に以下のエラーが発生しました。

CreateMultipartUpload操作の呼び出し時にクライアントエラー(AccessDenied)が発生しました。匿名ユーザーは、マルチパートのアップロードを開始できません。認証してください。

コマンドを実行:aws s3 ls s3://mybucket-1 また、アクセスエラーでプロンプトが表示されました。

ただ、今回はrootユーザーではなく、IAMユーザーを使っているのが違うところです。しかし、私が使っているIAMユーザーには"AmazonS3FullAccess"の権限が付与されているので、理論上は普通にS3にアクセスすることができます。

バケットにポリシーを設定してみてください。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::mybucket-1"
        },
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::mybucket-1/*"
        }
    ]
}

その後、再びAWS CLIでS3を操作してみると、すべて正常に動作しました。この時点で、問題は解決しました。

翌日、うっかりAWS CLIで別のバケットをポリシーセットなしで操作してしまいましたが、すべて問題なく動作しました そこで、"mybucket-1"のポリシーを削除し、再度"mybucket-1"のAWS CLIで試してみると、やはり動きました!

ググった結果、Stack Overflowの一部の神が答えを出してくれました。この問題に遭遇したら、犬の散歩に行き、戻って来て操作を続ければ大丈夫だそうです

http://stackoverflow.com/questions/33600192/aws-s3-cli-anonymous-users-cannot-initiate-multipart-uploads 

[更新】をご覧ください。]

この問題は、AWS CLI で作成しても Web Console で作成しても、新規に作成したバケットが AWS CLI で正しく動作するまでに時間がかかるという、繰り返される経路が見つかりました。

[更新】のお知らせ]

上記の問題はAWS Internationalでのみ発生し、AWS Chinaでは問題ありません。

取得元:https://www.cnblogs.com/hunterxue/p/5353656.html