NAT ゲートウェイを使用して AWS Network Firewall を設定するにはどうすればよいですか?
NAT ゲートウェイを使用してトラフィックを検査するように AWS Network Firewall を設定したいと考えています。
簡単な説明
AWS Network Firewall では、Amazon Virtual Private Cloud (Amazon VPC) 内のリソースとの間のトラフィックをよりきめ細かく制御できます。Amazon VPC のリソースを保護するために、Network Firewall エンドポイントを独自のサブネットにデプロイし、それらを通じてワークロードインスタンスのトラフィックをルーティングできます。これは、次を行うことで実行できます。
- VPC の作成
- ファイアウォールの作成
- トラフィックルーティングの設定
注: Network Firewall は、ファイアウォールエンドポイントがデプロイされているのと同じサブネットのワークロードを検査できません。
解決方法
VPC の作成
- Amazon VPC コンソールを開きます。
- VPC ダッシュボードで、[Create VPC] (VPC を作成) をクリックします。
- [VPC settings] (VPC の設定) で、次を入力します。
[VPC and more] (VPC など) を選択します。
[Name tag auto-generation] (名前タグの自動生成) で、VPC の名前を入力します。この例では、Protected_VPC_10.0.0.0_16-vpc という名前が VPC に付けられています。[Auto-generate] (自動生成) オプションを選択すると、その名前が VPC 内のすべてのリソースに名前タグとして追加されます。
[IPv4 CIDR block] (IPv4 CIDR ブロック) で、10.0.0.0/16 と入力します。
[IPv6 CIDR block] (IPv6 CIDR ブロック) で、[No IPv6 CIDR block] (IPv6 CIDR ブロックなし) を選択します。
[Tenancy] (テナンシー) で、[Default] (デフォルト) を選択します。
[Number of Availability Zones (AZs)] (アベイラビリティーゾーン (AZ) の数) で、[2] を選択します。
[Customize AZs] (AZ をカスタマイズ) で、2 つのアベイラビリティーゾーンを選択します。この例では、us-east-2a と us-east-2b が選択されています。
[Number of public subnets](パブリックサブネットの数) で、[2] を選択します。
[Number of private subnets] (プライベートサブネットの数) で、[4] を選択します。プライベートサブネットのうちの 2 つはファイアウォール用で、2 つはワークロードサブネット用です。
[NAT gateways ($)] (NAT ゲートウェイ ($)) で、[1 per AZ] (AZ ごとに 1) を選択します。NAT ゲートウェイはパブリックサブネットに自動的にデプロイされます。
[VPC endpoints] (VPC エンドポイント) で、[None] (なし) を選択します。 - [Create 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] で、[Firewalls] (ファイアウォール) を選択します。
- [Create firewall] (ファイアウォールを作成) を選択します。
- [Create firewall] (ファイアウォールを作成) で、次のように入力します。
ファイアウォールの名前を入力します。この例では、ファイアウォールの名前は Network-Firewall-Test です。
[VPC] で、Protected_VPC_10.0.0.0_16-vpc を選択します。
[Firewall subnets] (ファイアウォールサブネット) で、最初のアベイラビリティーゾーン (us-east-2a) を選択し、サブネットに Firewall_Subnet_AZa を選択します。その後、[Add new subnet] (新しいサブネットを追加) を選択し、2 つ目のアベイラビリティーゾーン (us-east-2b) についても同じ手順を繰り返し、サブネットに Firewall_Subnet_AZb を選択します。
[Associated firewall policy] (関連付けられたファイアウォールポリシー) で、[Create and associate an empty firewall policy] (空のファイアウォールポリシーを作成して関連付ける) を選択します。
[New firewall policy name] (新しいファイアウォールポリシー名) で、新しいポリシーの名前を入力します。 - [Create firewall] (ファイアウォールを作成) を選択します。各サブネットには固有のルーティングテーブルが必要です。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 | AZa のファイアウォールエンドポイント |
注: この例では、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_AZa の 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 | ローカル |
ルーティングが正しく設定されているかどうかを確認するために、プライベートサブネットの 1 つに EC2 インスタンスをデプロイしてインターネット接続をテストできます。ネットワークファイアウォールポリシーでルールが設定されていない場合、トラフィックは検査されず、インターネットに到達できます。ルーティング、セキュリティグループ、ネットワークアクセスコントロールリスト (ネットワーク ACL) が設定されていることを確認したら、ファイアウォールポリシーにルールを追加します。
注: インターネットからのトラフィックをファイアウォール経由でルーティングし、その後に NAT ゲートウェイを経由するように Network Firewall を設定することもできます。詳細については、「Architecture with an internet gateway and a NAT gateway」(インターネットゲートウェイと NAT ゲートウェイを使用したアーキテクチャ) を参照してください。
関連情報
Logging and monitoring in AWS Network Firewall (AWS Network Firewall でのログ記録とモニタリング)
Deployment models for AWS Network Firewall with VPC routing enhancements (VPC ルーティングが強化された AWS Network Firewall のデプロイモデル)

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