IAMユーザー、IAMグループ、IAMロール、IAMポリシー
IAMは(AWS Identity and Access Management)の略で「IDとアクセス管理」と訳します。
IAMは、大まかにIAMユーザー、IAMグループ、IAMロール、IAMポリシーに分類され、それぞれ使い方が異なるため若干ややこしいです。
ということで、メモ書きですが、まとめました。
結論
- IAMユーザー ... 人に対して与えるIAM
- IAMロール ...サービス、プログラムに与えるIAM
- IAMグループ ...同じ権限を与えたいIAMユーザをまとめる機能
- IAMポリシー ...実行者(IAMユーザー、IAMロール、IAMグループ)がどのサービスにアクセスできるのか決まり事を設定する機能
IAMユーザーとIAMロールはそれぞれ人とサービスに対しアクセス管理を行います。
IAMグループはIAMユーザをまとめる便利機能です。
IAMポリシーは権限を設定する機能で、ユーザやロールに紐づけて使います。
IAMポリシーについて
他のIAM機能はなんとなくイメージがつきやすいと思うので、IAMポリシーに絞って解説します。
IAMポリシーは、
何に対して(EC2のサーバやS3のフォルダなど)に、
どのような操作(起動や停止、書き込みや読み込みなど)を
許可するかしないか設定します。
実行者(ユーザ、ロール、グループ)が「何をできるか」を設定することができますし、
例)
- S3バケットに対し、ユーザAにはフルアクセスを許可するが、ユーザBは閲覧のみ
- 特定の場所(IPアドレス)のみ操作可能
操作されるサービス(サーバ、フォルダ)に対し「何を許可するか」も設定することができます。
例)
- EC2からS3にアクセス許可を出す
- API GateWayからLambdaのアクセス許可を出す
IAMロールを設定する時
IAMロールにはカスタムポリシーとAWS管理ポリシーがあります。
AWS管理ポリシーはよく使われるポリシーがAWSによって用意されており例えばS3の「読み書きのみ許可」などを選ぶだけでポリシーをIAMユーザやIAMロールにつけることができます。
カスタムポリシーはAWS管理ポリシーにはない細かい設定をすることができます。
基本的にはAWS管理ポリシーを用いて、賄えない箇所はカスタムポリシーを使うのがいいでしょう。
参考