アーキテクチャ - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

アーキテクチャ

従来の境界ゾーンアーキテクチャ

多くの組織では、インターネット向けアプリケーションは、オンプレミス環境から分離された境界ゾーンで「壁面」されます。次の図が示すように、アプリケーショントラフィックはファイアウォールを経由して境界ゾーンにルーティングされ、境界ゾーンのアプリケーションは別のファイアウォールによって他のアプリケーションやネットワークから分離されます。

従来の境界ゾーンアーキテクチャ

Network Firewall に基づく境界ゾーンアーキテクチャ

次の図は、 AWS クラウドにある境界ゾーンアプリケーションのネットワークアーキテクチャの例です。

の境界ゾーンアプリケーションのアーキテクチャ AWS クラウド

上記のネットワークアーキテクチャの例では、アプリケーションは次のメカニズムで保護されています。

  • Amazon CloudFront のウェブアプリケーションファイアウォールは、アプリケーションエンドポイントに対する攻撃に対する保護の最初のレイヤーとして機能します。

  • パブリックサブネットで、 は (Application Load Balancer を介して) アプリケーションエンドポイントにルーティングされるすべてのトラフィック AWS Network Firewall を検査します。すべてのトラフィックが Network Firewall のエンドポイントを通過するようにするには、図のようにルーティングテーブルを更新する必要があります。

アプリケーションからのすべての出力トラフィックをネットワークファイアウォール経由で に AWS Transit Gateway ルーティングすることをお勧めします。これにより、保護されたネットワークにトラフィックをルーティングする前に、アカウント内のすべてのトラフィックを審査できます。

トラフィックデータフロー

次の図は、Network Firewall に基づく境界ゾーンアーキテクチャを介したトラフィックのデータフローを示しています。

Network Firewall に基づく境界ゾーンアーキテクチャを通過するトラフィックのデータフロー

この図は、次のワークフローを示しています。

  1. ユーザーは Amazon CloudFront を介してインターネット経由でアプリケーションにアクセスします。デフォルトの DNS in CloudFront または Amazon Route 53 でサポートされている DNS を使用できます。 https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html

  2. インターネットゲートウェイルーティングロジックは、Application Load Balancer 向けのすべての受信リクエストを、ルーティングテーブル設定を介してファイアウォールのネットワークインターフェイスを介して Network Firewall に転送します。これは、このガイドの「Network Firewall に基づく境界ゾーンアーキテクチャ」セクションの図の「ルートテーブルIGW」で説明されています。

  3. 受信したトラフィックは、Network Firewall のルールに基づいてブロックまたは転送されます。アラートを送信するためのルールを作成することもできます。Network Firewall は、送受信トラフィックフローに対して完全に透過的であり、ネットワークアドレス変換を実行しません。

  4. ファイアウォールを通過する受信トラフィックは、変更されないままApplication Load Balancer に到達します。Application Load Balancer が再び応答すると、(ルーティングテーブルのロジックに基づいて) リクエストをネットワークファイアウォールに転送します。これは、このガイドの「Network Firewall に基づく境界ゾーンアーキテクチャ」セクションにあるルートテーブルエンドポイント A およびルートテーブルエンドポイント B の図で説明されています。

ネットワークコンポーネント

