如何使用 NAT 网关设置 AWS Network Firewall?
我想将我的 AWS Network Firewall 配置为使用 NAT 网关检查流量。
简短描述
AWS Network Firewall 可以让您更精细地控制进出您的 Amazon Virtual Private Cloud(Amazon VPC)内部资源的流量。为了保护您的 Amazon VPC 资源,您可以在自己的子网中部署网络防火墙端点,并通过这些子网路由工作负载实例流量。这可以通过以下方式完成:
- 创建 VPC
- 创建防火墙
- 配置流量路由
注意: 无法检查部署了防火墙端点的同一子网中的工作负载。
解决方法
创建 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 块。
对于租赁,选择默认。
对于可用区(AZs)数量,选择 2。
在自定义可用区下,选择两个可用区。在本示例中,选择了 us-east-2a 和 us-east-2b。
对于公有子网的数量,选择 2。
对于私有子网的数量,选择4。其中两个私有子网用于防火墙,两个用于工作负载子网。
对于NAT 网关($),选择每个可用区 1 个。NAT 网关会自动部署在公有子网中。
对于 VPC 端点,选择无。 - 选择创建 VPC。
- 根据不同用途对子网进行命名:
有两个公有子网用于 NAT 网关,在本示例中分别命名为 Public_Subnet_AZa 和 Public_Subnet_AZb。
对于私有子网,有两个用于防火墙端点,在本示例中分别命名为 Firewall_Subnet_AZa 和 Firewall_Subnet_AZb。
另外两个私有子网用于工作负载端点,在本示例中分别命名为 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。然后,选择添加新子网,并对第二个可用区(us-east-2b)重复此操作,然后为子网选择 Firewall_Subnet_AZb。
对于已关联防火墙策略,选择创建和关联空的防火墙策略。
对于新的防火墙策略名称,输入新策略的名称。 - 选择创建防火墙。每个子网都必须有一个唯一的路由表。四个私有子网均有一个与之关联的唯一路由表,而公有子网共享一个路由表。您必须创建一个新的路由表,其中包含指向互联网网关的静态路由,并将其关联到一个公有子网。
配置流量路由
流量的流向如下:
- 从 AZa 中的工作负载实例启动的流量将转发到 AZa 中的防火墙端点。
- AZa 中的防火墙端点将流量路由到 AZa 中的 NAT 网关。
- AZa 中的 NAT 网关将流量转发到与 VPC 关联的互联网网关。
- 互联网网关将流量转发到互联网。
反向的流量通过相同路径反向传输:
- 来自互联网的返回流量到达与 VPC 相连的互联网网关。只有一个互联网网关能连接到 VPC。
- 互联网网关将流量转发到 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(Public_Subnet_AZa)中的 NAT 网关。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 网关的架构。
相关信息
相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前