web-dev-qa-db-ja.com

ルートキーを使用してAWS CLIからS3 cp AccessDenied

AWS cliをEC2インスタンスにインストールし、aws configureを実行してAWSAccessKeyIdおよびAWSSecretKeyキーを指定することで構成したので、コマンドaws s3 lsを実行すると、S3バケットの名前が返されます( 「mybucket」と呼びます)。

しかし、aws s3 cp localfolder/ s3://mybucket/ --recursiveを試してみると、次のようなエラーが表示されます

A client error (AccessDenied) occurred when calling the CreateMultipartUpload operation: Anonymous users cannot initiate multipart uploads.  Please authenticate.

Aws configureを実行し、ルートキーを与えることで、認証に必要なすべてをaws cliに効果的に提供していると思いましたか?それらをリストするのではなく、S3バケットへのコピーに関して欠けているものはありますか?

12
not link

ルートアクセスキーとシークレットキーには、AWSと対話するための完全な制御と完全な権限があります。もう一度[aws configure]を実行して設定を再確認し、再試行してください。

PS:ルートアクセスキーを使用することは強くお勧めしません-IAM(rootのような管理者権限を取得する)を作成することを考えて、それらを使用してください。

7
Naveen Vijay

バケットを一覧表示できるが、エラーを返す特定のバケットに書き込むことができないという非常に類似した問題を追加すると思いました

An error occurred (AccessDenied) when calling the CreateMultipartUpload operation: Access Denied

バケットがサーバー側の暗号化を使用している場合は、このバケットに書き込むことができるように--sseフラグを追加する必要があります。

19
ScottMcC

環境変数AWS_SECRET_ACCESS_KEYAWS_ACCESS_KEY_IDおよびAWS_REGIONが設定されている場合、AWS CLIはaws configureで指定した認証情報ではなく、それらに高い優先順位を与えます。

したがって、私の場合、bashコマンドunset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEYで問題が解決しました。

5
Mikhail Vasin