【AWS IAM】グループ、ユーザー、ロール、ポリシーの関係性の理解
はじめに
初めてAWSを触るのですが、自分に与えられたユーザーがどういう権限を持っていて何ができて、みたいなことがわからずあたふたしているので、とりあえず概念を勉強して行こうかなと思い、調べた結果を自分の言葉でまとめてみました。
そもそもAWS IAMとは
AWS Identity and Access Management, 通称IAM。
そもそもAWSには、二つのアカウントが存在する。
・AWSアカウント
- ルートアカウントで、最強のアカウント。
- 全てのサービスを操作(起動/削除/変更etc...)出来る。
- 取扱に注意が必要。
- 普段からの利用は極力避ける。
・IAMアカウント
- マネジメントコンソール上で操作する時、APIで操作する時に使うアカウント。
- IMAアカウントは、それ毎に細かくどのサービスをどの程度設定出来るかを定義することが出来る.
IAMは、AWS上のサービスを使う際における、AWSアカウントを直接使う代わりの、ユーザー認証・許可の制御サービス。
AWS IAMの機能
機能に関しては、とりあえずこの二つ理解してればいいかなぁって。
・AWSアカウントへの共有アクセス
パスワードやアクセスキーを共有しなくても、AWSアカウントリソースの管理・利用のためのアクセス許可を他者に付与できる。
・詳細なアクセス権限
リソースごとに、ユーザーごとに、さまざまなアクセス権限を付与できる。例えば、このIAMユーザーはこのサービスの管理画面は入れるけどこっちはだめ、見るだけならオッケー、みたいな。
要は開発側のユーザー権限の管理が簡単にできちゃうよってことだと思う。
使っていてよくわからなかった概念
使っていて混乱したことをまとめます。
結論を先に言うと、
ポリシーは実行権限を表すもので、ユーザーや関数につける。関数には一つしか紐づけられないから、ロールに複数のポリシーをまとめて、ロールを関数に紐付ける。
って理解をしとけばいいのかなぁと。
ユーザー
AWSを利用するユーザー。
ユーザーには、(複数の)ポリシーが適用される。
ユーザーは0個以上のグループに所属することができる。
所属するグループのポリシーは、ユーザーに引き継がれる。
グループ
似た性質をもつユーザをまとめたグループ。
グループには、(複数の)ポリシーを適用される。
グループに適用されたポリシーは、グループに所属するユーザーにも引き継がれる。
ポリシー
サービスへのアクセス権を管理するもの。
AWSの多様なサービスとそれに対する動作(アクション)に対して、3つのルールに基づいて許可するかどうかをポリシーとしてまとめる。
Action - どのサービス
Resource - どういう機能の範囲を(起動/削除/変更etc...)
Effect - 許可 or 拒否
このポリシーには2種類ある。
・AWS Managed Policies : AWSが最初から設定しているポリシー
・Customer Managed Policies : ユーザが独自に作成したポリシー
ロール
AWSのリソースの、他のリソースへのアクセス権を管理するもの。
ロールには、(複数の)IAMポリシーが適用される。
一つのリソースには、一つのロールが付与される。
例えば、あるEC2には一つだけIAMロールが付与出来るが、そのロールに様々なポリシーを付与する事で、そのEC2は様々なAWSリソースにアクセスする事が出来るようになる。
(AWSCliコマンドから、S3バケットにアクセスしたり、Lambdaを実行したり出来る。)
ロールは、ユーザーにも付与することがあるらしいが、よくわからなかったので割愛。
参考サイト
これ読んで全部理解できればいいんだろうなぁ
AWSドキュメント:IAMとは
まとまっていてわかりやすかった
qiita : Amazon AWSのIAMのPolicy、Roleの理解
概念の話というよりは手順の話だったけど、いざ使うってなったら参考になりそうな
qiita : GWも明けたし、AWSのIAMについてちゃんと理解しとく
もうちょっと勉強してから読み直したい
qiita : 【AWS】IAMまとめ