西山です。
ギークフィードでは数年前から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を対象のアカウントで初めて利用する場合には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を取得するようになっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
export const groups: Group[] = [ { displayName: "Project Dev", description: "開発用グループ", members: [ "nishiyama@geekfeed.co.jp", "hoge@geekfeed.co.jp", "fuga@geekfeed.co.jp", ], }, { displayName: "Project Prod", description: "本番用グループ", members: ["nishiyama@geekfeed.co.jp", "hoge@geekfeed.co.jp"], }, ]; |
デプロイ
ユーザーとグループのデータが完成したら、
1 |
$ cdk deploy |
でデプロイ可能です。
デプロイ後作業
IAM Idenity Centerのアカウントの画面から、アカウントにアクセス可能なグループをアタッチすることができるようになります。
さいごに
Google Workspaceとの自動プロビジョニングがグループのサポートを行ったら不要になるツールですが、同じ悩みを抱えている方の助けになれば幸いです。
- 組織内のIPv4アドレス(EIP)を自動通知してコスト削減する - 2024-12-03
- 組織内のAWSコスト最適化のためにやっている7つのこと - 2024-12-01
- Amazon Connect Contact Lens + iPaaSで生成AI活用&他サービス連携を簡単に実現!– Amazon Connect アドベントカレンダー 2024 - 2024-12-01
- AWS Step Functionsの基本を再学習しました - 2024-09-23
- Amazon SESでバウンスメールを管理する - 2024-07-07