AWS SFTP サーバーにはどのタイプのエンドポイントを使用した方がよいですか?

最終更新日: 2020 年 2 月 27 日

AWS Transfer for SFTP (AWS SFTP) サーバーにはどのタイプのエンドポイントを使用した方がよいですか?

簡単な説明

AWS SFTP サーバーでは、次のタイプのエンドポイントを使用できます。

  • パブリックエンドポイント: パブリックエンドポイントを持つ AWS SFTP サーバーには、インターネット経由でアクセスできます。このエンドポイントタイプでは、AWS SFTP はポート 22 でトラフィックをリッスンします。正しい認証情報を持つすべてのユーザーがサーバーにアクセスできます。
  • 内部アクセス機能を備えた Amazon Virtual Private Cloud (VPC) エンドポイント: 内部アクセス機能を備えた VPC エンドポイントで設定された AWS SFTP サーバーには、定義された VPC 内からのみアクセスできます。セキュリティグループを使用して、特定のクライアント IP アドレスのみを許可できます。このエンドポイントタイプを設定するには、エンドポイントをホストする VPC とサブネットを指定する必要があります。
  • インターネット向けアクセスを持つ VPC エンドポイント: インターネット向けアクセスを持つ VPC エンドポイントで設定された AWS SFTP サーバーには、インターネット経由でアクセスできます。セキュリティグループを使用して、特定のクライアント IP アドレスのみを許可できます。このエンドポイントタイプを設定するには、エンドポイントをホストする VPC とサブネットを指定する必要があります。さらに、Elastic IP アドレスを AWS SFTP サーバーにアタッチする必要があります。これらの IP アドレスは、AWS IP アドレスまたは独自の IP アドレス (BYOIP) にすることができます。
  • VPC_ENDPOINT: このエンドポイントタイプは、AWS コマンドラインインターフェイス (AWS CLI) または AWS SFTP API を使用してサーバーを作成する場合にのみ使用できます。VPC_ENDPOINT を持つサーバーには、指定された VPC 内からのみアクセスできます。このエンドポイントタイプをインターネット経由でアクセスできるようにするには、Network Load Balancer を作成し、AWS SFTP トラフィックの VPC_ENDPOINT をターゲットにする必要があります。
    注意: VPC_ENDPOINT の代わりに、内部アクセスを持つ VPC エンドポイント、またはインターネット向けアクセスを持つ VPC エンドポイントを使用することをお勧めします。VPC エンドポイントタイプは、最大 3 つの Elastic IP アドレスをエンドポイントに直接関連付けるオプションをサポートしています。さらに、VPC エンドポイントタイプでは、VPC のセキュリティグループを使用して、クライアントのパブリック IP アドレスによるアクセスをフィルタリングできます。これらの機能は VPC_ENDPOINT ではサポートされていません。

一般的に、次のシナリオに基づいてエンドポイントタイプを選択できます。

  • 特別な設定なしでパブリックにアクセス可能な AWS SFTP サーバーを持つために、パブリックエンドポイントを使用できます。
  • サーバーの静的 IP アドレス、特定のクライアント IP アドレスを許可または拒否する機能、またはその両方を持つために、インターネット向けアクセスを持つ VPC エンドポイントを使用できます。
  • VPC 内からのアクセスのみを許可するには、内部アクセスを持つ VPC エンドポイントを使用できます。このエンドポイントタイプでは、特定のクライアント IP アドレスを許可または拒否することもできます。
  • AWS SFTP トラフィックにカスタムポートを使用するために、Network Load Balancer とともに内部アクセスを持つ VPC エンドポイントを使用できます。この設定では、特定のクライアント IP アドレスを許可または拒否できます。

解決方法

ユースケースに基づいて、次のエンドポイントタイプと設定を使用するのがベストプラクティスです。

インターネットからアクセス可能な AWS SFTP サーバーが必要で、サーバーへのアクセスに特別な設定は必要ありません

パブリックエンドポイントを使用します。パブリックエンドポイントは、VPC で特別な設定 (インターネットゲートウェイなど) を必要としません。

