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

3 分钟阅读
0

我想将我的 AWS Network Firewall 配置为使用 NAT 网关检查流量。

简短描述

AWS Network Firewall 可以让您更精细地控制进出您的 Amazon Virtual Private Cloud(Amazon VPC)内部资源的流量。为了保护您的 Amazon VPC 资源,您可以在自己的子网中部署网络防火墙端点,并通过这些子网路由工作负载实例流量。这可以通过以下方式完成:

  • 创建 VPC
  • 创建防火墙
  • 配置流量路由

注意: 无法检查部署了防火墙端点的同一子网中的工作负载。

解决方法

创建 VPC

  1. 访问 Amazon VPC 控制台
  2. 在 VPC 控制面板上,单击创建 VPC
  3. 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-2aus-east-2b
    对于公有子网的数量,选择 2
    对于私有子网的数量,选择4。其中两个私有子网用于防火墙,两个用于工作负载子网。
    对于NAT 网关($),选择每个可用区 1 个。NAT 网关会自动部署在公有子网中。
    对于 VPC 端点,选择
  4. 选择创建 VPC
  5. 根据不同用途对子网进行命名:
    有两个公有子网用于 NAT 网关,在本示例中分别命名为 Public_Subnet_AZaPublic_Subnet_AZb
    对于私有子网,有两个用于防火墙端点,在本示例中分别命名为 Firewall_Subnet_AZaFirewall_Subnet_AZb
    另外两个私有子网用于工作负载端点,在本示例中分别命名为 Private_Subnet_AZaPrivate_Subnet_AZb

创建防火墙

  1. 在导航窗格的 Network Firewall 下,选择防火墙
  2. 选择创建防火墙
  3. 创建防火墙下,输入以下内容:
    输入防火墙的名称。在本示例中,防火墙命名为 Network-Firewall-Test
    对于 VPC,选择 Protected_VPC_10.0.0.0_16-vpc
    对于防火墙子网,选择第一个可用区(us-east-2a),然后为子网选择 Firewall_Subnet_AZa。然后,选择添加新子网,并对第二个可用区(us-east-2b)重复此操作,然后为子网选择 Firewall_Subnet_AZb
    对于已关联防火墙策略,选择创建和关联空的防火墙策略
    对于新的防火墙策略名称,输入新策略的名称。
  4. 选择创建防火墙。每个子网都必须有一个唯一的路由表。四个私有子网均有一个与之关联的唯一路由表,而公有子网共享一个路由表。您必须创建一个新的路由表,其中包含指向互联网网关的静态路由,并将其关联到一个公有子网。

配置流量路由

流量的流向如下:

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

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

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

相关信息

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

路由表概念

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

AWS 官方
AWS 官方已更新 1 年前