
WindowsのWinSCPよりSFTP接続できるAWS Systems Managerにて利用方法
はじめに
こんにちは Pです。
自分のパソコンからPrivateサブネットにあるEC2インスタンスに接続し、ファイル転送したい…
そんなときに便利なのが AWS Systems Manager Session Manager (SSM) を “トンネル” として使い、WinSCP でSFTP/SCP 接続する方法です。
この構成ならインバウンドの SSH ポートを閉じたまま、WinSCP の使い慣れた GUI でアップロードやダウンロードができます。
前提条件
EC2側
- SSM Agent が導入済み
- インスタンスプロファイル(IAM ロール)に
AmazonSSMManagedInstanceCore
など必要権限を付与 - SSHサーバー(
sshd
)が動作していること(ポートは開放不要)
自分のPC
- AWS CLI 最新版
- Session Manager Plugin 最新版
- WinSCP最新版
- EC2 インスタンスにログインできる OS ユーザー名 と 秘密鍵(OpenSSH 形式 or PuTTY
.ppk
。必要に応じて WinSCPで変換)
実装・設定ガイド
WinSCPのLocal proxy command 方式
WinSCPが裏でaws ssm start-session
を実行し、インスタンス IDをホスト名としてSFTP接続します。
1) 準備(初回のみ)
- AWS CLIとSession Manager plugin をインストールし、
aws --version
とsession-manager-plugin --version
が出ることを確認。
PS C:\WINDOWS\system32> aws --version
aws-cli/2.25.1 Python/3.12.9 Windows/11 exe/AMD64
PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32> session-manager-plugin --version
1.2.707.0
PS C:\WINDOWS\system32>
- AWS CLI の認証及びプロファイル設定(
aws configure
など)は完了させておきます。
#AWS CLI の認証
C:\Users\ユーザ名\.aws\credentials
[default]
aws_access_key_id = AKIAW...
aws_secret_access_key = e/ZDVJPfoT0ZDEiDpCib6mX...
#プロファイル設定
PS C:> aws configure --profile your_profile
AWS Access Key ID [None]: AKIAVO4...
AWS Secret Access Key [None]: Etps7428yjmaUWUyT9Z0e...
Default region name [None]: ap-northeast-1
Default output format [None]: json
$PROFILE_NAME = 'your_profile'
$INSTANCE_ID = 'i-0abc123
...'
aws ssm start-session --target $INSTANCE_ID --document-name AWS-StartPortForwardingSession
--parameters '{\"portNumber\":[\"22\"],\"localPortNumber\":[\"22000\"]}' `
--profile $PROFILE_NAME
2) WinSCP のサイト設定
- WinSCP を起動 → 新しいサイト
- 転送プロトコル:SFTP
- ホスト名:接続したい EC2 のインスタンス ID(例:
i-0abc123...
) - ポート番号:22
- ユーザー名:
ec2-user
/ubuntu
などAMIに応じて

- [設定]→ 高度なサイト設定 → 接続 → プロキシ
- プロキシ形式:ローカル
- ローカルプロキシコマンド
aws ssm start-session --target %host --document-name AWS-StartSSHSession --parameters "portNumber=%port" --profile "your_profile"

- SSH の認証で秘密鍵
.ppk
を指定 → 保存 → ログイン

これでEC2インスタンスに接続することができました。

おわりに
WinSCP及びSSMで、22/TCPを閉じたままプライベート EC2にSFTP接続が可能でございます。必要なら、貴社環境のプロファイル名・ホスト名・ユーザー名などに合わせて設定してみましょう。