[アップデート] AWS Transfer Family のパブリック SFTP サーバーでカスタムポートが使えるようになりました

[アップデート] AWS Transfer Family のパブリック SFTP サーバーでカスタムポートが使えるようになりました

ワークロードの都合でポートや通信モードの指定がある場合あるのと思うので、嬉しそう
2026.10.13

いわさです。

AWS Transfer Family の SFTP サーバーのパブリックエンドポイントは、これまで待ち受けポートが 22 だけで、通信の開始方法も server-first(サーバーが先に応答する方式)のみでした。(VPC エンドポイントタイプの場合だと一部カスタムポート(2222・2223・22000)も使えた)

先日のアップデートで、パブリックエンドポイントの SFTP サーバーでもカスタムポートを設定できるようになり、さらにポートごとに通信の開始方法(client-first / server-first)も指定できるようになりました。

https://aws.amazon.com/about-aws/whats-new/2026/10/transfer-family-custom-ports-sftp/

今回こちらを確認してみたので紹介します。

実際に確認してみる

今回のカスタムポートはパブリックエンドポイントの SFTP サーバー専用です。
VPC ホストエンドポイントや、FTP / FTPS プロトコルのサーバーでは設定できません。

ということで、まずはパブリックエンドポイントの SFTP サーバーをマネジメントコンソールから作成しましょう。
サーバー作成ウィザードの「追加設定」を見てみると「SFTP custom ports」の項目が追加されていました。

3BA901DD-188C-494D-89B8-209C401D2A6F.png

「Configure SFTP custom ports」にチェックを入れると、カスタマイズできるようになるようです。

F2596009-1884-44B5-8605-CB1E029431DE.png

ポート番号と通信モードの入力欄が出てきました。
デフォルトの 22 番の Server talks first が設定されていますね。

コンソールによると 1 台のサーバーあたり最大3つまでカスタムポートが設定できるようです。
また、ドキュメントによるとポートは 22、または 2000 から 65535 の範囲で指定する必要があり、1 から 1999 は選べないとのことです。

なお、VPC ホストエンドポイントの場合は 22 以外に固定ポート(2222・2223・22000)が従来から使えていたのですが、今回のアップデート後も VPC の場合は固定ポートのみが利用できます。今回はパブリックタイプのみが対象です。

今回はポートを 3 つ、通信モードを混在させた構成にしました。

2DBFBE21-EDBD-4F73-8FDC-14C725292D50_1_105_c.jpeg

通信モードは Server talks first と Client talks first の 2 つが選択できます。

Server talks first は、サーバーが先に応答してから SSH ネゴシエーションに入るモードで、Client talks first は、クライアントからのデータパケットを受け取ってからサーバーが応答するモードです。
確かレガシークライアントの多くは Server talks first が多いとかだった気がします。

作成後、サーバーの詳細画面ではこんな感じで「SFTP custom ports」に設定した 3 ポートが表示されていました。

E630114A-4F11-43B7-921D-02712BCD280B.png

この状態で、各ポートに実際に SFTP 接続してみましょう。
SERVICE_MANAGED のユーザーに SSH 公開鍵を登録し、同じユーザー・同じ鍵のままポート番号だけ変えて接続します。

まずデフォルトのポート 22(Server talks first)です。
S3 に事前にアップロードしておいたファイルをダウンロードできました。

$ sftp -P 22 -i ./sftp_key bloguser@<エンドポイント>
sftp> ls
testfile.txt
sftp> get testfile.txt
Fetching /hoge-bucket/testfile.txt to testfile.txt

次にカスタムポートの 2222(Client talks first)です。
ポート番号を変えるだけで接続でき、アップロードもできました。

$ sftp -P 2222 -i ./sftp_key bloguser@<エンドポイント>
sftp> put up.txt
Uploading up.txt to /hoge-bucket/up.txt
sftp> ls
testfile.txt    up.txt

通信モードが違う 3000(Client talks first)でも同じように接続できたので、設定した 3 ポートがそれぞれ使えていそうです。

なお、設定していないポート(たとえば 2201)に接続しようとすると、TCP が応答せずそのままタイムアウトしました。
SftpPorts に指定したポートだけが応答し、それ以外は応答しないようだ。

ポートの変更はサーバーを停止してから

作成後にポート構成を変えたくなって詳細画面から編集しようとしたのですが、稼働中は変更できませんでした。
設定画面にも、ポートを変更するにはサーバーを停止する必要がある、と注記があります。

F827784A-44D5-4934-BFC0-A796A79CB355_1_105_c.jpeg

サーバーを停止してから編集すると、今度は変更を受け付けてくれました。
稼働中のサーバーのポートを変えるときは、一時的に停止する必要があるので覚えておきましょう。

さいごに

本日は AWS Transfer Family のパブリックエンドポイントの SFTP サーバーでカスタムポートと通信モードが選べるようになったので確認してみました。

ポート 22 以外で待ち受けできるようになったことで、特定のポート番号を指定される運用や、22 番ポートへの自動スキャンを避けたいケースに対応しやすくなりました。
また想定クライアントにあわせて通信モードも変更できるようになりました。こっちのほうが嬉しいかもしれないですね。ワークロードによって指定されるケースあるので。

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事