AWS・2分で読める
Session Manager と SSH を併用して EC2 に安全に接続する手順
公開踏み台を廃止した環境で、AWS Systems Manager Session Manager と SSH を組み合わせて EC2 にアクセスする具体手順をまとめます。
#aws#ssm#ec2#ssh#security#operations
Session Manager と SSH を併用して EC2 に安全に接続する手順
公開踏み台を使わずに EC2 へアクセスしたい場面では、AWS Systems Manager (Session Manager) をベースにした運用が有効です。 本記事では、aws ssm start-session を使った接続と、~/.ssh/config での ProxyCommand 設定までを整理します。
想定する構成
- 踏み台 EC2 はプライベートネットワークに配置
- 接続元はローカル端末 (macOS)
- 認証は IAM + Session Manager を利用
- 必要に応じて SSH も実行できるようにする
前提条件
- AWS CLI がインストール済み
aws configureでプロファイル設定済み- 接続対象 EC2 に SSM Agent が導入済み
- 接続ユーザーに必要な IAM 権限がある
1. PEM ファイルを配置して権限を設定
BASH
ls ~/.ssh
chmod 700 ~/.ssh/x.pem運用上は鍵を使わない構成が理想ですが、既存の SSH 運用と併存する場合は上記の最低限の権限管理が必要です。
2. ~/.ssh/config に Session Manager 経由の設定を追加
SSHCONFIG
Host <環境名>
HostName <EC2インスタンスID>
User ssm-user
Port 22
ProxyCommand sh -c "aws --profile <profile名> ssm start-session --target %h --document-name AWS-StartSSHSession"
IdentityFile ~/.ssh/<pemファイル名>
IdentitiesOnly yesポイント:
HostNameは IP ではなく EC2 インスタンス IDProxyCommandで SSM セッションを起動- これにより、インターネット公開不要で SSH 可能
3. SSH 接続を実行
BASH
ssh <環境名>初回接続時にホスト確認が表示された場合は、内容を確認したうえで yes を選択します。
4. Session Manager だけで接続する場合
SSH を使わず、純粋に Session Manager で入る場合は次のコマンドを使います。
BASH
aws ssm start-session --target <EC2インスタンスID> --profile <AWS Profile名>保守作業や簡易確認はこの方法だけで完結するケースが多いです。
よくあるつまずき
- 権限エラー: IAM ポリシーに
ssm:StartSessionなどが不足 - 接続できない: EC2 側で SSM Agent 未導入、または IAM ロール不足
- プロファイル違い:
--profile指定ミスで別アカウントへ接続している
まとめ
Session Manager を中心に据えることで、公開踏み台や 22 番ポート開放に依存しない安全な運用ができます。 既存 SSH フローが必要な場合でも、ProxyCommand 連携で段階的に移行しやすくなります。