問題です
下記の IAM Role だと、 listObjects が 403 を返します。なぜでしょう?
{
"Version": "2012-10-17", "Statement": [
{
"Action": [
"*"
],
"Resource": [
"arn:aws:s3:::s3jstest/*"
],
"Effect": "Allow"
}
]
}
答え
ここがぬけてるからでしたーm9(^Д^)
"Resource": [
"arn:aws:s3:::s3jstest", // ←ここ
"arn:aws:s3:::s3jstest/*"
]
理由
参考URLで知ったんですが、S3のAction一覧に listObjects なんて権限はなく、 listBucket の権限が必要になるとのことです。
確かに、APIドキュメントにも GET Bucket (List Objects)
なんて書かれてます。
で、ワイルドカードで指定するだけだと、bucketに対するAPIはたたけないということで、listObjects もできないと、そういうことですね。
参考
http://qiita.com/rch850/items/068a323e50b906384930
2014/04/16 追記
PutObject や GetObject ではワイルドカードによる指定が必要みたいです。ぐぬぬ。