IAM Policy
IAM Policy とは
IAM エンティティ (User、Group、Role) にアクセス権を与える AWS リソース。
IAM Policy には Identity Based Policy と Resource Based Policy の2種類がある。
Identity Based Policy は IAM エンティティに付与される。
Resource Based Policy は S3 などの AWS リソースに付与される。
Identity Based Policy
Identity Based Policy は Inline Policy と Managed Policy で設定できる。
Inline Policy は User、 Group、Role と1対1の関係にあり、他の Identity と共有することができない。
Identity を削除すると付随する Inline Policy も削除される。
Managed Policy は AWS Managed Policy と Customer Managed Policy の2種類ある。
AWS Managed Policy は AWS によって作成された Policy。
Customer Managed Policy は ユーザー自身によって作成された Policy。
Managed Policy は複数の Identity に付与できる。
Resourced Based Policy
Resourced Based Policy は JSON に Principal という項目を持ち、そのリソースを使用できる Principal を定義できる。
Resourced Based Policy は Role にも設定できる。
Role に設定された Resourced Based Policy を Trust Policyという。
クロスアカウントでどのアカウントが Role を引き受けることができるかを制限できる。
なぜ必要か
IAM エンティティの権限を制限するため。
IAM エンティティは箱のようなもので、権限のコントロールの実態は IAM Policy にある。
いつ使われるか
IAM エンティティを作成するとき。
どうやって使われるか
JSON 形式で記述する。
- Version
- ポリシー言語のバージョン
- Statement
- Policy の内容を書くポリシーの主要エレメント
- Sid (ステートメント ID)
- 任意の識別子
- Effect
- ステートメントの結果を許可(Allow)または明示的な拒否(Deny)のどちらにするかを指定する
- Action
- 許可または拒否される特定のアクション
- Resource
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Example", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "*" } ] }