タイトルのようなことがしたかったので,実際に自分のアカウントで試してみた.
やりたいこと
以下のような S3 のバケットが存在していた場合に "s3-kakakakakku-hatenablog-com" を含むバケットだけにワイルドカード指定でアクセス権限を与える.
- s3-kakakakakku-hatenablog-com-1
- s3-kakakakakku-hatenablog-com-2
- s3-kakakakakku-no-permissions
IAMでGroupsとUsersを作成する
事前準備として.
- Group
- S3-Only
- User
- s3-kakakakakku
Policyを設定する(ワイルドカード指定なし)
まずは "s3-kakakakakku-hatenablog-com-1" だけにアクセス権限を与えてみる.
"IAM users sign-in link" から s3-kakakakakku でログインして S3 にアクセスしてみると,"s3-kakakakakku-hatenablog-com-1" にアクセスでき,その他はエラーが出た.
Sorry! You were denied access to do that.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::s3-kakakakakku-hatenablog-com-1" ] } ] }
Policyを設定する(ワイルドカード指定あり)
今度はワイルドカード指定をして "s3-kakakakakku-hatenablog-com" を含んだバケットにアクセス権限を与えてみる.
さっきと同じように "IAM users sign-in link" から s3-kakakakakku でログインして S3 にアクセスしてみると,"s3-kakakakakku-hatenablog-com-1" と "s3-kakakakakku-hatenablog-com-2" にアクセスでき,その他はエラーが出た.
Sorry! You were denied access to do that.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::s3-kakakakakku-hatenablog-com-*" ] } ] }
問題なくできそうなことがわかって良かった!
関連エントリー
AWS Identity and Access Management (IAM) ドキュメント | アマゾン ウェブ サービス(AWS 日本語)
IAMを使って特定の人に特定のbucketのみ操作を許可する | kirie.net blog
amazon S3 のアクセス制御をIAMポリシーで行うメモ - teketeke_55の日記