IAMが何もわからん状態から脱却を試みる記事
IAMが認証/認可系のサービスなのは何となくわかるけど、如何せん用語が多すぎる
用語整理
- Amazon S3など一部サービス側にポリシーを定義することができる
- サービス(リソース)側に記述するポリシーをリソースベースポリシーと言う
- IAMユーザー、IAMグループ、IAMロールの3つが存在し、これらにポリシーを定義する
- これら3つに対して定義するポリシーのことをアイデンティティベースポリシーと言う
- ※ AWSには IAMユーザーとrootユーザーが存在するが、rootユーザーは基本使わない
- IAMユーザーに、ポリシーでXXへの◯◯行為を許可する/禁ずる等の権限定義を行える
- IAMロールに、ポリシーでXXへの◯◯行為を許可する/禁ずる等の権限定義を行える
- IAMユーザーには、IAMロールを適用することが可能
- 例) IAMユーザーのAさんに、IAMロール「dev」を適用
- IAMグループの中にはIAMユーザを追加することが可能
- 例) IAMグループの「db_team」内にIAMユーザーのAさん、Bさん、Cさんを追加
- IAMグループにも、IAMロールを適用することが可能
- 例) IAMグループ「db_team」に、IAMロール「dev」を適用
- ※ IAMグループ内の全IAMユーザーに対してIAMロールが適用される
- 例) IAMグループ「db_team」に、IAMロール「dev」を適用
- IAMロールの性質
- IAMロールには、アイデンティティベースポリシーを記述する
- Permissions boundaryが設定できる(AWS OrganizationsのSCPみたいなもの)
- 信頼ポリシーが設定できる(信頼ポリシーはリソースベースポリシー扱い)
※信頼ポリシーはIAMロールの権限を、別のPrincipalに移譲するためのもの
補足
リソースベースポリシーにはPrincipalが存在し、アイデンティティベースポリシーにはPrincipalが存在しない。
「信頼ポリシー」はAWS公式ドキュメントでは「信頼関係」と表記されていたりする様子。