テックブログ

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接続します。

準備(初回のみ)

  • AWS CLISession Manager plugin をインストールし、aws --versionsession-manager-plugin --version が出ることを確認。
  • AWS CLI の認証及びプロファイル設定aws configure など)は完了させておきます。

#AWS CLI の認証

C:\Users\ユーザ名\.aws\credentials

#プロファイル設定

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接続が可能でございます。必要なら、貴社環境のプロファイル名・ホスト名・ユーザー名などに合わせて設定してみましょう。

この記事をシェアする

  • facebook
  • twitter
  • hatena
  • line
URLとタイトルをコピーする

実績数30,000件!
サーバーやネットワークなど
ITインフラのことならネットアシストへ、
お気軽にご相談ください