Slide 1

Slide 1 text

"TEAM"を導入したら 最高のエンジニア"Team"を実現できた 大島 悠司 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a

Slide 2

Slide 2 text

大島 悠司 (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

Slide 3

Slide 3 text

はじめに ◼ アジェンダ • マルチアカウントとIAM設計 • Change Manageによるアクセス統制 • TEAMによる統制 • TEAMの設計と導入 • TEAMの導入効果 • まとめ ◼ お話しすること • AWS基盤を構築・運用する際に、どのような課題に取り組み、 どのように構成を変更していったかを順序立ててお話しします ◼ お話ししないこと • 詳細な実装方法まではお話ししません

Slide 4

Slide 4 text

マルチアカウントとIAM設計 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a

Slide 5

Slide 5 text

◼ シングルアカウント構成 • 権限管理が複雑になりセキュリティの確保が困難 • ワークロードごとのコストの把握が困難 • オペミスやクォータ値に引っかかりやすく運用が困難 ◼ マルチアカウント構成 • 権限を分離することでセキュリティの向上 • ワークロードごとのコストの把握が容易 • 作業の影響を最小限に抑えて運用の効率化 なぜマルチアカウントがよいのか ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a AWS Cloud VPC(開発) VPC(ステージング) VPC(本番) AWS Cloud(開発) AWS Cloud(ステージング) AWS Cloud(本番)

Slide 6

Slide 6 text

◼ 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

Slide 7

Slide 7 text

◼ 役割ごとにグループを作成 ◼ 各アカウントに役割ごとのロールを作成 ◼ 各グループに対して、スイッチできるアカウントとロールを定義 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

Slide 8

Slide 8 text

◼ 変更管理:いつ、誰が、変更作業のために本番環境にアクセスしたか? ◼ 本番アクセス統制:本番環境にいつでもアクセス可能になっていないか? 本番環境へのアクセス統制どうする? ハッシュタグ:#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 ここをどうやって 管理・統制する?

Slide 9

Slide 9 text

Change Manageによるアクセス統制 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a

Slide 10

Slide 10 text

◼ Change Managerとは? • AWS Systems Managerの1機能であり、アプリやインフラの変更管理を提供 • 申請と承認によって起動するといったワークフローを組める AWS Systems Manager Change Manager ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a

Slide 11

Slide 11 text

どのように変更管理と本番アクセス統制をするか ◼ 本番アクセス用グループを新たに作成 ◼ このグループからのみ本番環境の作業ロールにスイッチ可能 ◼ 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

Slide 12

Slide 12 text

Change Managerによる本番アクセス統制の流れ ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a member01 leader01 リクエストを作成 本番アクセス用 グループを入力 コメントを入力して承認 本番アカウント へスイッチロール

Slide 13

Slide 13 text

◼ 当時、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は見送り

Slide 14

Slide 14 text

◼ 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件 も利用いただいた

Slide 15

Slide 15 text

◼ 利用者目線 • スイッチロールの入力作業が面倒 ※履歴が5件しか残らない • Change Managerで申請するまでの導線が長い ◼ 管理者目線 • IAMの管理負荷が高い • Change Managerのテンプレート管理負荷が高い [AWS基盤 Ver.1] 課題点 • AWS IAM Identity Centerの管理をメンバーアカウントに委任できるようになった • AWSからアクセス管理ができるソリューションが公開された ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a

Slide 16

Slide 16 text

TEAMによる統制 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a

Slide 17

Slide 17 text

◼ TEAMとは? • Temporary Elevated Access Managementの略称 • AWSアカウントへのアクセスを管理するための承認ベースのワークフロー • IAM Identity Centerのアクセスポータルから利用するアプリケーションとして提供 ※IAM Identity Centerが必須 TEAM (Temporary Elevated Access Management) ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a

Slide 18

Slide 18 text

TEAMによる本番アクセス統制の流れ (申請) [1/3] ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a 本番アカウントへは RO権限しかない アプリケーションから TEAMを選択

Slide 19

Slide 19 text

TEAMによる本番アクセス統制の流れ (申請) [2/3] リクエストを作成

Slide 20

Slide 20 text

TEAMによる本番アクセス統制の流れ (申請) [3/3] ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a アカウントとロールを入力 承認前なのでステータスはpending

Slide 21

Slide 21 text

TEAMによる本番アクセス統制の流れ (承認) ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a 承認者は「Approve request」から 該当するリクエストを選択し、 コメントを記入して承認する

Slide 22

Slide 22 text

TEAMによる本番アクセス統制の流れ (権限付与) 承認後なのでステータスはapproved 本番アカウントへのアクセス権限が 追加されている

Slide 23

Slide 23 text

TEAMのワークフロー ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a ① IAM Identity Centerの アクセスポータルにアクセス ② TEAMアプリケーションにアクセス ③ リクエスト申請 ④ リクエスト承認 ⑤ Step Function で許可セット追加 ⑥ 承認された権限で スイッチロール ⑦ CloudTrailでロギング ⑧ Step Function で許可セット削除 ⑨ ログの閲覧

Slide 24

Slide 24 text

TEAMの設計と導入 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a

Slide 25

Slide 25 text

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 スイッチロール

Slide 26

Slide 26 text

◼ TEAMには4つのペルソナが存在 ◼ ペルソナ割り当てと承認ルールの設計 • ペルソナの割り当て設計 • 何を申請させるか? • 誰に許可/却下させるか? • 許可を与える最大時間 • 通知先(Mail, Chat・・・) ペルソナの割り当てや承認フローのルールを設計 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a 申請者 承認者 監査人 管理者 アクセス申請を要求 アクセス申請を承認 全ての申請のログを監査 申請ルールの管理 申請 承認 承認された 申請リスト 全履歴 ペルソナ 割り当て 全員が 閲覧可能 監査人のみ 閲覧可能 管理者のみ 閲覧可能

Slide 27

Slide 27 text

◼ 小規模なチームでテスト運用し、徐々に適応範囲を拡大 ◼ 既存の仕組み(弊社の場合はChange Manager)と並行運用 • 業務への影響を最小限にする ◼ フィードバックを元に設定や運用を適宜見直し • ペルソナの割り当ては十分か? 想定外の権限が付与されていないか? など 小規模なチームでテスト運用をして徐々に適応範囲を拡大 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a 自チーム 個人 部全体

Slide 28

Slide 28 text

◼ 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件 も利用いただいた

Slide 29

Slide 29 text

TEAMの導入効果 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a

Slide 30

Slide 30 text

◼ 利用者目線 • 各アカウントへのスイッチロールが簡単に • 申請への導線が短く、シンプルで分かりやすいUIになった ◼ 管理者目線 • IAMの管理から解放 • ペルソナの割り当てや申請ルールなどの設定管理が簡単に [AWS基盤 Ver.1] 導入効果 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a TEAMを通して、Team全員が運用とセキュリティの意識が向上 開発効率UP 運用効率UP 利用者 管理者 One Team

Slide 31

Slide 31 text

まとめ ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a

Slide 32

Slide 32 text

◼ マルチアカウント構成では本番アカウントへのアクセス管理を考えること ◼ 「Jumpアカウント × Change Manager」で頑張って実装すれば制御可能 ただし、UXは低く管理負荷は高い ◼ 「IAM Identity Center × TEAM」で手軽に制御可能 UXは高く管理工数は低い ◼ TEAMの導入でTeamの生産性とセキュリティ・コンプライアンスが向上 まとめ ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_a

Slide 33

Slide 33 text

No content