如何使用 NAT 网关设置 AWS Network Firewall?
我想将我的 AWS Network Firewall 配置为使用 NAT 网关检查流量。
简短描述
AWS Network Firewall 可以让您精细地控制进出您的 Amazon Virtual Private Cloud (Amazon VPC) 内部资源的流量。为了保护您的 Amazon VPC 资源,请在专用子网中部署网络防火墙端点,并通过这些子网路由工作负载实例流量。完成以下步骤:
- 创建 VPC
- 创建防火墙
- 配置流量路由
解决方法
创建 VPC
- 打开 Amazon VPC 控制台。
- 在 VPC 控制面板上,选择 Create VPC(创建 VPC)。
- 在 VPC settings(VPC 设置)下,配置以下选项:
对于 Resources to create(要创建的资源),请选择 VPC and more(VPC 等)。
对于 Name tag auto-generation(名称标签自动生成),输入 VPC 的名称。在本示例中,VPC 被命名为 Protected_VPC_10.0.0.0_16-vpc。如果选择 Auto-generate(自动生成)选项,则该名称将作为名称标签自动添加到 VPC 中的所有资源。
对于 IPv4 CIDR block(IPv4 CIDR 数据块),输入 [IP_ADDRESS]。
对于 IPv6 CIDR block(IPv6 CIDR 数据块),选择 No IPv6 CIDR block(无 IPv6 CIDR 数据块)。
对于 Tenancy(租赁),选择 Default(默认)。
对于 Number of Availability Zones (AZs)(可用区 (AZ) 数量),选择 2。
在 Customize AZs(自定义可用区)下,选择两个可用区。在本示例中,选择了 us-east-2a 和 us-east-2b。
对于 Number of public subnets(公有子网的数量),选择 2。
对于 Number of private subnets(私有子网的数量),选择 4。其中两个私有子网用于防火墙端点,两个用于工作负载子网。
对于 NAT gateways ($)(NAT 网关 ($)),选择 1 per AZ(每个可用区 1 个)。NAT 网关会自动部署在公有子网中。
对于 VPC endpoints(VPC 端点),选择 None(无)。 - 选择 Create VPC(创建 VPC)。
- 根据不同用途对子网进行命名。
注意: 网络防火墙无法检查部署了防火墙端点的同一子网中的工作负载。
在本示例中:
- 有两个公有子网用于 NAT 网关,分别命名为 Public_Subnet_AZa 和 Public_Subnet_AZb。
- 有两个私有子网用于防火墙端点,分别命名为 Firewall_Subnet_AZa 和 Firewall_Subnet_AZb。
- 另外两个私有子网用于工作负载实例,分别命名为 Private_Subnet_AZa 和 Private_Subnet_AZb。
创建防火墙
- 在导航窗格的 Network Firewall(网络防火墙)下,选择 Firewalls(防火墙)。
- 选择 Create firewall(创建防火墙)。
- 在 Create firewall(创建防火墙)下,配置以下选项:
对于 Name(名称),输入防火墙的名称。在本示例中,防火墙命名为 Network-Firewall-Test。
对于 VPC,选择 Protected_VPC_10.0.0.0_16-vpc。
对于 Firewall subnets(防火墙子网),选择第一个可用区 (us-east-2a),为子网选择 Firewall_Subnet_AZa ,然后为 IP 地址类型选择 IPv4。然后选择 Add new subnet(添加新子网),对第二个可用区 (us-east-2b) 重复此操作,为子网选择 Firewall_Subnet_AZb,为 IP 地址类型选择 IPv4。选择 Next(下一步)。 - 在 Configure advanced settings - optional(配置高级设置 - 可选),保留默认设置。选择 Next(下一步)。
- 对于 Associated firewall policy(已关联防火墙策略),选择 Associated firewall policy(创建和关联空的防火墙策略)。对于 New firewall policy name(新的防火墙策略名称),输入新策略的名称。选择 Next(下一步)。
- 添加标签(可选)。
- 选择 Next(下一步),查看配置,然后选择 Create firewall(创建防火墙)。
注意: 每个子网都必须有一个唯一的路由表。这四个私有子网各有一个与之关联的唯一路由表,而公共子网则共享一个路由表。创建一个新的路由表,其中包含指向互联网网关的静态路由,并将其关联到一个公有子网。
配置流量路由
出站流量按以下顺序流动:
- 来自 AZa 中工作负载实例的流量转发到 AZa 中的防火墙端点。
- AZa 中的防火墙端点将流量路由到 AZa 中的 NAT 网关。
- AZa 中的 NAT 网关将流量转发到与 VPC 相连的互联网网关。
- 互联网网关将流量转发到互联网。
返回流量反向遵循相同的路径:
- 来自互联网的返回流量到达与 VPC 相连的互联网网关。一个 VPC 只能连接一个互联网网关。
- 互联网网关将流量转发到 AZa 中的 NAT 网关。互联网网关根据工作负载可用区做出此决定。由于流量的目的地在 AZa 中,互联网网关选择 AZa 中的 NAT 网关。互联网网关不需要单独的路由表。
- AZa 中的 NAT 网关子网将流量转发到 AZa 中的防火墙端点,以保持对称路由。
- AZa 中的防火墙端点将流量转发到 AZa 中的工作负载。
注意: 流量保持在同一个可用区内,因此防火墙端点的出口和入口流量都经过该端点。这能让每个可用区中的防火墙端点对数据包执行有状态检查。
创建 VPC 和防火墙后,请配置路由表。请记住以下几点:
- Private_Subnet_AZa 会将所有发往互联网的流量转发到 AZa 中的防火墙端点 (Firewall_Subnet_AZa)。对 AZb 中的 Private_Subnet_AZb 和防火墙端点重复此操作。
- Firewall_Subnet_AZa 会将所有发往互联网的流量转发到 AZa 中的 NAT 网关 (Public_Subnet_AZa)。对 AZb 中的 Firewall_Subnet_AZb 和 NAT 网关重复此操作。
- Public_Subnet_AZa 会将所有发往互联网的流量转发到与 VPC 相连的互联网网关。
- 返回流量反向遵循相同的路径。
以下是路由表配置示例:
Public_Subnet_RouteTable_AZa(子网关联: Public_Subnet_AZa)
| 目的地 | 目标 |
|---|---|
| 0.0.0.0/0 | 互联网网关 |
| [IP_ADDRESS] | 本地 |
| 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 | 互联网网关 |
| [IP_ADDRESS] | 本地 |
| 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 网关 |
| [IP_ADDRESS] | 本地 |
Firewall_Subnet_RouteTable_AZb(子网关联: Firewall_Subnet_AZb)
| 目的地 | 目标 |
|---|---|
| 0.0.0.0/0 | Public_Subnet_AZb 中的 NAT 网关 |
| [IP_ADDRESS] | 本地 |
Private_Subnet_RouteTable_AZa(子网关联: Private_Subnet_AZa)
| 目的地 | 目标 |
|---|---|
| 0.0.0.0/0 | AZa 中的防火墙端点 |
| [IP_ADDRESS] | 本地 |
Private_Subnet_RouteTable_AZb(子网关联: Private_Subnet_AZb)
| 目的地 | 目标 |
|---|---|
| 0.0.0.0/0 | AZb 中的防火墙端点 |
| [IP_ADDRESS] | 本地 |
要验证您的路由配置是否正确,请在您的一个私有子网中部署 Amazon Elastic Compute Cloud (Amazon EC2) 实例以测试互联网连接。如果没有在防火墙策略中配置任何规则,则不会对流量进行检查,并且流量可以到达互联网。确认您已配置路由、安全组和网络访问控制列表(网络 ACL)后,请向防火墙策略添加规则。
注意: 您也可以将 Network Firewall 设置为利用防火墙路由来自互联网的流量,然后使其通过 NAT 网关。有关详细信息,请参阅 Architecture with an internet gateway and a NAT gateway using AWS Network Firewall(使用 AWS Network Firewall 并配有互联网网关和 NAT 网关的架构)。
相关信息
Deployment models for AWS Network Firewall(AWS Network Firewall 的部署模型)
VPC route table configuration for AWS Network Firewall(AWS Network Firewall 的 VPC 路由表配置)
Avoiding asymmetric routing with AWS Network Firewall(利用 AWS Network Firewall 避免非对称路由)
- 语言
- 中文 (简体)

This article was reviewed and updated on 2026-02-27.
相关内容
已提问 3 年前
AWS 官方已更新 1 年前