2011年3月15日火曜日

S3操作用IAMアカウントのポリシー(AWS)

スズキです。

開発パートナーさんやプログラム(API/SDK)で、S3(CloudFront)に
ファイルのアップロードなどの操作を行うことが多々あると思いますが、
AWSをフルコントロールできるキーを使う(渡す)のはセキュリティ上よくないので
ってことで、S3の決まったバケットのみ操作できる
IAMアカウントのポリシーを作ってみました。

※IAMに関しては、以下にいろいろ書いています。
▼ "IAM Command Line Toolkit"を使ってELBで利用したSSL証明書の確認
http://blog.suz-lab.com/2011/01/iam-command-line-toolkitielbssl.html
▼ IAMでユーザを作成し"AWS Management Console"でS3を利用
http://blog.suz-lab.com/2011/03/iamaws-management-consoles3.html
▼ "AWS Management Console (S3)"を制限付きで利用
http://blog.suz-lab.com/2011/03/aws-management-console-s3.html
▼ IAMでアカウントを作成するときの流れ
http://blog.suz-lab.com/2011/03/iamaws.html

対象バケットをsuz-lab、対象グループもsuz-labとすると、
下記のコマンドで上記のポリシーが作成できます。

▼ バケット一覧の表示
$ iam-groupaddpolicy --aws-credential-file credentials.txt \
> -g suz-lab \
> -p policy01 \
> -a s3:ListAllMyBuckets \
> -e Allow \
> -r arn:aws:s3:::*

▼ バケットの中身を表示
$ iam-groupaddpolicy --aws-credential-file credentials.txt \
> -g suz-lab \
> -p policy02 \
> -a s3:ListBucket \
> -e Allow \
> -r arn:aws:s3:::suz-lab
$ iam-groupaddpolicy --aws-credential-file credentials.txt \
> -g suz-lab \
> -p policy03 \
> -a s3:GetBucketLocation \
> -e Allow \
> -r arn:aws:s3:::suz-lab

▼ ファイルの取得
$ iam-groupaddpolicy --aws-credential-file credentials.txt \
> -g suz-lab \
> -p policy04 \
> -a s3:GetObject \
> -e Allow \
> -r arn:aws:s3:::suz-lab/*

▼ ファイル/フォルダの削除
$ iam-groupaddpolicy --aws-credential-file credentials.txt \
> -g suz-lab \
> -p policy05 \
> -a s3:DeleteObject \
> -e Allow \
> -r arn:aws:s3:::suz-lab/*

▼ ファイルのアップロード/フォルダの作成
$ iam-groupaddpolicy --aws-credential-file credentials.txt \
> -g suz-lab \
> -p policy06 \
> -a s3:PutObject \
> -e Allow \
> -r arn:aws:s3:::suz-lab/*

▼ パーミッションの取得
$ iam-groupaddpolicy --aws-credential-file credentials.txt \
> -g suz-lab \
> -p policy07 \
> -a s3:GetObjectAcl \
> -e Allow \
> -r arn:aws:s3:::suz-lab/*

▼ パーミッションの設定
$ iam-groupaddpolicy --aws-credential-file credentials.txt \
> -g suz-lab \
> -p policy08 \
> -a s3:PutObjectAcl \
> -e Allow \
> -r arn:aws:s3:::suz-lab/*

他にもいろいろとアクションはありますが、こんな感じで問題ないと思います。


詳しくはこちらの"AWS Policy Generator"で
http://awspolicygen.s3.amazonaws.com/policygen.html

これからは、API利用するときも専用の制限付きユーザ作って、そのキーで使おう。
--------
http://www.suz-lab.com

0 コメント: