亚马逊AWS官方博客

使用 NetworkFirewall 打造更安全的云上网络

1. 背景介绍

在业务发展的初期,我们在 AWS 上快速部署了一套网站服务。构建服务最快捷的网络方案是创建一个 VPC,将应用负载均衡器(ALB)部署在公有子网,后端服务器组(EC2)部署在私有子网。将 VPC 通过互联网网关(IGW)与互联打通,私有子网内的计算资源则通过 NAT 网关代理出网流量,如图下图所示。

图 1. 改造前的网络架构图

但是,随着时间推移和业务发展成长,数据安全愈发重要。在保障业务稳定性的同时,还需要实现流量隔离、监管、拦截。为满足安全和合规性的要求,在本文中我们将提供一种解决方案,可以将单 VPC 的业务架构改造为包含“互联网隔离区(DMZ)”在内的多 VPC 组网环境,通过 NetworkFirewall 实现流量管控,使您的网络环境更加安全。

AWS 服务和解决方案概述

此解决方案通过多项 AWS 服务,包括 AWS VPC、AWS transit gateway、AWS NetworkFirewall,完成了以下流量管控目标:

  1. 所有跨 VPC 通信的流量都经过东西向防火墙审查;
  2. 所有互联网入站/出站流量均经过南北向防火墙审查。

本例中我们将南北向防火墙称为互联网隔离区 DMZ(demilitarized zone)。 东西向防火墙称为安全审查区(Inspection)。同时,为了便于应对极端安全防护情况,扩大安全审查的深度和扩展安全审查功能,本例中我们会让所有流量均经过安全审查区的审查,再进入 DMZ。解决方案的架构图如下。

图 2. 改造后的网络架构图

解决方案部署部署

我们将通过如下步骤进行方案部署:

  1. 创建中转网关 transit gateway,以下简称(TGW)。
  2. 创建互联网隔离区 VPC,下文简称 DMZ(demilitarized zone)VPC。 该 VPC 用于和互联网交互,起到南北向防火墙的作用。初始化防火墙规则为黑名单类型,按需阻拦流量,默认放行全部流量。
  3. 创建安全审查区(inspection)VPC,用于东西向流量管控。初始化防火墙规则为白名单类型,按需放行内部流量。
  4. 创建用于部署应用的 VPC,应用网络 1(example1)、应用网络 2(example2),如果您有更多的应用,请按需扩展。在本例中,应用网络不直接与互联网交互。
  5. 创建两张中转网关路由表(tgw-rtb),其中,路由表 1 的作用是将所有应用请求了流量和响应流量导入审查 VPC。路由表 2 的作用将审查后的流量分发到对应目的地。具体路由规则请参考下文中的步骤 1。
  6. 将上述 5 中的两张路由表挂载到 TGW。

※注意:

  1. 为方便管理路由,每个 VPC 中均需创建一组专用作与 TGW 交互的子网,用于创建中转网关挂载(tgw-attachment)。
  2. 本文使用的 VPC 地址段均为 x.0.0/16,使用 10.0.0.0/8 表示 vpc 间内网通信场景。
  3. 本文使用的 VPC 跨 3 个可用区,在创建子网时,每个 AZ 创建一个子网,三个子网为一组。
  4. 本文不涉及安全组(Security Group)的调整,请您按需配置访问控制。

具体部署流程,请参考如下步骤。

步骤 1:创建一个中转网关 transit gateway

图 3. 创建中转网关 TGW

步骤 2:创建互联网隔离区 VPC(dmz)

2.1 创建 VPC、igw(需附加到 VPC)

图 4. 创建 DMZ VPC

图 5. 创建 IGW 并附加到 VPC

2.2 创建 4 个专用子网组(每个 AZ 各一个子网,跨三个 AZ 为一组)

4 个子网组分别用于部署防火墙、公有子网组件(NAT Gateway,应用负载均衡器等)、应用服务、中转网关挂载(tgw-attachment)

图 6. 防火墙所属子网展示

图 7. 公有子网展示

图 8. 应用服务所属子网展示

图 9. 中转网关挂载(tgw-attachment)所属子网展示

2.3 在公有子网创建 NAT 网关

图 10. 创建 NAT 网关

2.4 在对应子网组中创建中转网关挂载

注意:强制要求开启设备模式支持(ApplianceModeSupport),否则流量经过防火墙会被丢弃,导致无法通信。

图 11. 在对应子网组中创建 Transit Gateway 挂载

2.5 在对应子网组中创建并配置南北向防火墙

图 12. 在对应子网组中创建并配置南北向防火墙

稍等几分钟会自动生成防火墙终端节点,终端节点的信息在下文中的子网路由表配置中会用到。

图 13. 防火墙终端节点信息

南北向防火墙默认规则为空,放行全部流量。您可以根据实际需求初始化南北向防火墙,通过黑名单的方式按需阻拦流量。

图 14. 防火墙无状态规则组信息

图 15. 防火墙无状态规则组默认操作

2.6 配置 DMZ 各子网路由表

