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

第168回 雲勉 JITNAの使い方とハマったポイントについて語る回

第168回 雲勉 JITNAの使い方とハマったポイントについて語る回

下記、勉強会での資料です。
https://youtu.be/-Ixwh7QmodY

Avatar for iret.kumoben

iret.kumoben

July 07, 2025
Tweet

More Decks by iret.kumoben

Other Decks in Technology

Transcript

  1. 講師自己紹介 2 ▪ 名前 • 小西 紀代香(こにし きよか) • 2024年4月入社

    • 初めての登壇です、よろしくお願いします! • ご質問は YouTubeのコメント欄で受け付けております。 後日回答させていただきます!
  2. 2.ジャストインタイムノードアクセスとは? 8 皆さんは、「ジャストインタイムノードアクセス」という機能をご存知ですか? • 2025年4月29日に公開されたサービス • Systems Managerの機能の一部 • Session

    Manager(以下SSM)へのアクセスを、一時的かつ承認なしでは行えないようにする機 能 • セッション履歴や操作履歴を残せる、きめ細やかなアクセス制御ができるなどのメリット • 機能を有効化した月の残り期間と、その翌月の 1 か月間分の無料トライアル期間あり(それ以降 は有料)
  3. 10 2.ジャストインタイムノードアクセスとは? 通常のSSM接続との違い 項目 通常のSSM接続 JITNA アクセス方式 (使用し続ける限り)永続的な接続 一時的な接続 接続の開始方法

    ユーザーがいつでも開始可能 承認フローを経て接続可能になる アクセス制御・セキュリティ • IAMロールのみでの接続制御 • リソースごとのアクセス制御が難しい • 一度付与された権限は削除するまで永続的 • 常時アクセスできることでリスクが残る • IAMロールに加えて、複数の承認者による接続 制御 • 承認ポリシーの組み合わせやタグの利用による きめ細やかなアクセス制御が可能 • アクセス終了と同時に権限を自動削除 • 必要時のみアクセス可能にすることでリスクを 最小化 ログの取得 基本的には、セッションログのみ記録 セッションログに加え、RDPセッションログやアクセ スリクエストの履歴も記録される 管理・運用負荷 毎回の承認やポリシー設定が不要なため比較的軽め 通常のSSM接続に比べると比較的重め ユースケース 検証環境や緊急でのアクセスが必要になる環境など コンプライアンスが求められる環境(本番環境・お客 様環境)や外部者がアクセスする環境
  4. 3.実際に使ってみた 12 • JITNAを利用するための前提条件 ◦ SSM Agentがインストールされていること ◦ SSM接続に必要なセキュリティグループの設定がされていること ▪

    443ポートのアウトバウンド接続 ▪ VPCエンドポイントの443ポートのインバウンド接続 ◦ インスタンスにAmazonSSMManagedInstanceCoreポリシーを含む権限が付与され ていること
  5. 15 3.実際に使ってみた 2. IAMロールを作成する JITNAはアクセスリクエストの送信・承認ともにIAMロールを使用します • アクセスユーザーのIAMロール ◦ ジャストインタイムノードアクセスユーザー向けのIAMポリシー •

    承認者ユーザーのIAMロール ◦ アクセスリクエスト承認者向けのIAMポリシー を作成して、JITNAを利用する(承認する)ユーザーが上記ロールを引き受けられる権限も 付与しておきましょう
  6. 16 3.実際に使ってみた 3. 承認ポリシーを作成する JITNAの承認ポリシーは、以下の順番で評価されます 1. アクセス拒否ポリシー:指定したノードへのアクセス要求の自動承認を拒否する 2. 自動承認ポリシー:ユーザーが自動的に接続できるノードを定義する 3.

    手動承認ポリシー:指定したノードへのアクセスに必要な手動承認の数とレベルを定義する また、手動承認ポリシーは適用対象ノードを全て、もしくは特定のタグがついたノードで選べます 複数のポリシーを設定した際の優先順位は 1. タグ付けされたノード 2. すべてのノード ex.)env=prodのタグがついたノードに対して必要な承認数が2のポリシーと、全てのノード対象に必要な承認数が1のポリシーがあ ったときは、env=prodのタグがついたノードに適用されるポリシーは「必要な承認数が2のポリシー」
  7. 17 3.実際に使ってみた 3. 承認ポリシーを作成する 今回作成する承認ポリシー • 自動承認ポリシー ◦ key:Name value:konishi-linux2

    のタグがついているインスタンス対象 • 手動承認ポリシー ◦ key:Name value:konishi-linux のタグがついているインスタンス対象 ◦ アクセス可能期間は24時間 ◦ アクセスに必要な承認は、レベル1の承認が1つ ◦ 承認は”konishi-jitna-approver-role”に承認をもらう
  8. 30 4. 使ってみての思わぬ落とし穴 落とし穴の原因: • セットアップ手順に、特に「ロールを使ってね」という指定がなかった(記載されていた かもしれないが見落とした) ◦ なお、承認者はロールを使う、というのは手動承認ポリシー設定で承認者をロールで指定する ため、「承認者はロールを使うんだな…」の認識はあった

    • IAMユーザーでコンソールログイン→アクセスリクエスト送信自体は問題なくできてしま った →原因究明に時間がかかってしまった 解決のきっかけ: 承認者がロールを使うなら、リクエストの送信もロールでやらないとダメじゃないか…?? とふと思いつきました
  9. 32 5. まとめ • JITNAは通常のSSM接続に比べて、よりセキュアかつ柔軟な運用が可能になるサービス ◦ インスタンスへのアクセスに承認が必要 ▪ 必要な承認レベルや承認者を選べる ▪

    対象インスタンスを選べる ◦ アクセスは一時的な許可で行われる • 通常のSSM接続に比べて、管理・運用の手間はかかるため、環境や利用者によって使い 分けるのがベター • 利用する際は、アクセスリクエストの送信者・リクエストの承認者それぞれのIAMロー ルを使用する