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”も追加すると操作できるようになりました。