如何使用 NAT 网关设置 AWS Network Firewall?

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 控制面板上,单击 Create VPC(创建 VPC)。
  3. VPC Settings(VPC 设置)中,输入以下内容:
    选择 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 块),输入 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(自定义可用区)下,选择两个可用区。在此示例中,选择了 us-east-2aus-east-2b
    对于 Number of public subnets(公有子网的数量)选择 2
    对于 **Number of private subnets(私有子网的数量),**选择 4。其中两个私有子网用于防火墙,两个用于工作负载子网。
    对于 NAT gateways ($) [NAT 网关($)],选择 1 per AZ(每个可用区 1 个)。NAT 网关自动部署在公有子网中。
    对于 VPC endpoints(VPC 端点),选择 None(无)。
  4. 选择 Create VPC(创建 VPC)。
  5. 根据用途命名子网:
    有两个公有子网用于 NAT 网关,在本示例中分别命名为 Public_Subnet_AZaPublic_Subnet_AZb
    对于私有子网,有两个用于防火墙端点,在本示例中分别命名为 Firewall_Subnet_AZaFirewall_Subnet_AZb
    另外两个私有子网用于工作负载端点,在本示例中分别命名为 Private_Subnet_AZaPrivate_Subnet****_AZb

创建防火墙

  1. 在导航窗格的 Network Firewall 下,选择 Firewalls(防火墙)。
  2. 选择 Create firewall(创建防火墙)。
  3. 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(添加新子网)并对第二个可用区(us-east-2b)重复此操作,然后为子网选择 Firewall_Subnet_AZb
    对于 Associated firewall policy(已关联防火墙策略),选择 Create and associate an empty firewall policy(创建和关联空的防火墙策略)。
    New firewall policy name(新的防火墙策略名称)中,输入新策略的名称。
  4. 选择 Create firewall(创建防火墙)。每个子网都必须有一个唯一的路由表。四个私有子网均有一个与之关联的唯一路由表,而公有子网共享一个路由表。您必须创建一个新的路由表,其中包含指向互联网网关的静态路由,并将其关联到一个公有子网。

配置流量路由

流量的流向如下:

  • 从 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/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/20AZa 中的防火墙端点

**注意:**在此示例中,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_AZa 中的 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 实例来测试您的互联网连接。如果在网络防火墙策略中没有配置任何规则,则无法对流量进行检查,并且流量可以到达互联网。确认已配置路由、安全组和网络访问控制列表后,请向防火墙策略添加规则。

**注意:**您也可以将 Network Firewall 设置为利用防火墙路由来自互联网的流量,然后使其通过 NAT 网关。有关详细信息,请参阅使用互联网网关和 NAT 网关的架构


相关信息

在 AWS Network Firewall 中进行日志记录和监控

路由表概念

具有 VPC 路由增强功能的 AWS Network Firewall 部署模型

AWS 官方
AWS 官方已更新 1 个月前