2013.10.17
IAMを使ってAWS Management Consoleから特定のBucketのみ操作を許可する方法
前に書いた『IAMを使って特定の人に特定のbucketのみ操作を許可する』は操作だけの話だったんですが
AWS Management Consoleを使おうとしたらハマったのでメモ。
- IAMでユーザ作成。
- ユーザのポリシーに以下を指定
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:ListAllMyBuckets"
],
"Sid": "Stmt1382001691000",
"Resource": [
"*"
],
"Effect": "Allow"
},
{
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Sid": "Stmt1382001709000",
"Resource": [
"arn:aws:s3:::hoge-bucket"
],
"Effect": "Allow"
},
{
"Action": [
"s3:*"
],
"Sid": "Stmt1382001730000",
"Resource": [
"arn:aws:s3:::hoge-bucket/*"
],
"Effect": "Allow"
}
]
}
以上。
ハマったところは
“arn:aws:s3:::hoge-bucket”に対する操作に”s3:ListBucket”を指定するよう書いてるサイトが多いんですが
試したところ、これだけだとバケットを開こうとすると
“Sorry! You were denied access to do that.”
とエラーメッセージが出ます。
AWS Management Consoleでアクセスできるようにするには
“s3:GetBucketLocation”も追加すると操作できるようになりました。