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

"TEAM"を導入したら最高のエンジニア"Team"を実現できた / Deploying "T...

"TEAM"を導入したら最高のエンジニア"Team"を実現できた / Deploying "TEAM" and Building the Best Engineering "Team"

「JAWS DAYS 2025」で発表した資料
https://jawsdays2025.jaws-ug.jp/

Yuji Oshima

March 01, 2025
Tweet

More Decks by Yuji Oshima

Other Decks in Technology

Transcript

  1. 大島 悠司 (Yuji Oshima) • 株式会社野村総合研究所 / NRIセキュアテクノロジーズ株式会社 • AWS

    Community Builders (Security & Identity) • 2023-2024 Japan AWS Top Engineers (Security) • 2022-2024 Japan AWS All Certifications Engineers • JAWS-UG横浜支部 運営メンバー • 10大脅威選考会 • 情報処理技術者試験委員会・情報処理安全確保支援士試験委員会 自己紹介 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a @yuj1osm
  2. はじめに ◼ アジェンダ • マルチアカウントとIAM設計 • Change Manageによるアクセス統制 • TEAMによる統制

    • TEAMの設計と導入 • TEAMの導入効果 • まとめ ◼ お話しすること • AWS基盤を構築・運用する際に、どのような課題に取り組み、 どのように構成を変更していったかを順序立ててお話しします ◼ お話ししないこと • 詳細な実装方法まではお話ししません
  3. ◼ シングルアカウント構成 • 権限管理が複雑になりセキュリティの確保が困難 • ワークロードごとのコストの把握が困難 • オペミスやクォータ値に引っかかりやすく運用が困難 ◼ マルチアカウント構成

    • 権限を分離することでセキュリティの向上 • ワークロードごとのコストの把握が容易 • 作業の影響を最小限に抑えて運用の効率化 なぜマルチアカウントがよいのか ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a AWS Cloud VPC(開発) VPC(ステージング) VPC(本番) AWS Cloud(開発) AWS Cloud(ステージング) AWS Cloud(本番)
  4. ◼ Jumpアカウントを用意し、IAMユーザを集約 ◼ ユーザはJumpアカウントにログインし、各アカウントへスイッチロール ◼ 各アカウントの権限はスイッチ先ロールに付与 Jumpアカウント方式 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a

    AWS Cloud(開発) AWS Cloud(ステージング) AWS Cloud(本番) User1 User2 User3 Jumpアカウントへ ログイン AWS Cloud(Jump) User1 User2 User3 Role Permissions Role Permissions Role Permissions AWS STS 各アカウントへ スイッチロール Permissions
  5. ◼ 役割ごとにグループを作成 ◼ 各アカウントに役割ごとのロールを作成 ◼ 各グループに対して、スイッチできるアカウントとロールを定義 Jumpアカウント方式でのIAM設計のコツ ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a

    AWS Cloud(開発) AWS Cloud(ステージング) AWS Cloud(本番) AWS Cloud(Jump) admin01 member01 AWS Cloud AWS Cloud JumpAdminGroup LeaderGroup AWS Cloud MemberGroup Jump_AdminRole Dev_LeaderRole Dev_MemberRole Dev_ReadOnlyRole Stg_LeaderRole Stg_MemberRole Stg_ReadOnlyRole Prod_LeaderRole Prod_MemberRole Prod_ReadOnlyRole leader01
  6. ◼ 変更管理:いつ、誰が、変更作業のために本番環境にアクセスしたか? ◼ 本番アクセス統制:本番環境にいつでもアクセス可能になっていないか? 本番環境へのアクセス統制どうする? ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a AWS Cloud(開発)

    AWS Cloud(ステージング) AWS Cloud(本番) AWS Cloud(Jump) admin01 member01 AWS Cloud AWS Cloud JumpAdminGroup LeaderGroup AWS Cloud MemberGroup Jump_AdminRole Dev_LeaderRole Dev_MemberRole Dev_ReadOnlyRole Stg_LeaderRole Stg_MemberRole Stg_ReadOnlyRole Prod_LeaderRole Prod_MemberRole Prod_ReadOnlyRole leader01 ここをどうやって 管理・統制する?
  7. どのように変更管理と本番アクセス統制をするか ◼ 本番アクセス用グループを新たに作成 ◼ このグループからのみ本番環境の作業ロールにスイッチ可能 ◼ Change Managerの承認でこのグループに追加するテンプレートを作成 AWS Cloud(開発)

    AWS Cloud(ステージング) AWS Cloud(本番) AWS Cloud(Jump) admin01 member01 AWS Cloud AWS Cloud JumpAdminGroup LeaderGroup AWS Cloud MemberGroup Jump_AdminRole Dev_LeaderRole Dev_MemberRole Dev_ReadOnlyRole Stg_LeaderRole Stg_MemberRole Stg_ReadOnlyRole Prod_LeaderRole Prod_MemberRole Prod_ReadOnlyRole leader01 AWS Cloud ProdLeaderWorkGroup AWS Cloud ProdMemberWorkGroup
  8. ◼ 当時、AWS SSO (現 AWS IAM Identity Center) は管理アカウントに 作成される仕様だった

    ※現在はメンバーアカウントに委任可能 ◼ Change Managerはメンバーアカウントへの委任が必須 ◼ Change Managerは管理アカウントへの操作が不可 SSO方式でなくJumpアカウント方式にした理由 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a AWS Cloud(Jump) AWS Cloud(組織管理) Change Manager AWS Cloud(開発) 委任 Change Manager AWS IAM Identity Center 許可セット ユーザ or グループ アカウント × × AWS Cloud(ステージング) 変更 変更 本番アクセス統制を優先してSSOは見送り
  9. ◼ JumpアカウントのIAMユーザを利用 ◼ メンバーアカウントへは手入力でスイッチロール ◼ 本番アカウントへはChange Managerで申請し、承認後にスイッチロール [AWS基盤 Ver.1] Jumpアカウント

    × Change Manager ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a Jump ・・・ Group A ・・・ Group B Role X1 Role X2 ・・・ Role Y1 Role Y2 Role X1 Role Y1 XXX YYY Group A Group B XXX YYY Change Manager 約2年間で 1479件 も利用いただいた
  10. ◼ 利用者目線 • スイッチロールの入力作業が面倒 ※履歴が5件しか残らない • Change Managerで申請するまでの導線が長い ◼ 管理者目線

    • IAMの管理負荷が高い • Change Managerのテンプレート管理負荷が高い [AWS基盤 Ver.1] 課題点 • AWS IAM Identity Centerの管理をメンバーアカウントに委任できるようになった • AWSからアクセス管理ができるソリューションが公開された ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a
  11. ◼ TEAMとは? • Temporary Elevated Access Managementの略称 • AWSアカウントへのアクセスを管理するための承認ベースのワークフロー •

    IAM Identity Centerのアクセスポータルから利用するアプリケーションとして提供 ※IAM Identity Centerが必須 TEAM (Temporary Elevated Access Management) ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a
  12. TEAMのワークフロー ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a ① IAM Identity Centerの アクセスポータルにアクセス ②

    TEAMアプリケーションにアクセス ③ リクエスト申請 ④ リクエスト承認 ⑤ Step Function で許可セット追加 ⑥ 承認された権限で スイッチロール ⑦ CloudTrailでロギング ⑧ Step Function で許可セット削除 ⑨ ログの閲覧
  13. IAM Identity Centerに移行するため権限を整理 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a Jump AWS IAM Identity

    Center × ・・・ Group A ・・・ Jump Group B Role X1 Role X2 ・・・ Role Y1 Role Y2 Microsoft Entra ID ・・・ ユーザ / グループ 許可セット アカウント × SCIM ・・・ user01 user02 ② Jumpアカウントの グループとポリシーを整理 グループをEntra IDに登録 ① 各アカウントのロールとポリシーを整理 許可セットを作成 ユーザ/グループの 自動プロビジョニング Role X1 Role Y1 XXX YYY Group A Group B Group A Group B XXX YYY Group A Group B ③ 割り当てを作成 CloudFormationを活用 Jumpアカウント SSO スイッチロール
  14. ◼ TEAMには4つのペルソナが存在 ◼ ペルソナ割り当てと承認ルールの設計 • ペルソナの割り当て設計 • 何を申請させるか? • 誰に許可/却下させるか?

    • 許可を与える最大時間 • 通知先(Mail, Chat・・・) ペルソナの割り当てや承認フローのルールを設計 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a 申請者 承認者 監査人 管理者 アクセス申請を要求 アクセス申請を承認 全ての申請のログを監査 申請ルールの管理 申請 承認 承認された 申請リスト 全履歴 ペルソナ 割り当て 全員が 閲覧可能 監査人のみ 閲覧可能 管理者のみ 閲覧可能
  15. ◼ 小規模なチームでテスト運用し、徐々に適応範囲を拡大 ◼ 既存の仕組み(弊社の場合はChange Manager)と並行運用 • 業務への影響を最小限にする ◼ フィードバックを元に設定や運用を適宜見直し •

    ペルソナの割り当ては十分か? 想定外の権限が付与されていないか? など 小規模なチームでテスト運用をして徐々に適応範囲を拡大 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a 自チーム 個人 部全体
  16. ◼ Entra IDからプロビジョニングされたSSOユーザを利用 ◼ メンバーアカウントへはIAM Identity Centerのアクセスポータル経由で スイッチロール ◼ 本番アカウントへはTEAMで申請し、承認後にアクセスポータル経由で

    スイッチロール [AWS基盤 Ver.2] IAM Identity Center × TEAM ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a Jump ・・・ Group A ・・・ Group B Role X1 Role X2 ・・・ Role Y1 Role Y2 XXX YYY Group A XXX YYY Microsoft Entra ID スイッチロール Group A Group B SCIM 約1年間で 216件 も利用いただいた
  17. ◼ 利用者目線 • 各アカウントへのスイッチロールが簡単に • 申請への導線が短く、シンプルで分かりやすいUIになった ◼ 管理者目線 • IAMの管理から解放

    • ペルソナの割り当てや申請ルールなどの設定管理が簡単に [AWS基盤 Ver.1] 導入効果 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a TEAMを通して、Team全員が運用とセキュリティの意識が向上 開発効率UP 運用効率UP 利用者 管理者 One Team
  18. ◼ マルチアカウント構成では本番アカウントへのアクセス管理を考えること ◼ 「Jumpアカウント × Change Manager」で頑張って実装すれば制御可能 ただし、UXは低く管理負荷は高い ◼ 「IAM

    Identity Center × TEAM」で手軽に制御可能 UXは高く管理工数は低い ◼ TEAMの導入でTeamの生産性とセキュリティ・コンプライアンスが向上 まとめ ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a