AWS Network Firewall と NAT ゲートウェイをどのように設定すればよいですか?

所要時間3分
0

AWS Network Firewall を NAT ゲートウェイを使用してトラフィックを検査するように設定したいです。

簡単な説明

AWS Network Firewall は、Amazon Virtual Private Cloud (Amazon VPC) 内のリソースとの間のトラフィックに対して、より細かい制御を提供します。Amazon VPC リソースを保護するために、Network Firewall エンドポイントを独自のサブネットに展開し、これらを通してワークロードインスタンスのトラフィックをルーティングすることができます。これは以下の方法で行うことができます。

  • VPC の作成
  • ファイアウォールの作成
  • トラフィックルーティングの設定

**注:**Network Firewall は、ファイアウォールエンドポイントが展開された同じサブネット内のワークロードを検査することはできません。

解決方法

VPC の作成

  1. Amazon VPC コンソールを開きます。
  2. VPC ダッシュボードで、[VPC を作成] をクリックします。
  3. [VPC 設定] の下に、以下を入力します。
    [VPC など] を選択します。
    [名前タグの自動生成] の下に、VPC の名前を入力します。この例では、VPC の名前は「Protected_VPC_10.0.0.0_16-vpc」とします。[自動生成] オプションが選択されている場合、この名前は [VPC] 内のすべてのリソースに名前タグとして追加されます。
    [IPv4 CIDRブロック] には、「10.0.0.0/16」を入力します。
    [IPv6 CIDRブロック] には、[IPv6 CIDRブロックは使用しない] を選択します。
    [テナンシー] には、[デフォルト] を選択します。
    [アベイラビリティーゾーン (AZ) の数] には、[2] を選択します。
    [AZ のカスタマイズ] の下で、2 つのアベイラビリティーゾーンを選択します。この例では、us-east-2aus-east-2b が選択されます。
    [パブリックサブネットの数] には、[2] を選択します。
    [プライベートサブネットの数] には、[4] を選択します。プライベートサブネットのうち 2 つはファイアウォールのためのサブネットであり、残りの 2 つはワークロードのためのサブネットです。
    [NAT ゲートウェイ ($)] には、[AZ ごとに 1 つ] を選択します。NAT ゲートウェイは、パブリックサブネットに自動的に展開されます。
    [VPC エンドポイント] には、[なし] を選択します。
  4. [VPC を作成] を選択します。
  5. 以下の目的に基づいてサブネットに名前を付けます。
    2 つのパブリックサブネットは NAT ゲートウェイ用で、この例では Public_Subnet_AZaPublic_Subnet_AZb と名前を付けます。
    プライベートサブネットのうち 2つ はファイアウォールエンドポイント用で、この例ではFirewall_Subnet_AZaFirewall_Subnet_AZbと名前を付けます。
    残りの 2 つのプライベートサブネットはワークロードエンドポイント用で、この例では Private_Subnet_AZaPrivate_Subnet_AZb と名前を付けます。

ファイアウォールの作成

  1. ナビゲーションペインで、[Network Firewall] の下にある [ファイアウォール] を選択します。
  2. [ファイアウォールの作成] を選択します。
  3. [ファイアウォールの作成] で、以下を入力します。
    ファイアウォールの名前を入力します。この例では、ファイアウォールの名前は「Network-Firewall-Test」です。
    [VPC] には、[Protected_VPC_10.0.0.0_16-vpc] を選択します。
    [ファイアウォールサブネット] には、最初のアベイラビリティーゾーン (us-east-2a) を選択し、サブネットに [Firewall_Subnet_AZa] を選択します。次に、[新しいサブネットを追加] を選択し、2 番目のアベイラビリティーゾーン (us-east-2b) を選択し、サブネットに [Firewall_Subnet_AZb] を選択します。
    [関連付けられたファイアウォールポリシー] には、[空のファイアウォールポリシーを作成して関連付ける] を選択します。
    [新しいファイアウォールポリシー名] に、新しいポリシーの名前を入力します。
  4. [ファイアウォールの作成] を選択します。各サブネットには一意のルーティングテーブルが必要です。4 つのプライベートサブネットには固有のルーティングテーブルが関連付けられており、パブリックサブネットはルーティングテーブルを共有します。インターネットゲートウェイへの静的ルートを持つ新しいルーティングテーブルを作成し、パブリックサブネットの 1 つに関連付ける必要があります。

トラフィックルーティングの設定

トラフィックの流れは以下の通りです。

  • AZa のワークロードインスタンスから開始されたトラフィックは、AZa のファイアウォールエンドポイントに転送されます。
  • AZa のファイアウォールエンドポイントは、トラフィックを AZa の NAT ゲートウェイにルーティングします。
  • AZa の NAT ゲートウェイは、VPC に関連付けられたインターネットゲートウェイにトラフィックを転送します。
  • インターネットゲートウェイは、トラフィックをインターネットに送信します。

