AWS Transfer Family サーバーはFTPプロトコルを禁止にする手順

このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、「どうやって直すのか?」 という具体的な修復手順(コンソール、AWS CLI、Terraformなど)まで、分かりやすく解説します。

この記事では、AWS Transfer Family サーバーでFTPプロトコルを使用することのセキュリティリスクと、セキュアな代替プロトコルへの移行方法を詳しく解説します。

ポリシーの説明

AWS Transfer Familyは、SFTP、FTPS、FTP、AS2プロトコルを使用してAmazon S3やAmazon EFSとの間でファイルを転送できるフルマネージドサービスです。FTP(File Transfer Protocol)は暗号化されていないプロトコルであり、認証情報やデータが平文で送信されるため、セキュリティ上の重大なリスクがあります。

代替プロトコル:

  • SFTP(SSH File Transfer Protocol): SSHベースの暗号化された安全なファイル転送
  • FTPS(FTP over SSL/TLS): SSL/TLS暗号化を使用したFTP
  • AS2(Applicability Statement 2): EDI(電子データ交換)用の暗号化プロトコル

これらのセキュアなプロトコルを使用することで、機密データの保護とコンプライアンス要件への準拠が可能になります。

リスク

Transfer FamilyサーバーでFTPプロトコルを使用する場合、以下のようなリスクが生じます:

  1. 認証情報の漏洩: ユーザー名とパスワードが平文で送信されるため、ネットワーク上で盗聴された場合、攻撃者が認証情報を取得し、不正アクセスに使用される可能性があります
  2. データの盗聴と改ざん: 転送されるファイルの内容が暗号化されていないため、機密情報(個人情報、財務データ、知的財産など)が第三者に露出し、データ漏洩や改ざんのリスクがあります
  3. 中間者攻撃(MITM): 通信が暗号化されていないため、攻撃者が通信を傍受し、データを改ざんしたり、偽のサーバーに誘導したりする中間者攻撃が可能になります

修復方法

コンソールでの修復手順

AWSのコンソールを使用して、Transfer FamilyサーバーのFTPプロトコルを無効化し、セキュアなプロトコルに切り替えます。

ステップ1: Transfer Familyコンソールへのアクセス

  1. AWS管理コンソールにログインします
  2. サービス検索で「Transfer Family」と入力し、「AWS Transfer Family」を選択します
  3. 左側のナビゲーションペインから「サーバー」を選択します

ステップ2: 既存サーバーの確認

  1. サーバー一覧から、FTPプロトコルを使用しているサーバーを特定します
  2. プロトコル列で「FTP」が含まれているサーバーを確認します
  3. 該当するサーバーIDをクリックして詳細を表示します

ステップ3: サーバーの停止

  1. サーバー詳細ページで「停止」ボタンをクリックします
  2. 確認ダイアログで「停止」を選択します
  3. サーバーのステータスが「STOPPING」から「OFFLINE」に変わるまで待ちます

ステップ4: プロトコルの変更

  1. サーバーが停止したら、「編集」ボタンをクリックします
  2. プロトコルセクションで:
    • ❌ 「FTP」のチェックを外します
    • ✅ 「SFTP」を選択(推奨)
    • ✅ または「FTPS」を選択(SSL/TLS証明書が必要)
    • ✅ または「AS2」を選択(EDI用途の場合)

ステップ5: エンドポイント設定の確認

  1. エンドポイントタイプ
    • 「パブリック」: インターネット経由のアクセス
    • 「VPC」: プライベートネットワーク内のアクセス(推奨)
    • 「VPC_ENDPOINT」: VPCエンドポイント経由のアクセス(最もセキュア)
  2. セキュリティポリシー(SFTPの場合):
    • TransferSecurityPolicy-2024-01(最新・推奨)
    • TransferSecurityPolicy-2023-05
    • TransferSecurityPolicy-2022-03
    • TransferSecurityPolicy-FIPS-2024-01(FIPSコンプライアンスが必要な場合)

ステップ6: 認証設定の更新

  1. ID プロバイダータイプ
    • サービスマネージド: AWS Transfer Familyが管理
    • AWS Directory Service: Active Directory統合
    • カスタム: Lambda/API Gateway統合
  2. 必要に応じて認証方法を強化します

ステップ7: 変更の保存と再起動

  1. すべての設定を確認し、「保存」をクリックします
  2. サーバー詳細ページで「開始」ボタンをクリックします
  3. サーバーのステータスが「ONLINE」になることを確認します

Terraformでの修復手順

Transfer FamilyサーバーでFTPプロトコルを無効化し、セキュアなプロトコルのみを使用する設定をTerraformのサンプルです。

protocolsでのプロトコル選択でFTPを含めず最適なプロトコルを選択すればよいです。

# SFTP専用のTransfer Familyサーバー
resource "aws_transfer_server" "sftp_only" {
  # プロトコル設定(重要:FTPを除外)
  protocols = ["SFTP"]  # FTPは含めない

  # エンドポイント設定
  endpoint_type = "VPC"  # プライベートアクセス推奨

  # セキュリティポリシー(最新版を使用)
  security_policy_name = "TransferSecurityPolicy-2024-01"

  # ID プロバイダー設定
  identity_provider_type = "SERVICE_MANAGED"

  # ロギング設定
  logging_role = aws_iam_role.transfer_logging.arn

  # 強制的な設定変更保護
  force_destroy = false

  tags = {
    Name = "secure-sftp-server"
    Protocol = "SFTP-Only"
    Security = "Encrypted"
  }
}

最後に

この記事では、AWS Transfer Family サーバーでFTPプロトコルを使用することのセキュリティリスクと、セキュアなプロトコルへの移行方法を詳しく解説しました。

FTPプロトコルは暗号化されていないため、認証情報やデータが平文で送信され、重大なセキュリティリスクをもたらします。SFTP、FTPS、AS2などのセキュアなプロトコルを使用することで、データの機密性と完全性を確保し、コンプライアンス要件を満たすことができます。特に、機密データや規制対象データを扱う場合は、FTPプロトコルの使用を完全に排除することが不可欠です。

この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。 運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。 最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。

参考情報

AWS公式ドキュメント

関連するAWSセキュリティベストプラクティス

コンプライアンス関連

この記事をシェアする

クラウドセキュリティ対策実践集一覧へ戻る

貴社の利用状況に合わせた見積もりを作成します。

料金プランを詳しく見る