AWS CDKでIAM Identity Centerのグループを管理する

西山です。

ギークフィードでは数年前からIAM Identity Center(旧AWS SSO)を利用しています。以前はAWS SSO自身をIdPとして利用していましたが、この度Google WorkspaceをIdPとして利用することにしました。

 

直近のこちらのアップデートで、Google Workspaceからの自動ユーザープロビジョニングがサポートされたことで、IAM Identity Center側でユーザーを作成する必要がなくなりました。

 

しかし、このブログを書いた時点ではグループの自動プロビジョニングには対応しておらず、また外部IdPを指定している場合、AWSマネジメントコンソール上でグループを作成することができないという運用上の問題点があります。

 

AWS CLIやSDKを使用してAPI経由でグループ作成とグループへのユーザー紐づけができるということだったので、より設定を管理およびメンテナンスしやすいようにAWS CDKで管理することにしました。グループの管理をGitでバージョン管理ができるようになるという点も良いです。

 

ソースコード

ソースコードは以下のGitHubで公開しています。ほぼほぼ社内で利用しているものと同一のコードです。

 

ソースコードはこちら

 

使い方

AWS CDKのインストール

以下のドキュメントを参考にAWS CDKをローカルマシンにインストールします。

AWS CDK の開始方法

 

また、AWS CDKを対象のアカウントで初めて利用する場合にはcdk bootstrapを行います。bootstrapについても上記のドキュメントに記載があります。

 

IdentityStore IDの確認

 

AWSマネジメントコンソール上でIAM Idenity Centerの設定画面にアクセスすると、「IDストアID」という名前でIdentity Store IDを確認することができます。

 

この値は利用するので記録しておきます。

 

 

ユーザーデータの作成

IAM Idenity Centerのユーザー一覧画面で、テーブルの表示をユーザー名とユーザーIDのみにすると、簡単にデータをコピーすることができます。

コピーしたデータをソースコードのusers.tsにjson形式で登録します。

 

 

グループデータの作成

 

グループデータは作成したいグループの定義と、そのグループに所属するユーザーの定義です。groups.tsに下記のようにjson形式で登録します。

 

実際にCDKのL1コンストラクト(Cloudformation)で登録する際にはユーザ名ではなくユーザーIDが必要ですが、ユーザーデータからユーザーIDを取得するようになっています。

 

 

デプロイ

ユーザーとグループのデータが完成したら、

でデプロイ可能です。

 

デプロイ後作業

IAM Idenity Centerのアカウントの画面から、アカウントにアクセス可能なグループをアタッチすることができるようになります。

 

さいごに

Google Workspaceとの自動プロビジョニングがグループのサポートを行ったら不要になるツールですが、同じ悩みを抱えている方の助けになれば幸いです。

この記事が気に入ったら
いいね ! しよう

Twitter で

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