はじめに
自社の環境ではAWSを利用しています。
そのため、AWSが提供している Amazon Q Developer が「どれぐらい有用なんだ?」と思い、少し使いはじめています。今までは Amazon Q Developer を Builder ID でログインし、無料枠の範囲内で利用していました。
しかし、いろいろ使っていると2週間程度で枠を使い切ってしまったので、Pro利用したいと要望したところ、許可を得ました。ついでに、IAM Identity Center も使ってやろうと思い、Amazon Q Developer 有料化の前に調べてみました。
IAM Identity Center とは?
とりあえず、公式ドキュメントを参照してみました。
AWS IAM Identity Center は、Amazon Q Developer、Amazon QuickSight などの AWS マネージドアプリケーションやその他の AWS リソースに従業員ユーザーを接続するための AWS ソリューションです。既存の ID プロバイダーに接続してディレクトリからユーザーとグループを同期したり、IAM Identity Center で直接ユーザーを作成・管理したりできます。
ふむふむという感じですね。
IAMユーザーとはまた違った、ユーザーやグループ管理を一元的に行うサービスというふんわりしたイメージ。
利用する上で考慮する点
公式ドキュメントを要約してみました。
- リージョンは1つだけ選べる
- 各IAM Identity Centerインスタンスはサポートされている単一リージョンで有効化する。全ユーザーがそのリージョンにアクセスできる必要あり
- アプリケーションアクセス時の注意
- 一部のAWSマネージドアプリ(例:Amazon SageMaker AI)は、IAM Identity Centerが有効なリージョンでしか動かない
- 使うアプリのサポートリージョンで有効化する
- アプリケーションアクセスのみ利用も可能
- 既存のIDプロバイダーを使ってアプリ(例えばAmazon Q Developer)へのアクセス管理だけにIAM Identity Centerを使うこともできる
- IAMロールの自動作成
- ユーザーにAWSアカウントへの権限を与えるためのIAMロールは、IAM Identity Centerが自動で作成する
- AWS Organizationsとの連携
- Organizationsの使用は推奨だけど必須ではない。既にOrganizationsを使ってるなら全部機能ONで使うのがベスト
- Organizationsの使用は、組織インスタンス・アカウントインスタンスという概念もあるため、注意(Amazon Q Developer 有料化の際に少し混乱しました)
構成
IAM Identity Center を利用する際に、関係性がわかりにくくなってきたので、まとめてみました。
| ユーザー | 所属グループ | アクセス可能アカウント | 権限セット | 権限の内容概要 |
|---|---|---|---|---|
| ユーザーA | 開発者グループ | 開発アカウント | 開発者権限セット | EC2読み取り、S3アクセス、Lambda実行 |
| ユーザーB | 開発者グループ、管理者グループ | 開発アカウント 本番アカウント |
開発者権限セット 管理者権限セット |
EC2読み取り、S3アクセス、Lambda実行 AdministratorAccess、課金情報アクセス |
| ユーザーC | 管理者グループ | 開発アカウント 本番アカウント |
管理者権限セット | AdministratorAccess、課金情報アクセス |
| ユーザーD | 監査グループ | 開発アカウント 本番アカウント 監査アカウント |
監査権限セット | 読み取り専用、CloudTrail閲覧 |
- Identity Store 内のユーザー/グループに対して、Permission SetをAWSアカウント単位で割り当てることで、一元的なアクセス管理が可能
- ユーザーは「どのアカウントに、どの権限でログインできるか」をIdentity Center経由で制御
ちなみに、IAM Identity Center には Identity Source というものがあります。
Identity Store との違いはこんな感じです。
| 用語 | 意味 | 役割 |
|---|---|---|
| Identity Store | ユーザー情報やグループ情報が保存・管理される場所 | ユーザー情報の保管場所 |
| Identity Source | 認証処理の起点(ユーザー認証の基盤) | ユーザー認証を行う「認証元」 |
- Identity Center ディレクトリ(IAM Identity CenterのビルトインIDストア)は、Identity Source でもあり、Identity Store でもある
- 外部IdP(Azure AD など)を使うことも可能ですが、Identity Store と Identity Source は別々の外部Idpではサポートしておらず、同じものである必要がある
個人的わかりにくい点
実際にコンソールで設定したのですが、わかりにくい点が一つありました。
それは許可セットの関係性です。
許可セットを作成する際に権限とAWSアカウントを関連付け、ユーザーやグループに紐付けるものだと思っていました。(完全に思い込みなんですけどね。。。)
実際は許可セット作成時には権限のみ設定します。
そして許可セットとAWSアカウントを割り当ては、ユーザーやグループにアカウントを割り当てる際に選択します。
まとめると順番は以下になります。
① Identity Storeの準備
↓
② Permission Setの作成
↓
③ ユーザー・グループの作成または同期
↓
④ 「誰に」「どのアカウントに」「どんな権限で」割り当てる
↓
⑤ ユーザーは AWS アクセスポータルからログイン
※ ここでの Identity Store は Identity Center ディレクトリ を利用しています。
まとめ
以上、IAM Identity Center を調べてみた内容でした。
概要はわかった感じがしますが、Amazon Q Developer のPro利用でまた少しはまっているので、いろいろ整理したいと思います。