[AWS]IAM Policyで、S3特定バケット内へのアクセスを許可する方法

あるユーザ(またはグループ)に対して、特定のバケット内へのアクセスを許可するにはこのようにします。
例:バケット"hogehoge"とその中のオブジェクトに対するあらゆる操作を許可
{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource":["arn:aws:s3:::hogehoge","arn:aws:s3:::hogehoge/*"]
    }
  ]
}
ポイントは、"arn:aws:s3:::hogehoge"と"arn:aws:s3:::hogehoge/*"の両方を書くことです。

これは、「bucketそのものに対するアクセスと、bucket配下のオブジェクトに対するアクセス両方を指定する必要があるため」だそうです。

当初このことに気づかず、"arn:aws:s3:::hogehoge/*"とだけ書いてたためにアクセスできなくて1時間ほど悩んでしまいました。

公式サイトのフォーラムに答えがありました。
https://forums.aws.amazon.com/thread.jspa?threadID=101614

IAMはとっかかりが難しいですが、使いこなせるようになると一気に可能性が広がるので、ぜひ使いこなしたいですね。
Enjoy!
カテゴリ:

人気記事