AWS SFTP サーバーを VPC 内からのみアクセスできるようにしたいです

内部アクセスを持つ VPC エンドポイントを使用します。このエンドポイントタイプは、指定した VPC 内からのみサーバーへのアクセスを許可します。サーバーには、エンドポイントに割り当てる内部 IP アドレス経由でアクセスできます。このアドレスは、AWS SFTP コンソールで確認できます。

AWS SFTP サーバーを VPC 内からのみアクセスできるようにし、特定の IP アドレスからのアクセスを許可したいです

内部アクセスを持つ VPC エンドポイントを使用します。このエンドポイントタイプは、VPC 内からのみサーバーへのアクセスを許可します。さらに、エンドポイントにアタッチされているセキュリティグループを変更して、特定の IP アドレスからのアクセスを許可できます。

インターネットからアクセス可能な AWS SFTP サーバーが必要で、その IP アドレスを静的にして、ファイアウォールで許可できるようにしたいです

インターネット向けアクセスを持つ VPC エンドポイントを使用します。Elastic IP アドレスをエンドポイントにアタッチし、それらの IP アドレスをファイアウォールで許可できます。

注意: サーバーのステータスがオンラインとオフラインの間で変わっても、AWS SFTP サーバーに割り当てる IP アドレスは変更されません。

インターネットからアクセス可能な AWS SFTP サーバーが必要で、サーバーアクセスを許可するクライアントの特定リストを持っています

インターネット向けアクセスを持つ VPC エンドポイントを使用します。デフォルトでは、VPC のデフォルトセキュリティグループはエンドポイントにアタッチされます。ただし、アタッチされたセキュリティグループを変更できます。次に、選択したセキュリティグループのクライアント IP アドレスからのアクセスを許可できます。さらに、エンドポイントは特定のサブネットに作成されるため、サブネットにアタッチされているネットワークアクセスコントロールリスト (ネットワーク ACL) のクライアントからのアクセスを許可できます。

注意: セキュリティグループのデフォルトクォータは、ネットワークインターフェイスあたり 300 ルールです。ネットワークインターフェイスごとに最大 1,000 ルールまでクォータを引き上げるようリクエストできます。ネットワーク ACL には、ACL ごとに 20 のルールというデフォルトクォータがあります。ACL ごとにクォータを最大 40 ルールまで増やすようにリクエストできます。

インターネットからアクセス可能な AWS SFTP サーバーが必要ですが、特定の IP アドレスへのアクセスを拒否したいです

インターネット向けアクセスを持つ VPC エンドポイントを使用します。次に、関連付けられたネットワーク ACL を使用して IP アドレスへのアクセスを拒否します。セキュリティグループは拒否ルールをサポートしていません。

注意: ネットワーク ACL に拒否ルールを追加するときは、拒否された IP アドレスがサブネット内の他のリソースにアクセスしないようにする必要があります。ネットワーク ACL は、サブネット全体へのアクセスを拒否します。

インターネットからアクセス可能な AWS SFTP サーバーが必要で、クライアントが AWS SFTP トラフィックにカスタムポートを使用しています

内部アクセスを持つ VPC エンドポイントを使用し、Network Load Balancer を VPC エンドポイントにアタッチします。AWS SFTP サーバーはポート 22 でトラフィックをリッスンします。Network Load Balancer をデプロイするときに、カスタムポート経由でトラフィックをリッスンするようにロードバランサーリスナーを設定できます。次に、ロードバランサーはポート 22 で AWS SFTP サーバーと通信します。

特定のクライアントへのアクセスを許可または拒否するには、ネットワーク ACL を更新します。クライアントはサーバーに直接接続する代わりにロードバランサーに接続するため、クライアント IP アドレスはこの設定では保持されません。つまり、セキュリティグループを使用してクライアント IP アドレスからのアクセスを許可することはできません。

注意: ネットワーク ACL は、セキュリティグループと比較して、クォータで使用できるルールが少なくなります。ネットワーク ACL には、ACL ごとに 20 のルールというデフォルトクォータがあります。ACL ごとにクォータを最大 40 ルールまで増やすようにリクエストできます。