逆方向のトラフィックも同じ経路をたどります。

  • インターネットからの戻りトラフィックは、VPC に接続されたインターネットゲートウェイに到達します。VPC には 1 つのインターネットゲートウェイのみが接続できます。
  • インターネットゲートウェイは、トラフィックを AZa の NAT ゲートウェイに転送します。インターネットゲートウェイは、ワークロードの利用可能ゾーンに基づいてこの決定を行います。トラフィックの宛先が AZa にあるため、インターネットゲートウェイは AZa の NAT ゲートウェイを選択してトラフィックを転送します。インターネットゲートウェイのためにルートテーブルを維持する必要はありません。
  • AZa の NAT ゲートウェイは、トラフィックを AZa のファイアウォールエンドポイントに転送します。
  • AZa のファイアウォールエンドポイントは、トラフィックを AZa のワークロードに転送します。

注: インターネットゲートウェイは、インターネットからワークロードインスタンスに戻るパケットの NAT ゲートウェイを識別することができます。

VPC とファイアウォールを作成した後、ルーティングテーブルを設定する必要があります。ルーティングテーブルを設定する際には、以下の点に注意してください。

  • AZa のプライベートサブネット (Private_Subnet_AZa) は、インターネット宛てのすべてのトラフィックを AZa のファイアウォールエンドポイント (Firewall_Subnet_AZa) に転送します。同様に、AZb のプライベートサブネットと AZb のファイアウォールエンドポイントでも繰り返されます。
  • AZa のファイアウォールサブネット (Firewall_Subnet_AZa) は、インターネット宛てのすべてのトラフィックを AZa の NAT ゲートウェイ (Public_Subnet_AZa) に転送します。同様に、AZb のファイアウォールサブネットと AZb の NAT ゲートウェイでも繰り返されます。
  • AZa のパブリックサブネット (Public_Subnet_AZa) は、VPC に接続されたインターネットゲートウェイに対してすべてのトラフィックを転送します。
  • 戻りトラフィックも同じ経路を逆方向にたどります。

**注:**トラフィックは同じアベイラビリティーゾーンに保持されるため、ネットワークファイアウォールでは同じファイアウォールエンドポイントを経由する出力トラフィックと入力トラフィックのルートが両方あります。これにより、各アベイラビリティーゾーンのファイアウォールエンドポイントがパケットのステートフル検査を行うことができます。

以下はルーティングテーブルの例設定です。

Public_Subnet_RouteTable_AZa (サブネット関連付け: Public_Subnet_AZa)

宛先ターゲット
0.0.0.0/0インターネットゲートウェイ
10.0.0.0/16ローカル
10.0.128.0/20aZa のファイアウォールエンドポイント

注: この例では、10.0.128.0/20 は Private_Subnet_AZa の CIDR です。

Public_Subnet_RouteTable_AZb (サブネット関連付け: Public_Subnet_AZb)

宛先ターゲット
0.0.0.0/0インターネットゲートウェイ
10.0.0.0/16ローカル
10.0.16.0/20AzB のファイアウォールエンドポイント

注: この例では、10.0.16.0/20 は Private_Subnet_AZb の CIDR です。

Firewall_Subnet_RouteTable_AZa (サブネット関連付け: Firewall_Subnet_AZa)

宛先ターゲット
0.0.0.0/0Public_Subnet_AZa の NAT ゲートウェイ
10.0.0.0/16ローカル

Firewall_Subnet_RouteTable_AZb (サブネットの関連付: Firewall_Subnet_AZb)

宛先ターゲット
0.0.0.0/0Public_Subnet_AZb の NAT ゲートウェイ
10.0.0.0/16ローカル

Private_Subnet_RouteTable_AZa (サブネットの関連付: Private_Subnet_AZa)

宛先ターゲット
0.0.0.0/0aZa のファイアウォールエンドポイント
10.0.0.0/16ローカル

Private_Subnet_RouteTable_AZb (サブネットの関連付: Private_Subnet_AZb)

宛先ターゲット
0.0.0.0/0AzB のファイアウォールエンドポイント
10.0.0.0/16ローカル

正しくルーティングが設定されているかを確認するためには、プライベートサブネットのいずれかに EC2 インスタンスをデプロイし、インターネットへの接続性をテストすることができます。ネットワークファイアウォールポリシーに設定されたルールがない場合、トラフィックは検査されず、インターネットに到達することができます。ルーティング、セキュリティグループ、ネットワークアクセス制御リスト (ネットワーク ACL) が正しく設定されていることを確認した後、ファイアウォールポリシーにルールを追加してください。

注: Network Firewall を設定して、インターネットからのトラフィックをファイアウォールを介して、その後 NAT ゲートウェイにルーティングすることもできます。詳細については、「インターネットゲートウェイと NAT ゲートウェイを備えたアーキテクチャ」を参照してください。

関連情報

AWS Network Firewall でのログ記録とモニタリング

ルートテーブルの概念

VPC ルーティングが強化された AWS Network Firewall のデプロイモデル

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