配置内容包括路由规则、显示子网关联、边缘关联,具体路由规则请参考架构图。

注意:

  1. igw 需要配置边缘关联到一张专用路由表,使流量先经过防火墙审查。即下图中的 dmz-rtb-igw;
  2. 路由表名称、子网、可用区、路由表关联建议一一对应。防火墙子网路由表仅需一张,与 3 个防火墙子网作显示关联。

图 16. DMZ 各子网路由表及关联关系

步骤 3:创建安全审查区 VPC(inspection)

参考步骤 2 中的操作,相似细节不再展示,仅展示成果样例。

3.1 创建 VPC、子网、路由表、中转网关挂载

为中转网关挂载(tgw-attachment)、防火墙各创建一组子网

图 17. 中转网关挂载、防火墙子网组展示

创建中转网关挂载(tgw-attachment)

图 18. 中转网关挂载

3.2 创建并配置东西向防火墙

防火墙需要挂载到对应子网,自动生成的防火墙终端节点,终端节点信息在下文中的子网路由表配置中会用到

图 19. 防火墙详细信息展示

初始化东西向防火墙。防火墙规则默认为空。本例中我们首先添加规则将所有流量拦截。如需放行流量,再根据实际需求添加对应规则。建议使用无状态规则组 + 有状态规则组的组合配置方法,防火墙规则放行/拦截逻辑可参考下图。

图 20. 防火墙规则放行/拦截逻辑

3.3 配置 inspection 各子网路由表

配置内容包括路由规则、显示子网关联,具体路由规则与架构图一致。

注意:路由表名称、子网、可用区、路由表关联需一一对应。

图 21. inspection 各子网路由表

步骤 4:创建应用网络 VPC

4.1 创建两组用于部署应用的 VPC、子网、路由表、中转网关挂载

图 22. 应用所属的两个 VPC

图 23. 不同应用所属子网信息

图 24. 不同应用所使用的中转网关挂载

4.2 配置 example1&2 各子网路由表

配置内容包括路由规则、显示子网关联、设置主路由表,具体路由规则与架构图一致。

注意:路由表名称、子网、可用区、路由表关联建议一一对应。

图 25. 不同应用所使用的子网路由表

步骤 5:创建并配置中转网关路由表

本例中,东西向防火墙管理 VPC 间的交互流量。流量经过中转网关(tgw),传递给东西向防火墙(inspection-firewall),审查合格后再传递到对应流量目的地。因此跨 VPC 流量经过 inspection-firewall 前、后应使用不同的中转网关路由表(tgw-rtb)。

图 26. 流量审查前所使用的路由规则

图 27. 流量审查后所使用的路由规则

步骤 6:配置中转网关关联与路由表

基于步骤 5 中提到两张 tgw-rtb 的作用,请将各 tgw-attachment 关联到对应的 tgw-rtb,请记住以下配置原则:

  1. tgw-rtb-after-inspection 是专用路由表,仅供 tgw-attach-inspection-vpc 使用
  2. tgw-rtb-spoke 是公共路由表,供其他所有 tgw-attach 使用

图 28. 不同 VPC 使用的中转网关挂载

如果您还有本地数据中心,且部署了需要安全审查的应用,那么您可以通过 Direct Connection Gateway 将本地数据中心和亚马逊云打通。您仅需将本地数据中心接入中转网关,等价地视为部署了应用的 VPC 网络(对应 CIDR 的路由指向了 Direct Connection Gateway 设备),即可纳管到中心化防火墙的防护之中,保障您本地数据中心所部署业务的安全运行。

图 29. 将本地数据中心接入云上安全审查

结论

在以上解决方案中,我们通过利用亚马逊网络防火墙等 AWS 安全服务,将原本部署于单一 VPC 的服务架构成功升级为更加安全和可扩展的多 VPC 环境。这种多 VPC 架构不仅提高了隔离性和可靠性,同时还引入了流量审计和安全审查等重要安全控制。AWS Network Firewall 会对所有跨 VPC 流量进行状态检查、威胁检测和数据包检查,从而防止已知和未知的攻击威胁。与此同时,保留的审计日志能够持续监控和检查所有网络活动,及时发现任何可疑行为。

通过这一系列的安全加固措施,我们的整体网络安全态势得到了显著提升。现在我们可以更加自信地运营和扩展自己的云服务,而无需担心潜在的安全风险。

本篇作者

刘涵 Han Liu

Han 是一名运维工程师,从事解决方案设计、稳定性保障、运维管理工作。曾就职于 Baidu,解决语音人工智能方向的大规模在线集群稳定性问题。业余时间喜欢去音乐节、Livehouse。

丁杰

亚马逊云科技资深解决方案架构师。负责基于 AWS 的云计算方案架构的咨询和设计,同时致力于 AWS 云服务在国内的应用和推广。

赵克鸣

亚马逊云科技解决方案架构师,负责云计算解决方案的咨询和设计。热爱AI/ML领域的技术研究,并通过可实施的解决方案,帮助客户取得业务价值。