AWS クラウド用に設計する境界ゾーンアーキテクチャには、次のコンポーネントを含めることを推奨します。

  • Amazon CloudFront と AWS WAF – CloudFront は と連携して AWS WAF 、分散型サービス拒否 (DDoS) 保護、ウェブアプリケーションファイアウォール、IP 許可リスト (必要な場合)、およびコンテンツ配信を提供します。 CloudFront は、SSL 接続の受け入れ (転送中の暗号化) にのみ HTTPS 証明書を使用する必要があります。

  • インターネットゲートウェイ — インターネットゲートウェイを使用して、VPC をインターネットに接続します。ルートテーブル (このガイドの「Network Firewall に基づくペリメータゾーンアーキテクチャ」セクションの図の「ルートテーブルIGW」を参照) に基づいて、エンドポイントサブネット (つまり、ロードバランサー用) を対象とするすべての受信トラフィックは、Elastic Network Interface を介して最初に Network Firewall にルーティングされます。これは、このガイドの「Network Firewall に基づく境界ゾーンアーキテクチャ」セクションの図で eni-id-sec1eni-id-sec2 で示されています。

  • Network Firewall — Network Firewall は、イングレスおよびエグレストラフィックに対するファイアウォール機能とモニタリング機能を提供する、自動スケーリングファイアウォールです。Network Firewall は、Gateway Load Balancer エンドポイントタイプを介して VPC にアタッチできます。エンドポイントをパブリックネットワークに配置して、インターネットゲートウェイを通過するトラフィックを Network Firewall にルーティングできるようにします。これは、このガイドの「Network Firewall に基づく境界ゾーンアーキテクチャ」セクションにあるルートテーブルセキュリティの図で説明されています。

  • エンドポイントサブネットと Application Load Balancer — インターネットに接続する Application Load Balancer を使用して、インターネット経由でアプリケーションにアクセスできるようにします。Network Firewall 経由でのみインターネットに公開される保護されたサブネットが必要です。このルーティングはルートテーブル設定で定義されます。ルートテーブルはソース 0.0.0.0/0 を持つルートを 1 つだけ許可するため、サブネットとファイアウォールネットワークインターフェイスの組み合わせごとに 2 つのルートテーブルが必要です。これは、このガイドの「Network Firewall に基づく境界ゾーンアーキテクチャ」にあるルートテーブルエンドポイント A およびルートテーブルエンドポイント B の図で説明されています。転送中に暗号化を行うには、SSL でロードバランサーを有効にする必要があります。

  • トランジットゲートウェイ – トランジットゲートウェイは、オンプレミスネットワークや他の VPCs などの他のネットワークへのアクセスを提供します。このガイドで説明するネットワークアーキテクチャでは、トランジットゲートウェイはエンドポイントのサブネットのネットワークインターフェイスを介して公開されます。この実装により、トランジットゲートウェイはウェブアプリケーション (プライベートサブネット) から発信されるトラフィックを確実に受信できます。

  • アプリケーションサブネット — これは、アプリケーションが Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで実行されているプライベートサブネットです。

  • NAT Gateway – このガイドのアーキテクチャ例には NAT ゲートウェイは含まれていません。ネットワークアーキテクチャに NAT ゲートウェイが必要な場合は、各サブネットに NAT ゲートウェイを追加することをお勧めします。その場合は、アプリケーションのルートテーブルに、NAT ゲートウェイのネットワークインターフェイスにマッピングされた送信先 0.0.0.0/0 があることもお勧めします。

境界ゾーンアプリケーションの移行

検出プロセスは移行を成功させるために不可欠です。などの検出ツールを使用する場合は AWS Application Discovery Service、境界ネットワークと内部ネットワークの両方にツールをインストールできることを確認することをお勧めします。また、データフローを正しくキャプチャできるか検証することも併せて推奨します。ツールによる自動検出を手動検出プロセスで補完するのがベストプラクティスです。例えば、手動検出プロセスの一環として、アプリケーションチームにインタビューして、アプリケーションの技術的要件と考慮事項をより深く理解することができます。手作業によるプロセスは、 AWS クラウドのアプリケーションの設計に影響を与えかねないエッジケースを特定するのにも役立ちます。

検出プロセスの一環として、次の項目を確認することを推奨します。

  1. 信頼できないネットワークおよび境界ネットワークにおけるクライアント間のネットワーク依存関係

  2. 安全なネットワークにおける境界ネットワークとアプリケーションコンポーネント間の依存関係

  3. VPN 経由で安全なネットワークに直接行われるサードパーティー接続

  4. 既存のウェブアプリケーションファイアウォールすべて

  5. 導入されている侵入検出システムおよび侵入防止システム、およびそれぞれの検出ルール (可能な場合)