fc2ブログ

2012-04-29(Sun)

IAMのAccess Policy Languageをいじる(1)

Amazon AWSでIAM(Identity and Access Management)を使うと
アカウント制限を細かく制御できるらしいという噂を聞いたので
使ってみた。
一番ややこしかったのがAccess Policy Languageだったのでメモる。
Access Policy Languageは基本JSONフォーマットになっている。
Access Policy LanguageにはGroup側とUser側と2種類ある。

どちらで設定しても反映するが以下の条件がある。
(Effelct設定条件)
①DefaultはDeny(拒否)である。
②明示的Deny優先である。

つまり、初期値は全てDeny。
GroupでAllowを設定してもUserでDenyを設定したらDeny
GroupでDenyを設定してUserでAllowを設定してもDenyとなる。

また、カテゴリとして一番使いそうなのを設定してみる。
(条件設定カテゴリ)
①Effect -- アクセス許可、拒否の設定
②Action -- 操作の設定
③Resource -- 対象リソースの設定
④Condition -- 制御条件


(設定例)
Group側
{
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket-name/*"
}
]
}


User側
{
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": ["arn:aws:s3:::bucket-name","arn:aws:s3:::bucket-name/*","arn:aws:s3:::bucket-name/path1/*","arn:aws:s3:::bucket-name/path1/path2/*"],
"Condition" : {
"DateGreaterThan" : {
"aws:CurrentTime" : "2012-04-01T12:00:00Z"
},
"DateLessThan": {
"aws:CurrentTime" : "2013-04-01T15:00:00Z"
},
"IpAddress" : {
"aws:SourceIp" : ["192.168.11.0/32","192.168.11.1/32"]
}
}
}
]
}


Resourceでのバケットパス設定で詰まったのでメモっておく。
例えば bucket-name/path1/path2/*へのアクセスを許可するとき
"Resource":"bucket-name/path1/path2/*"
だけではNGである。
"Resource":["bucket-name", ""bucket-name/*", "bucket-name/path1/*","bucket-name/path1/path2/*"]
と順番に記載しなければダメだった。

少々めんどくさいなぁ。


参考:
S3のポリシー設定:
Condition Key設定
関連記事
スポンサーサイト



コメントの投稿

管理者にだけ表示を許可する

コメント

プロフィール

kumagonjp2

Author:kumagonjp2
Python,Django,R,Mongo,MySQL,Struts,Spring,データマイニングなどサーバー関係のメモを残していきます。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
雪が3Dで降るブログパーツ ver2

マウスで見る方向変えられます

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR