IAMはユーザーアカウントとユーザーアカウント権限を管理するサービスと思われがちですが、実際には「ユーザー及びAWSサービスの権限管理」が主な機能になります。
権限設定を行い「ユーザーに割り当てる」のか、「EC2などのS3に割り当てるのか」という管理を行います。
IAMユーザー
管理コンソールへログインするユーザーアカウントになります。
ルートユーザーは権限が強すぎるので、作業用のIAMユーザーを作成して運用することが必須です。
プログラムからIAMユーザー権限で作業ができるようにするアクセスキーを発行することもできますが、極力使用せずIAMロールを使用することが基本です。
アクセスキーを使用するケースとしては、AWS環境外からAWSサービスを操作するという場合くらいになります。(PC端末からAWS CLIを使用するなど)
ポリシーとロール
ポリシーは「操作権限」を定義するものになります。
例えば「特定のS3バケットの読み取り権限を与える」「RDSを作成する権限を与える」という指定を行います。
AWSで定義されているポリシーが既にありますので、そちらを使用するのが基本です。「特定の条件」を付与する場合などAWSで定義されているポリシーでは要求を満たせない場合に新規で作成します。
作成したポリシー(権限)はIAMユーザーに割り当てるのではなく、IAMグループに割り当ててからIAMユーザーに適用するという形を取ります。
EC2などのAWSサービスに割り当てる場合はIAMグループの代わりにIAMロールにポリシーを割り当ててからIAMロールをAWSサービスに割り当てます。
Security Token Service(STS)
ポリシーを割り当てた後に権限があるかどうかを判断する仕組みとしてSTSが使用されます。
割り当てられたロールを使用してアクセスする場合、STSからトークンを取得し、トークンの情報を使用してAWSサービスへのアクセス許可が行われます。
通常はバックグラウンドで実行されている動作になります。
Switch Role
大規模環境で複数のAWSアカウントを使用している場合に用いられます。
AWSアカウントを複数使用するシステムの場合は各AWSアカウント環境にIAMユーザーやポリシーを設定していくことになりますが、作業量が膨大になり、かつ作業漏れも発生します。
そのような場合、1つのAWSアカウント環境にIAMユーザーを作成し集中管理します。
その他の環境にはポリシーを適用したIAMロールのみを作成しユーザーに紐づけるIAMロールを切り替え(Switch)し必要な操作権限を得る仕組みです。
コメント