2011-06-23

別アカウントのIAMアカウントに対してs3へのアクセス権限を与える

IAM Policyの方は単純に
{
 "Statement": [
  {
   "Action": "s3:*",
   "Effect": "Allow",
   "Resource": "arn:aws:s3:::*"
  }
 ]
}
とかしちゃえば、s3に関してはなんでもOKになります。

あとは、対象のバケット側のACLで設定しちゃえば良いかと思ったのですが、IAMアカウントにはcanonical user IDが割り当てられていないので無理でした(´・ω・`)

さて、どうするか・・・
s3 Bucket Policyを使えば出来ましたヾ(*・∀・)ノ"
こんな感じ
{
  "Version": "2008-10-17",
  "Id": "2c08cdf1-ddfc-4765-ac19-26b03a8e8b5e",
  "Statement": [
    {
      "Sid": "AllowMyUser",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::012345678901:user/iam-user-name"
      },
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::bucket-name/*",
        "arn:aws:s3:::bucket-name"
      ]
    }
  ]
}

Resourceにはarn:aws:s3:::bucket-name/*だけではなく、arn:aws:s3:::bucket-nameも設定しておくのがミソです。
これがないと、アイテムの一覧を取得することができません。

0 件のコメント:

コメントを投稿