はじめに
- 本記事では、IAM Identity Center許可セットについて概要だけでなく、実際に作成されるリソースについてご説明します
- 結論を見たいかたはまとめをご覧ください
IAM Identity Centerってなに?
IAM Identity Center(以下、IIC)とは、複数のアカウントおよびアプリケーションへのアクセス許可を制御するサービスです。
マルチアカウントへのアクセス許可を割り当てる場合、Organizationsとの連携が必須で、管理アカウントで有効化する必要があります。((組織のインスタンス)
また、アプリケーション(例:Amazon Q Businessアプリケーション)へのアクセス許可をIICで管理したい場合、Organizationsを使用せずに、直接アプリケーションへのアクセス許可を割り当てることも可能です。(アカウントインスタンス)
「認証許可はIAMで十分では?」と思うかもしれませんが、こちらでも紹介されているように、今後はIAMユーザではなく、すべてIICで管理しようという流れもあり、IICの重要性が増していくと考えられます。
そこで本記事では、IICの機能のひとつである 許可セット(旧権限セット) についてご説明します。
許可セットってなに?(概要)
許可セットとは「どんな権限」を付与するかを定義するテンプレートです。
許可セットを割り当てることで、以下のようにアクセス許可を制御できます。
- どのIICユーザ/グループ に対して
- どのような権限 を(ここが許可セット)
- どのAWSアカウント に付与するか
このように許可セットを活用することで、各IICユーザ/グループのアカウントへの権限を制御することが可能です。
それでは、実際に許可セットが割り当てられたメンバーアカウントA、B、C内ではどのようなリソースが作成されているのでしょうか?
本記事では各アカウントに作成されるリソースについてご説明します。
許可セット割り当てで作成されるリソース
IICの許可セットの割り当てによって各アカウントに作成されるのは 許可セットに対応したIAMロール です。
具体的には「AWSReservedSSO_{許可セット名}_{小文字英数字のランダム文字列}」という名前のIAMロールが作成されます。
注意点
- 許可セットによって作成されるのは IAMロール であり、IAMポリシー(マネージドポリシーやカスタマー管理ポリシー)は直接作成されません
- ただし、インラインポリシー を設定することでIAMポリシーを直接作成できます
- IAMポリシー作成の手間を考慮すると、インラインポリシーの利用が推奨されています
- 許可セットに複数のIAMポリシーを紐づけて管理したい場合は カスタマー管理ポリシー を使用し、
- 直接メンバーアカウントにIAMポリシーを作成する
- CloudFormation StacksetsでIAMポリシーを配布する(運用性の観点から推奨)
実際に画面から確認してみる
本記事では、AWSマネージドポリシーとインラインポリシーを用いて、IIC許可セットを作成します。
管理アカウントのIIC許可セット画面から許可セットにアタッチするIAMポリシーを選択します。
今回は以下の設定を行います。
- AWSマネージドポリシー:「ReadOnlyAccess」
- インラインポリシー:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:CreateBucket",
"Resource": "*"
}
]
}
許可セット名を「PermissionSetTest」とし、許可セットを作成します。
許可セットの作成後、IICのAWSアカウント画面から
対象のユーザ/グループと作成した許可セットを選択して、割り当てを行います。
割り当てが完了後、割り当て先アカウントへ移動し、IAMロールを確認します。
想定通り許可セットの割り当てによってIAMロールが作成されていることが確認できました。
まとめ
- IAM Identity Center許可セットの割り当てると、割り当て先アカウントへIAMロールが作成される
- 許可セットへ付与するポリシーとしては以下の種類がある
- AWSマネージドポリシー:AWSによって事前定義されたポリシー
- カスタマー管理ポリシー:別途、割り当て先アカウントでIAMポリシーの作成が必要
- インラインポリシー:許可セット割り当てと同時に割り当て先アカウントへポリシーが作成される