インターネットからアクセス可能な AWS SFTP サーバーが必要で、クライアントが AWS SFTP トラフィックにカスタムポートを使用して、特定のクライアントへのアクセスを許可または拒否したいです

内部アクセスを持つ VPC エンドポイントを使用し、Network Load Balancer を VPC エンドポイントにアタッチします。クライアントのカスタムポートでトラフィックをリッスンするようにロードバランサーを設定します。特定のクライアントへのアクセスを許可または拒否するには、ネットワーク ACL を更新します。クライアントはサーバーに直接接続する代わりにロードバランサーに接続するため、クライアント IP アドレスはこの設定では保持されません。つまり、セキュリティグループを使用してクライアント IP アドレスからのアクセスを許可することはできません。

注意: ネットワーク ACL は、セキュリティグループと比較して、クォータで使用できるルールが少なくなります。ネットワーク ACL には、ACL ごとに 20 のルールというデフォルトクォータがあります。ACL ごとにクォータを最大 40 ルールまで増やすようにリクエストできます。

インターネットからアクセス可能な AWS SFTP サーバーが必要で、クライアントが AWS SFTP トラフィックにカスタムポートを使用して、サーバーの静的 IP アドレスを設定したいです

内部アクセスを持つ VPC エンドポイントを使用し、Network Load Balancer を VPC エンドポイントにアタッチします。クライアントのカスタムポートでトラフィックをリッスンするようにロードバランサーを設定します。Network Load Balancer では、パブリックインターフェイスに Elastic IP アドレスをアタッチするよう求められます。つまり、クライアントはロードバランサーのパブリックインターフェイスにアタッチされている Elastic IP アドレスへのアクセスを許可できます。

多数のクライアント IP アドレスから AWS SFTP サーバーへのアクセスを許可したいです

セキュリティグループを使用してクライアント IP アドレスからのアクセスを許可できるように、内部アクセスまたはインターネット向けアクセスを持つ VPC エンドポイントを使用します。ネットワーク ACL は最大 40 のルールを提供します。対照的に、セキュリティグループはデフォルトで各ネットワークインターフェイスに対して 300 のルールを許可し、クォータを最大 1,000 ルールまで増やすようにリクエストできます。クライアントの所在地に基づいて、内部またはインターネット向けの VPC エンドポイントを選択します。

AWS SFTP サーバーのセキュリティ体制を強化して、潜在的な攻撃者をブロックしたいです

いくつかのオプションがあります。

  • 内部アクセスを持つ VPC エンドポイントを使用して、VPC 内のクライアントや、AWS Direct Connect または VPN 経由でオンプレミスのデータセンターなどの VPC 接続環境でのみサーバーにアクセスできるようにします。
  • クライアントがインターネット経由でエンドポイントにアクセスし、サーバーを保護できるようにするには、インターネット向けアクセスを持つ VPC エンドポイントを使用します。次に、ユーザーのクライアントをホストする特定の IP アドレスからのトラフィックのみを許可するように VPC のセキュリティグループを変更します。
  • 内部アクセスを持つ VPC エンドポイントの前面で Network Load Balancer を使用します。ロードバランサーのリスナーポートをポート 22 から別のポートに変更します。これにより、ポート 22 がスキャンに最もよく使用されるため、ポートスキャナーやボットがサーバーを探すリスクが軽減されます。ただし、排除できるわけではありません。ただし、Network Load Balancer を使用する場合、セキュリティグループを使用して送信元 IP アドレスからのアクセスを許可することはできません。

ディクショナリー攻撃やブルートフォース試行から AWS SFTP サーバーを保護したいです

パスワードベースの認証を必要とし、サーバーでカスタム ID プロバイダーを使用する場合は、以下のアグレッシブパスワードポリシーを設定することを強くお勧めします。

  • ユーザーが簡単に推測できるパスワードを作成できないようにします。
  • 1 つのアカウントでのログイン試行の失敗回数を一定期間に制限します