AWS Transfer Family
SFTP、FTPS、FTP、AS2 プロトコルに対応したフルマネージドのファイル転送サービスで、S3 や EFS をバックエンドストレージとして利用できる
概要
AWS Transfer Family は、SFTP、FTPS、FTP、AS2 の 4 つのプロトコルに対応したフルマネージドのファイル転送サービスです。既存のファイル転送ワークフローを変更することなく、バックエンドストレージを S3 または EFS に置き換えることで、オンプレミスの FTP サーバーからクラウドへの移行を実現します。取引先やパートナー企業が使い慣れたプロトコルをそのまま利用できるため、クライアント側の変更が不要です。カスタム ID プロバイダーとの統合により、既存の認証基盤を活かしたアクセス制御が可能で、マネージドワークフロー機能を使えばファイル受信後の後処理を自動化できます。
プロトコル選択とエンドポイントタイプ
Transfer Family は用途に応じて 4 つのプロトコルを選択できます。SFTP (SSH File Transfer Protocol) は SSH ベースの暗号化通信で最も広く利用され、取引先とのセキュアなファイル交換に適しています。FTPS (FTP over TLS) は従来の FTP に TLS 暗号化を追加したプロトコルで、レガシーシステムとの互換性が求められる場面で選択します。FTP は暗号化なしの平文通信であり、VPC 内部の閉域ネットワークでのみ利用が推奨されます。AS2 (Applicability Statement 2) は EDI (電子データ交換) で標準的に使用されるプロトコルで、メッセージの暗号化・署名・受領確認 (MDN) をプロトコルレベルで保証します。エンドポイントタイプはパブリック、VPC、VPC_ENDPOINT の 3 種類があります。パブリックエンドポイントはインターネット経由のアクセスに対応し、AWS が管理する Elastic IP が割り当てられます。VPC エンドポイントは VPC 内にエンドポイントを配置し、セキュリティグループと Elastic IP の固定割り当てが可能です。取引先がファイアウォールで IP アドレスをホワイトリスト管理している場合は、Elastic IP を固定できる VPC エンドポイントが必須となります。
ID プロバイダー統合とアクセス制御
Transfer Family の認証は、サービスマネージド、AWS Directory Service、カスタム ID プロバイダーの 3 方式から選択します。サービスマネージド方式は SSH 公開鍵認証で、ユーザーごとに公開鍵を登録して管理します。少数のユーザーを管理する場合にシンプルで適しています。AWS Directory Service 統合は、Active Directory のユーザー/パスワード認証をそのまま利用でき、既存の AD 基盤を持つ企業に適しています。カスタム ID プロバイダーは、API Gateway + Lambda または Lambda 単体で認証ロジックを実装する方式で、最も柔軟性が高い選択肢です。外部の LDAP サーバー、データベース、Secrets Manager に格納した認証情報を参照して認証判定を行えます。認証成功時に返すレスポンスで、ユーザーごとの IAM ロール、ホームディレクトリ、論理ディレクトリマッピングを動的に制御できます。論理ディレクトリマッピングは、S3 バケット内の特定のプレフィックスをユーザーのルートディレクトリとして見せる機能で、ユーザーが自分の領域外のファイルにアクセスすることを防ぎます。セッションポリシーを併用すれば、IAM ロールの権限をさらに絞り込んだ一時的なアクセス制御も実現できます。
ワークフローによる後処理の自動化
Transfer Family のマネージドワークフロー機能は、ファイルのアップロード完了をトリガーとして、一連の後処理ステップを自動実行する仕組みです。ワークフローには、ファイルのコピー、タグ付け、カスタム Lambda 関数の呼び出し、ファイルの削除といったステップを定義できます。たとえば、取引先から受信した CSV ファイルを S3 の処理用バケットにコピーし、Lambda 関数でバリデーションとフォーマット変換を実行し、処理済みファイルをアーカイブバケットに移動するパイプラインを構築できます。ワークフローには通常フローと例外フローの 2 系統を定義でき、ステップの実行中にエラーが発生した場合は例外フローに分岐して、エラー通知やファイルの隔離を行います。CloudWatch Logs にワークフローの実行ログが出力されるため、各ステップの成否と処理時間を追跡できます。実務では、ファイル名のパターンに応じて異なる Lambda 関数を呼び出す条件分岐や、PGP 暗号化されたファイルの復号処理をワークフロー内で実行するパターンが一般的です。ワークフローの実行は Transfer Family の料金に含まれず、Lambda の実行料金と S3 のリクエスト料金が別途発生する点に注意が必要です。