AWS Network Firewall と NAT ゲートウェイをどのように設定すればよいですか?
AWS Network Firewall を NAT ゲートウェイを使用してトラフィックを検査するように設定したいです。
簡単な説明
AWS Network Firewall は、Amazon Virtual Private Cloud (Amazon VPC) 内のリソースとの間のトラフィックに対して、より細かい制御を提供します。Amazon VPC リソースを保護するために、Network Firewall エンドポイントを独自のサブネットに展開し、これらを通してワークロードインスタンスのトラフィックをルーティングすることができます。これは以下の方法で行うことができます。
- VPC の作成
- ファイアウォールの作成
- トラフィックルーティングの設定
**注:**Network Firewall は、ファイアウォールエンドポイントが展開された同じサブネット内のワークロードを検査することはできません。
解決方法
VPC の作成
- Amazon VPC コンソールを開きます。
- VPC ダッシュボードで、[VPC を作成] をクリックします。
- [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-2a と us-east-2b が選択されます。
[パブリックサブネットの数] には、[2] を選択します。
[プライベートサブネットの数] には、[4] を選択します。プライベートサブネットのうち 2 つはファイアウォールのためのサブネットであり、残りの 2 つはワークロードのためのサブネットです。
[NAT ゲートウェイ ($)] には、[AZ ごとに 1 つ] を選択します。NAT ゲートウェイは、パブリックサブネットに自動的に展開されます。
[VPC エンドポイント] には、[なし] を選択します。 - [VPC を作成] を選択します。
- 以下の目的に基づいてサブネットに名前を付けます。
2 つのパブリックサブネットは NAT ゲートウェイ用で、この例では Public_Subnet_AZa と Public_Subnet_AZb と名前を付けます。
プライベートサブネットのうち 2つ はファイアウォールエンドポイント用で、この例ではFirewall_Subnet_AZa と Firewall_Subnet_AZbと名前を付けます。
残りの 2 つのプライベートサブネットはワークロードエンドポイント用で、この例では Private_Subnet_AZa と Private_Subnet_AZb と名前を付けます。
ファイアウォールの作成
- ナビゲーションペインで、[Network Firewall] の下にある [ファイアウォール] を選択します。
- [ファイアウォールの作成] を選択します。
- [ファイアウォールの作成] で、以下を入力します。
ファイアウォールの名前を入力します。この例では、ファイアウォールの名前は「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 つのプライベートサブネットには固有のルーティングテーブルが関連付けられており、パブリックサブネットはルーティングテーブルを共有します。インターネットゲートウェイへの静的ルートを持つ新しいルーティングテーブルを作成し、パブリックサブネットの 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/20 | aZa のファイアウォールエンドポイント |
注: この例では、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/20 | AzB のファイアウォールエンドポイント |
注: この例では、10.0.16.0/20 は Private_Subnet_AZb の CIDR です。
Firewall_Subnet_RouteTable_AZa (サブネット関連付け: Firewall_Subnet_AZa)
宛先 | ターゲット |
---|---|
0.0.0.0/0 | Public_Subnet_AZa の NAT ゲートウェイ |
10.0.0.0/16 | ローカル |
Firewall_Subnet_RouteTable_AZb (サブネットの関連付: Firewall_Subnet_AZb)
宛先 | ターゲット |
---|---|
0.0.0.0/0 | Public_Subnet_AZb の NAT ゲートウェイ |
10.0.0.0/16 | ローカル |
Private_Subnet_RouteTable_AZa (サブネットの関連付: Private_Subnet_AZa)
宛先 | ターゲット |
---|---|
0.0.0.0/0 | aZa のファイアウォールエンドポイント |
10.0.0.0/16 | ローカル |
Private_Subnet_RouteTable_AZb (サブネットの関連付: Private_Subnet_AZb)
宛先 | ターゲット |
---|---|
0.0.0.0/0 | AzB のファイアウォールエンドポイント |
10.0.0.0/16 | ローカル |
正しくルーティングが設定されているかを確認するためには、プライベートサブネットのいずれかに EC2 インスタンスをデプロイし、インターネットへの接続性をテストすることができます。ネットワークファイアウォールポリシーに設定されたルールがない場合、トラフィックは検査されず、インターネットに到達することができます。ルーティング、セキュリティグループ、ネットワークアクセス制御リスト (ネットワーク ACL) が正しく設定されていることを確認した後、ファイアウォールポリシーにルールを追加してください。
注: Network Firewall を設定して、インターネットからのトラフィックをファイアウォールを介して、その後 NAT ゲートウェイにルーティングすることもできます。詳細については、「インターネットゲートウェイと NAT ゲートウェイを備えたアーキテクチャ」を参照してください。
関連情報

関連するコンテンツ
- 質問済み 3ヶ月前lg...
- AWS公式更新しました 2年前
- AWS公式更新しました 3年前
- AWS公式更新しました 2年前