はじめに
前回、AWS Systems Manager Fleet Manager について調べる中で、
「そもそも SSM でどうやってサーバに接続しているのか?」
という疑問が出てきました。
そこで今回、Session Manager という機能について、
まずは仕組みとメリットを机上ベースで整理してみようと思います。
本記事は、
- SSH や踏み台に慣れている人
- Session Manager を名前だけ知っている人
向けに、「何がどう違うのか」を理解することを目的としています。
Session Manager とは?
AWS Systems Manager Session Manager は、
SSH や RDP を使わずに、IAM 認証で EC2 やオンプレミスサーバへ接続できる仕組みです。
AWS コンソール、または AWS CLI から、安全にシェル接続 を行うことができます。
従来の SSH 接続の課題
これまでの EC2 運用では、以下のような構成が一般的でした。
- EC2 に SSH(22番ポート)を開放
- 踏み台サーバ経由で接続
- 秘密鍵を配布・管理
この方式には、以下の課題があります。
- SSH ポートが攻撃対象になりやすい
- 鍵の配布・管理が煩雑
- 誰がいつ接続したか追いづらい
- 踏み台サーバ自体の運用コストが発生
Session Manager の仕組み
Session Manager は、アウトバウンド通信のみ を利用して接続します。
[利用者]
↓(IAM認証)
[AWS マネジメントコンソール / AWS CLI]
↓
[AWS Systems Manager]
↓
[SSM Agent]
↓
[EC2 / オンプレミス]
ポイントは以下の通りです。
- EC2 側で インバウンドポートを開ける必要がない
- SSM Agent が AWS 側へ通信するだけ
- 接続制御は IAM ポリシー で行う
Fleet Manager との違い
前回扱った Fleet Manager と混同しやすいため、整理します。
| 観点 | Session Manager | Fleet Manager |
|---|---|---|
| 主用途 | サーバへの接続 | サーバの統合管理 |
| 接続方法 | シェル(CLI) | GUI操作 |
| 利用者 | 運用担当者 | 運用・監視担当 |
| 内部仕組み | SSM Agent | SSM Agent |
| SSH不要 | ○ | ○ |
👉 Session Manager は「接続の中核」
👉 Fleet Manager は「管理UI」
という関係です。
Session Manager を使うメリット
① セキュリティの向上
- SSH / RDP ポートを閉じられる
- 鍵・パスワード管理が不要
- IAM + CloudTrail による操作証跡
② 運用の簡素化
- 踏み台サーバが不要
- クライアントツール不要
- 接続設定がシンプル
③ 監査対応がしやすい
- 「誰が・いつ・どのサーバに接続したか」を説明できる
- セッションログを証跡として提出可能
利用するための前提条件
Session Manager を利用するには、以下が必要です。
- EC2 に SSM Agent がインストールされている
- EC2 に IAM ロールが付与されている
- AmazonSSMManagedInstanceCore
- EC2 から SSM エンドポイントへの通信が可能
- NAT Gateway または VPC Endpoint
向いているケース / 向いていないケース
✔ 向いている
- セキュリティを重視したい環境
- 踏み台サーバを廃止したい
- 監査・証跡が必要
- 多数の EC2 を管理している
✘ 向いていない
- GUI 操作が必須な業務
- 低レイヤのネットワークデバッグ
- 既存の SSH フローをすぐ変えられない場合
まとめ
- Session Manager は SSH を使わないサーバ接続手段
- SSM Agent + IAM による安全な接続
- セキュリティ・運用・監査のすべてにメリットがある
- Fleet Manager の裏側で使われている重要な仕組み
「何となく使われている」状態から、「なぜこの仕組みが採用されているのか理解して使う」
一歩目として、本記事が参考になれば幸いです。