#はじめに
AmazonのAWSを使用し始めて、IAM使って、よくわからない言葉が一杯でてきました。
何がわからないって、ロールとポリシーです。
それが、Amazonの説明を読んでもやっぱりしっくりこないので、自分の理解を自分の言葉で書こうと思います。
このくらいわかっていれば、自分の利用範囲ではまあ大丈夫かなくらいのつもりで書いております。
詳しくや、正確なものは、Amazonの説明をみてください。
#説明する用語
##AWS IAM
Identity and Access Management
通常、IAMと書きますが、結局アクセス管理を実施するサービスです。機能のほうがわかりやすいです。
IAMでグループ、ユーザー、ロール、ポリシーという言葉を使います。
##グループ
ユーザをまとめたグループです。
これはWindowsでもグループありますので、それと同じです。
グループには、(複数の)ポリシーを適用します。
##ユーザー
AWSを利用するユーザーです。
結局、開発者のことが多いですね。
AWSを利用するのに、認証機能があり、
- ユーザー名
- パスワード
- アクセスキーID
- シークレットアクセスキー
があります。
ユーザーには、(複数の)ポリシーを適用します。
ユーザーはグループに所属することができます。
所属するグループのポリシーは、ユーザーに引き継がれます。
ユーザーはグループに所属しないこともできます。
##ロール
サービスへアクセスするためのアクセス権を管理するもの。
ユーザーと同じようなもので、例えば、Lambdaの関数が、DynamoDBにアクセスするときに、DynamoDBへのアクセス権が必要で、それをロールと呼びます。
ロールには認証機能はないようです。
例えば、あるAlexaの利用者がスキルを使用する場合、そのスキルはLamdbaの関数である場合、Lamdbaの関数が利用者に代わって、AWSのサービス(DynamoDB)へアクセスすることがあります。ロールはこのときの利用許可の設定をします。この利用者は上記のユーザのようにユーザ名やパスワードやアクセスキーIDやシークレットアクセスキーはもっていないので、上記のユーザーとは違います。
Lamdba関数とロールは多対1です。
Lamdba関数は、どれかひとつのロールとだけ関連付けられます。
##ポリシー
サービスへのアクセス権です。
Windowsのファイルのアクセス権がわかりやすいと思いますが、ファイルの読み取りのみ、書き込み可などのアクセス権がありますが、それと同じです。
AWSのサービスは、LambdaとかDynamoDBとか、S3とか、いろいろありますが、それに対する動作(アクション)に対して、許可するかどうかをポリシーとしてまとめます。
ポリシーは、JSON形式で各サービスへの許可を記載します。ビジュアルエディタで、GUI上で選択しながら作成するか、JSONエディタに直接記載することで作成できます。
ポリシーは、最初からAmazonで用意しているデフォルトのポリシーと、後から自分で新たなポリシーを作成するポリシーがあります。
##アタッチ/デタッチ
ポリシーをグループやユーザーやロールに設定することをアタッチ、その設定を解除することをデタッチと呼びます。
感触的には、ポリシーの設定/解除と書いてくれたほうがわかりやすいのですが、ポリシーのアタッチ/デタッチと呼びます。
#おわりに
今回はこれだけの内容です。