Slide 1

Slide 1 text

Change Managerを活用して本番環境への セキュアなGUIアクセスを統制する 大島 悠司 JAWS-UG 名古屋 2月会「アクセス権限管理の解体新書」

Slide 2

Slide 2 text

自己紹介 ◼ 大島 悠司 (Yuji Oshima) • NRI / NRIセキュア • AWS Community Builders (Security & Identity) • 2023-2024 Japan AWS Top Engineers (Security) • 2022-2024 Japan AWS All Certifications Engineers • JAWS-UG横浜支部 運営メンバー • 10大脅威選考会 • 情報処理技術者試験委員会・情報処理安全確保支援士試験委員会 ◼ 経歴 • デジタルフォレンジック、マルウェア解析、スレットインテリジェンス • SOC、基盤運用、インシデントレスポンス • サービス開発、基盤構築運用、研究開発 yuj1osm 2

Slide 3

Slide 3 text

3 以前、「Change Managerで始める本番アクセス統制」 というタイトルでお話ししました 本手法のベースになるので、内容を簡単に振り返ります

Slide 4

Slide 4 text

Jumpアカウント方式によるIAM設計 ◼ 役割ごとにグループを分ける ◼ グループに対して、スイッチできるアカウントとロールを固定 • リーダーグループは高権限のロール、メンバーグループは低権限のロールにスイッチ • 読み取り専用権限のロールもあると安心 4 復習

Slide 5

Slide 5 text

本番環境へのアクセス統制どうする? ◼ 変更管理 • 誰が、いつ、変更作業のために本番環境にログインしたか追える? ◼ 本番アクセス統制 • 本番環境にいつでもログインできるようになっていないか? 5 ここをどうやって 管理・統制する? 復習

Slide 6

Slide 6 text

Change Managerでアクセス管理 ◼ Change Managerとは? • AWS Systems Managerの1機能であり、アプリやインフラの変更管理を提供 • 承認フローを組める ◼ どのように変更管理と本番アクセス統制をするか • 本番アクセス用グループを新たに作成 • このグループからのみ本番環境の作業ロールにスイッチ可能 • Change Managerの承認でこのグループに追加 • グループ追加とともにTTLタグをつける ※グループの参加期限を示したタグ 6 復習

Slide 7

Slide 7 text

全体図 ◼ Change Managerでユーザ「menber01」をグループ「ProdMemberWorkGroup」に追加 7 復習

Slide 8

Slide 8 text

事前アクセス確認 ◼ グループ「ProdMemberWorkGroup」に所属していないのでスイッチ不可 8 復習

Slide 9

Slide 9 text

リクエスト作成 ◼ 本番作業をするユーザがリクエストを作成する 9 リクエストを作成する パラメータを入力 ・IAMユーザ名 ・グループ名(本番作業グループ) ・TTL(作業終了日時) 承認依頼 復習

Slide 10

Slide 10 text

リクエスト承認 ◼ 承認者が承認する 10 タスクが実行される 承認者がコメント付きで承認 タイムラインでタスクのステータスや 承認者が見れる 復習

Slide 11

Slide 11 text

本番環境へスイッチロール ◼ 再度、本番環境へスイッチロールしてみる 11 リクエスト作成で入力した グループへの追加と、 TTLタグが付いている 今度は本番環境へスイッチロールできた 復習

Slide 12

Slide 12 text

12 新たな課題とアプローチ

Slide 13

Slide 13 text

課題:本番環境で稼働するサーバにGUIアクセスしたい ◼ GUIの管理画面が用意されているアプリケーションも多い 13 これらもアクセス統制できるのか?

Slide 14

Slide 14 text

解決案:フリートマネージャーを使う ◼ Change Managerで本番環境にスイッチしてからフリートマネージャーでアクセスすればよい 14 ここでフリートマネージャー

Slide 15

Slide 15 text

フリートマネージャーの欠点 ◼ フリートマネージャーは画面が小さく操作しづらい 15

Slide 16

Slide 16 text

解決案:Session Managerのポートフォワーディング機能を使う ◼ ローカル端末の指定ポートで受けた通信をリモート端末のポートに転送 16 これらもアクセス統制できるのか?

Slide 17

Slide 17 text

ここまでの課題を整理 17 (課題)本番環境で稼働するサーバにGUIログインしたい (解決案) Change Managerで本番環境にスイッチしてからフリートマネージャー (課題)フリートマネージャーは画面が小さく操作しづらい (解決案) Session Managerのポートフォワーディング機能を使う 現行の Change Managerの スキームに乗っている 現行の Change Managerの スキームに乗ってない Change Managerのスキームに載せれるのか?

Slide 18

Slide 18 text

いきなり結論:以下の構成で可能 18 踏み台サーバを用意 Session Managerの 権限付与をChange Manager のスキームに乗せる 踏み台サーバから プライベートリンク でGUIアクセス

Slide 19

Slide 19 text

プライベートリンクへのルーティング設定 19 エンドポイントのDNS名を Route 53のプライベート ホストゾーンへ登録

Slide 20

Slide 20 text

NLBのルーティング設定 20 エンドポイントの終端としてNLBを設置し、ALBへルーティングする ※サービス稼働インスタンス上のサービスはHTTPSで受信する仕組みのため

Slide 21

Slide 21 text

ALBのルーティング設定 21 ALBからサービス稼働インスタンス へルーティング リスナーにACM証明書を紐づけて HTTPSで暗号化している

Slide 22

Slide 22 text

本番アクセス用のIAMグループに権限を追加 22 本番アクセス用のIAMグループに スイッチロール権限のほかに Session Managerの実行権限 も付与する

Slide 23

Slide 23 text

全体像(再掲) 23

Slide 24

Slide 24 text

24 挙動の確認

Slide 25

Slide 25 text

CLIで認証情報を取得 25 MFA認証 一時的な認証情報を取得 環境変数にセット

Slide 26

Slide 26 text

Change Manager承認前 26 セッション開始 権限がないので失敗

Slide 27

Slide 27 text

Change Manager承認後 27 セッション開始 権限があるので成功

Slide 28

Slide 28 text

本番環境サーバへのGUIアクセス 28 踏み台サーバを介した本番環境サーバへのGUIアクセス

Slide 29

Slide 29 text

まとめ ◼ Change Managerで本番環境へのスイッチロールの統制が可能 ◼ 踏み台サーバからプライベートリンクを構築すればGUIアクセスも可能 ◼ 踏み台サーバへはフリートマネージャーでのアクセスを利用し、 セッション開始の権限付与をChange Managerのスキームに組み込むことで統制が可能 ◼ これを応用すれば、あらゆる権限付与を承認フローに組み込むことが可能 29

Slide 30

Slide 30 text

(参考)詳細解説ブログと関連ハンズオンコンテンツ ◼ 詳細な解説を書いたブログ • Change Managerで踏み台サーバへのアクセスを統制し、さらに本番環境のサーバへのセキュアなGUIアク セスを実現する https://yuj1osm.hatenablog.com/entry/2025/01/14/203013 ◼ 関連のハンズオンコンテンツ • AWSマルチアカウントにおけるJumpアカウントを用いたIMA設計 https://github.com/yuj1osm/aws-multi-account-iam-design-with-jump-account • AWS Systems Manager Change Managerによる変更管理と本番アクセス統制 https://github.com/yuj1osm/access-controle-with-aws-systems-manager-change- manager 30

Slide 31

Slide 31 text

31 実は、のちに登場したTEAMを使えば もっといい感じにアクセス管理ができます! こちらでお話しするので お楽しみに!