はじめに
こんにちは!技術ブロガー兼クラウドアーキテクトの皆さん、そしてインフラエンジニアの皆さん、AWS Transfer Familyに関する待望のアップデートが舞い込んできました!
AWS Transfer Familyは、SFTP/FTPS/FTPなどのプロトコルを使用して、Amazon S3やAmazon EFSと安全にファイル転送を行うためのフルマネージドサービスです。エンタープライズ環境では、可用性の向上やIPアドレスの固定化、独自ドメイン運用のために、Transfer Family(VPCホスト型エンドポイント)の手前にNetwork Load Balancer (NLB)を配置する構成がよく使われます。
しかし、これまでの構成には「接続元のクライアントIPアドレスがNLBのプライベートIPに置き換わってしまう」という大きな課題がありました。今回のアップデートにより、Proxy Protocol v2 (PPv2) を使用して、NLB配下のSFTPサーバーでもクライアントの送信元IPアドレスを完全に保持できるようになりました!
この機能の概要とメリット
これまでNLBをフロントに置いたAWS Transfer Familyでは、SFTPサーバーに到達するすべてのトラフィックの送信元IPがNLBのものになっていました。そのため、以下のような制約が発生していました。
- Transfer Familyのログ(CloudWatch Logs等)やイベントに、実際の接続元IPではなくNLBのIPアドレスが記録される。
- カスタムIDプロバイダー(Custom Identity Provider)による認証時に、接続元の実際のIPアドレスに基づいたアクセス制御(ホワイトリスト制限など)が行えない。
今回のアップデートにより、SFTPサーバー側で送信元IPの保持(Source IP preservation)を有効化できるようになりました。これにより、NLBからSFTPサーバーへProxy Protocol v2 (PPv2)を介してクライアントの送信元IP情報が引き継がれるようになります。
主なメリット
- 監査ログの正確性向上: CloudWatch LogsやAWS CloudTrailなどの各種ログに、実際のクライアント送信元IPが正しく記録されます。
- 高度なアクセス制御の実現: カスタムIDプロバイダー(AWS Lambda等)を連携させている場合、認証プロセスにおいてクライアントの実際のIPを評価し、特定のグローバルIPからのみアクセスを許可する、といったセキュリティ制限が可能になります。
- 柔軟な管理: AWSマネジメントコンソール、AWS CLI、またはAWS APIから、SFTPサーバーごとに個別にオン/オフを設定できます。
想定されるユースケース
この機能は、特にセキュリティとコンプライアンスを重視するエンタープライズシステムで威力を発揮します。
- 厳格なセキュリティ監査が必要な業界(金融・医療・官公庁など): データの送受信において、「誰が、いつ、どのIPアドレスからアクセスしたか」を正確に記録し、監査レポートに反映させたい場合。
- 取引先ごとのIPアドレス制限: カスタムIDプロバイダーと組み合わせ、ユーザーアカウントごとに接続を許可するグローバルIPアドレスを動的に制限したい場合。
- インシデントレスポンスの迅速化: 万が一、不審なアクセスを検知した際に、NLBのIPではなく実際の攻撃元IPを即座に特定し、セキュリティグループやWAF等でブロックする場合。
注意点や従来の機能との違い
新機能を利用するにあたり、以下の点に注意して設計を行ってください。
1. NLBとTransfer Familyの両方で有効化が必要
送信元IPを保持するためには、手前のNLBのターゲットグループ設定で「Proxy Protocol v2」を有効化するだけでなく、AWS Transfer FamilyのSFTPサーバー側でも本機能を有効化する必要があります。片方のみの設定では正常に通信できない、またはIPが伝播されないため注意が必要です。
2. 設定方法(AWS CLIの例)
AWSマネジメントコンソールから数クリックで有効化できるほか、AWS CLIやAPIを使用してサーバーの設定(ProtocolDetails)を更新することでも有効化できます。
# 既存のSFTPサーバーで送信元IP保持(Proxy Protocol v2対応)を有効化するコマンドのイメージ
aws transfer update-server \
--server-id s-1234567890abcdef0 \
--protocol-details "{\"SetStatelessFilters\":\"ACTIVE\"}"
# ※詳細なAPIパラメーターは環境やユースケースに合わせて公式ガイドを参照してください。
まとめ
今回のAWS Transfer Familyのアップデートにより、NLB構成における「送信元IPが隠蔽されてしまう」という長年の課題がスマートに解決されました。これにより、セキュリティレベルを犠牲にすることなく、高可用性やIP固定といったNLBの恩恵をフルに享受できるようになります。
SFTPをビジネスプロセスやファイル連携の中核に組み込んでいる企業にとって、これはまさに「神アップデート」と言えるでしょう。現在NLB + AWS Transfer Familyを構築されている、あるいは今後構築を予定されている方は、ぜひこの新機能を有効化して、よりセキュアなシステムを構築してください!