S3でstatic website hostingをしている場合、非エンジニアがファイルアップロードしたい(Cyberduck)のでアカウント作成お願いします!と依頼されて、権限周りをちゃんと設定しないと間違えてバケット消してしまった!アーーーーッ!!!?などどならないように、今回ポリシーを新たに設定してみました。
■やりたいこと
- すべてのバケット一覧を表示するように
- 対象のバケット以外はアクセスできないように
- バケット自体を削除できないように
- ファイルのアップロードができるように
- ファイルを削除できるように
- ファイルの名前を変更できるように
■ポリシーの追加
https://awspolicygen.s3.amazonaws.com/policygen.html
Policy Simulator使うと楽!
- S3-Upload_hosting.adachin.jp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": "arn:aws:s3:::*" }, { "Action": [ "s3:GetObject", "s3:ListBucket", "s3:DeleteObject", "s3:PutObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::hosting.adachin.me", "arn:aws:s3:::hosting.adachin.me/*" ] } ] } |
あとはこのポリシーをIAMユーザに紐付けてクレデンシャルを発行すればOK
■確認
- 他のバケットにはアクセスできないのでOK
- ファイルアップロードOK
- ファイルの削除OK
- 恐怖のバケット削除!!できずOK
ちなみにバケットに入ってからのファイルの削除は可能となります。
(バージョニングは有効に!!!)
■まとめ
デフォルトのポリシーであればいいのにと思った。
0件のコメント