Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CDKで挑むIdentity Centerの運用改善

Avatar for ikngm ikngm
July 12, 2025
230

CDKで挑むIdentity Centerの運用改善

Avatar for ikngm

ikngm

July 12, 2025
Tweet

Transcript

  1. 自己紹介 池ノ上 寿志 / Hisashi Ikenogami • 株式会社エヌデーデー • CCoE支援業務

    • 2025 Japan AWS Top Engineers (Services) • 2025 Japan All AWS Certifications Engineers 2
  2. 本日お話しすること 1. 背景 1. Identity Center 利用構成 2. 運用方法 3.

    規模感 4. 運用上の課題 5. CDK 採用の理由 2. 導入 1. 設計ポイント 2. 既存環境への適用 3. CDK 管理の負荷軽減策 3. まとめ 1. CDK 導入によって得られたこと 2. CDK 管理における課題・考慮点 3
  3. 1. 背景 4 1. Identity Center 利用構成 2. 運用方法 3.

    規模感 4. 運用上の課題 5. CDK 採用の理由
  4. Organizations 背景:Identity Center 利用構成 • AWSログイン管理に Identity Center を利用 •

    IDソースには外部IDプロバイダーを利用 • Organizations内外のアカウントにログイン 5 外部ID プロバイダー Identity Center Accounts External Accounts
  5. Management Identity Center 導入:設計ポイント① CDKの適用範囲 13 外部ID プロバイダー Member External

    Organizations Account Group IDP Role Custom Policy Permission Set Application Group
  6. Management Identity Center 導入:設計ポイント① CDKの適用範囲 14 外部ID プロバイダー Member External

    Organizations Account Group IDP Role Custom Policy Permission Set Application Group Org外アカウントへのアクセス Org内アカウントへのアクセス
  7. Management Identity Center 導入:設計ポイント① CDKの適用範囲 15 外部ID プロバイダー Member External

    Organizations Account Group IDP Role Custom Policy Permission Set Application Group 自動プロビジョニング
  8. Management Identity Center 導入:設計ポイント① CDKの適用範囲 16 外部ID プロバイダー Member External

    Organizations Account Group IDP Role Custom Policy Permission Set Application Group Control Tower の Account Factory から作成
  9. Management Identity Center 導入:設計ポイント① CDKの適用範囲 17 外部ID プロバイダー Member External

    Organizations Account Group IDP Role Custom Policy Permission Set Application Group AWSマネージドアプリケーション「AWS External Account」を利用 ⇒ マネコンからしか作成できない
  10. Management Identity Center 導入:設計ポイント① CDKの適用範囲 18 外部ID プロバイダー Member External

    Organizations Account Group IDP Role Custom Policy Permission Set Application Group アプリケーション数が多い(45個)ため CDKで一括作成する仕組みを別途構築 ※アプリを事前に手動作成する必要あり ※本日の発表では詳細割愛
  11. Management Identity Center 導入:設計ポイント① CDKの適用範囲 19 外部ID プロバイダー Member External

    Organizations Account Group IDP Role Custom Policy Permission Set Application Group メンバーアカウント側で作成したポリシーを利用することも可能 Identity Center側で一元管理できないので、基本的には利用していない
  12. Management Identity Center 導入:設計ポイント① CDKの適用範囲 20 外部ID プロバイダー Member External

    Organizations Account Group IDP Role Custom Policy Permission Set Application Group
  13. Management Identity Center 導入:設計ポイント① CDKの適用範囲 21 外部ID プロバイダー Member External

    Organizations Account Group IDP Role Custom Policy Permission Set Application Group Assignment Assignment CDKの対象
  14. Management Identity Center 導入:設計ポイント① CDKの適用範囲 外部ID プロバイダー Member External Organizations

    Account Group IDP Role Custom Policy Permission Set Application Group Assignment Assignment CDKの対象 コード化できる部分が少ない・・・? 22
  15. 導入:設計ポイント② スタック構成 ◼考慮事項 • 先述のシナリオでは 1グループあたりのリソース数 90 • CloudFormationスタックあたりのリソース上限数 500

    • 今後グループやアカウント等が更に増える可能性あり ◼上記を踏まえると • ある程度スタック分割しておいた方が良さそう • グループごとにスタックを分けると状態把握し易そう • スタックが多くなるので、Nested Stack が良いかも? 28
  16. 導入:既存環境への適用 ▪状況 • 既に Identity Center の利用は始まっていた • 既存リソースをそのまま活用したい ▪対応

    • CDKインポートを活用 • グループID等をCDK内で固定値として付与することで、インタラ クティブ入力を簡略化 30 cdk import <スタックID>
  17. 導入:既存環境への適用 ▪状況 • 既に Identity Center の利用は始まっていた • 既存リソースをそのまま活用したい ▪対応

    • CDKインポートを活用 • グループID等をCDK内で固定値として付与することで、インタラ クティブ入力を簡略化 ▪制約 • ネストテッドスタックはインポート非対応 ⇒グループごとにスタック分割 31 個別スタックインポート後に ネスト化する手もあった? cdk import <スタックID>
  18. スタックの構成 導入:既存環境への適用 32 CDK App GroupA Stack Assignment 作成 GroupB

    Stack Assignment - Account ID - Group ID - Permission Set ARN - Application ARN 参照 ID類を固定値としてコード内で保持 ※この時点ではPermission SetはCDK管理外だった
  19. SSMパラメータ活用、ID/ARNをCDK外に保持・自動更新 導入:CDK 管理の負荷軽減策 37 SSM パラメータ 名前 値 /ACCOUNT-ID/HOGE 123456789012

    /GROUP-ID/HOGE 123abcd-12ab-12ab-12ab-123456abcdef /PERMISSION-SET-ARN/HOGE arn:aws:sso:::permissionSet /<instance-id> /ps-12345678abcdefgh /APPLICATION-ARN/HOGE arn:aws:sso::<account_id> :application/<instance-id> /apl-abcdefgh12345678 aws_ssm.StringParameter.valueForStringParameter( this, /GROUP-ID/${groupKey}` ); Lambda 参照 更新 CDK
  20. スタックの構成(Before) 導入:CDK 管理の負荷軽減策 38 CDK App GroupA Stack Assignment 作成

    GroupB Stack Assignment - Account ID - Group ID - Permission Set ARN - Application ARN 参照 ID類を固定値としてコード内で保持 ※この時点ではPermission SetはCDK管理外だった
  21. スタックの構成(After) 導入:CDK 管理の負荷軽減策 39 CDK App Stack GroupA Stack Permission

    Set Assignment 作成 作成 GroupB Stack Assignment - Account Key - Group Key - Permission Set Key - Application Key SSM Parameter - Account ID - Group ID - Permission Set ARN - Application ARN Lambda 登録 参照 参照 更新 IDはSSMに保持して 自動更新することにより CDK側で意識させない SSM参照用の Keyのみ コード内に持つ ※更新部分