質問: ### 前提 現在、お客様に用意いただいたAWSのS3バケットに対してパブリックなオブジェクトをアップロードするためのコードを書いています。 弊社作業用のIAMユーザも作成いただいており、そのユーザからアップロードをしています。 ### 事象 現在発生している事象として、アップロードするファイルに対して、 アクセス権限(ACL)のpublic-readを設定してアップロードをおこなうとエラーとなります。 (アクセス権限を設定しなかった場合、正常にアップロードが行われています。) ### 質問・見解 私自身AWSに明るくなく、権限周りなどが非常に苦手なためお伺いしたいのですが、 お客様にIAMユーザのコントロール権限を追加していただくよう依頼すれば解決する問題なのでしょうか。 私の方で調べた限りではs3:PutObjectという権限をに追加いただければアップロードできるのではと考えております。 また、追加できる場合、操作はマネジメントコンソールなどから簡単に行える、かつ、その権限はすぐに反映されますでしょうか。 知識不足にて大変お恥ずかしい限りですが、AWSやS3にお詳しい方がいらっしゃいましたら、是非ともご教授いただけると幸いです。 閲覧いただき、ありがとうございました。
回答: > > お客様にIAMユーザのコントロール権限を追加していただくよう依頼すれば解決する問題なのでしょうか。 > > 私の方で調べた限りではs3:PutObjectという権限をに追加いただければアップロードできるのではと考えております。 > > > `s3:GetObject`, `s3:PutObject`, `s3:PutObjectAcl` が必要と思います。 `s3:GetObjectAcl` もあった方がいいかもしれません。 (参考) (aws-cli) "aws s3 cp help" の "--acl" オプションの説明 > > また、追加できる場合、操作はマネジメントコンソールなどから簡単に行える、かつ、その権限はすぐに反映されますでしょうか。 > > > 標準のポリシーで上記権限を含むものがなさそうなので、**グループポリシー** を作成することになると思います。 マネジメントコンソールからだと、**Policy Generator** で簡単に作成できると思います。 (Policy Generator で作成した例) ``` { "Version": "2012-10-17", "Statement": [ { "Sid": "Xxxx00000000000000, "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::my-backet/*" ] } ] } ```