概要
IAMについて調べる機会があったので、
私なりの解釈を交えて以下にまとめた。
IAMとは
「各AWSサービスへのアクセス権限を管理するサービス」である。
以下4つの概念があるが、言葉だけだとわかりづらい。めちゃくちゃわかりやすい概念図を見ればすごく理解できるはず。
概念 | 概要 |
---|---|
IAMポリシー | ○○サービスへの読み取り権限あり、書き込み権限ありというアクセス権限設定の雛形である |
IAMユーザー | そのAWSアカウント内の各サービスを利用するユーザーである。「ユーザー名、パスワード、選択してアタッチした複数のIAMポリシー」からなるデータである。各ユーザーのAWSサービスの操作権限はアタッチされたIAMポリシーの通りとなる |
IAMグループ | IAMユーザーの集合体である。IAMユーザーは複数のIAMグループに所属できる。IAMグループは入れ子にすることはできない。IAMグループにもIAMポリシーを複数アタッチでき、IAMグループに所属しているIAMユーザーは、そのIAMグループにアタッチされているIAMポリシーと自身にアタッチされているIAMポリシーで設定されているAWSサービスの操作権限が与えられることになる |
IAMロール | IAMユーザー、グループは人に割り当てられるものであるのに対し、ロールはそれ以外のもの・・・例えばEC2インスタンスなどに割り当てられるものである。IAMロールにも複数のIAMポリシーをアタッチする。指定のインスタンスにIAMロールを割り当てると、そのインスタンスはIAMポリシーで設定されているAWSサービスへの操作権限を有することになり、インスタンス内のプログラムで別AWSサービスを操作することができるようになる。実際にはKMSという仕組みで別AWSサービスを操作するにあたってのアクセスキーとシークレットキーが与えられ、これを使って操作することになる。AWSで用意されているSDKを利用することでこのKMSという仕組みを意識せずとも別サービスを操作することができるため、使ったほうが絶対いい。 |
ロールの作成
以下、EC2から別のAWSサービスを操作させる場合を例にしたロールの作成手順。
手順
1. IAMのコンソールへアクセス > アクセス管理 - ロール > 「ロールの作成」ボタンを押下
→「ロールの作成」ページへ遷移
2. 「ロールの作成」ページの、「信頼されたエンティティの種類を選択」で「AWSサービス」を選択し、「ユースケースの選択」で「EC2」を選択して「次のステップ:アクセス権限」ボタンを押下
→「Attach アクセス権限ポリシー」ページへ遷移
3. EC2が他のAWSサービスを操作するのに必要なアクセス権限が含まれるポリシーを選択し、「次のステップ:タグ」ボタンを押下
→「タグの追加(オプション)」ページへ遷移
4. 「タグの追加(オプション)」ページで任意の「キー、値」を設定して「次のステップ:確認」を押下
参考:[AWS]表示名、タグの命名規則
→「確認」ページへ遷移
5. 「確認」ページで「ロール名、説明」を入力して「ロールの作成」ボタンを押下
以上
ロールのアタッチ
以下、EC2へのアタッチを例にしたロールのアタッチ手順。
1. EC2のコンソールへアクセス
>インスタンス-インスタンス
>ロールをアタッチしたいEC2インスタンスにチェックを入れ、アクション
>インスタンスの設定
>IAM ロールの割り当て/置換 と押下
→「IAM ロールの割り当て/置換」ページが表示される。
2. 「IAMロール」でEC2インスタンスにアタッチしたいロールを選択して「適用」を押下
以上