AWS CLI s3 コマンドの権限エラー

$ aws s3 cp /path/to/filename s3://bucket/prefix/filename --profile myprofile

upload failed: /path/to/filename to s3://bucket/prefix/filename A client error (AccessDenied) occurred when calling the PutObject operation: Access Denied

今日新たに作ったバケットに対して AWS CLI の S3 コマンドからファイルアップを試みたところ、上記のような権限エラーが。このプロフィールで指定している IAM アカウントのインラインポリシーでは、このバケットに対しての全アクションを許可してある。

同じプロフィールを使って、別のマシンから同コマンドを試してみたところアップロードは成功したので、ポリシー設定の原因ではなさそう。

よくよく調べてみたところ、失敗するマシンの AWS CLI のバージョンが aws-cli/1.2.9 で、成功する方では aws-cli/1.9.2 だった。Ubuntu の apt でインストールした AWS CLI パッケージが古かった。pip 経由で awscli をインストールしたところバージョンが aws-cli/1.9.10 になり、アップロードに成功するようになった。

Last updated on December 2, 2015