タイトルのようなことがしたかったので,実際に自分のアカウントで試してみた.
やりたいこと
以下のような 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の日記