

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 架构
<a name="architecture"></a>

## 传统外围区域架构
<a name="traditional-perimeter-zone-architecture"></a>

在许多组织中，面向互联网的应用程序被 “隔离” 在与本地环境隔开的外围区域中。如下图所示，应用程序流量通过防火墙路由到外围区域，外围区域中的应用程序通过另一个防火墙与其他应用程序和网络隔开。

![传统外围区域架构](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/migration-perimeter-zone-apps-network-firewall/images/traditional_perimeter_zone_architecture.png)


## 基于网络防火墙的外围区域架构
<a name="perimeter-zone-applications-network-firewall"></a>

下图显示了 AWS Cloud中外围区域应用程序的网络架构示例：



![周界区域应用程序的架构 AWS Cloud](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/migration-perimeter-zone-apps-network-firewall/images/perimeter_zone_architecture_network_firewall.png)


在上面的网络架构示例中，应用程序通过以下机制受到保护：
+ Amazon CloudFront 的 Web 应用程序防火墙是针对应用程序终端节点攻击的第一层防护。
+ 在公有子网中， AWS Network Firewall 检查路由到应用程序端点的所有流量（通过 Application Load Balancer）。为了确保所有流量都经过网络防火墙的端点，您必须更新路由表，如图所示。

我们建议您将来自应用程序的所有出口流量路由到网络防火墙。 AWS Transit Gateway 这有助于在将该流量路由到受保护网络之前审查账户中的所有流量。

## 流量数据流
<a name="traffic-data-flow"></a>

下图显示了通过基于 Network Firewall 的外围区域架构的数据流：



![基于网络防火墙的外围区域架构的流量数据流](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/migration-perimeter-zone-apps-network-firewall/images/traffic_data_flow.png)


该图显示了以下工作流：

1. 用户通过 Amazon 通过互联网访问您的应用程序 CloudFront。您可以使用默认 DNS CloudFront 或 [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) 支持的 DNS。

1. Internet 网关路由逻辑通过路由表配置，通过防火墙的网络接口将所有发给 Application Load Balancer 的传入请求转发到 Network Firewall。本指南[基于网络防火墙的外围区域架构](#perimeter-zone-applications-network-firewall)部分中的**路由表 IGW** 图说明了这一点。

1. 根据网络防火墙中的规则，接收的流量要么被阻止，要么被转发。也可以创建发送警报的规则。Network Firewall 对传入或传出的流量完全透明，并且不执行网络地址转换。

1. 通过防火墙的传入流量原封不动地到达应用程序负载均衡器。当应用程序负载均衡器再次响应时，它会将请求（基于路由表逻辑）转发到网络防火墙。本指南[基于网络防火墙的外围区域架构](#perimeter-zone-applications-network-firewall)部分中的**路由表端点 A** 和**路由表端点 B** 图说明了这一点。

## 网络组件
<a name="network-components"></a>

我们建议您在为 AWS Cloud设计的外围区域架构中包含以下组件：
+ [Amazon CloudFront 和 AWS WAF****](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html) — CloudFront 与 AWS WAF 之合作提供分布式拒绝服务保护、Web 应用程序防火墙、IP 允许列表（如果需要）和内容分发。DDo CloudFront 必须仅使用 SSL 证书才能接受 HTTPS 连接（传输中的加密）。
+ [互联网网关](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html) - 使用互联网网关将 VPC 连接到互联网。根据路由表（参见本指南[基于网络防火墙的外围区域架构图中的**路由表 IGW**），所有发往终端子网](#perimeter-zone-applications-network-firewall)（即负载均衡器）的传入流量首先通过其弹性网络接口路由到 Network Firewall。本指南中[基于 Network Firewall 的外围区域架构](#perimeter-zone-applications-network-firewall)部分的图表中 **eni-id-sec1** 和 **eni-id-sec2** 对此进行了说明。
+ [网络防火墙](https://docs.aws.amazon.com/network-firewall/latest/developerguide/what-is-aws-network-firewall.html) - 网络防火墙是一种自动扩展的防火墙，为入口和出口流量提供防火墙和监控功能。您可以通过网关负载均衡器端点类型将网络防火墙连接到 VPC。将端点放置在面向公众的网络中，允许进出互联网网关的流量路由到网络防火墙。本指南[基于网络防火墙的外围区域架构](#perimeter-zone-applications-network-firewall)部分中的**路由表安全**图说明了这一点。
+ [端点子网和应用程序负载均衡器](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) - 使用面向互联网的应用程序负载均衡器使您的应用程序可通过互联网访问。您必须有一个受保护的子网，该子网只能通过 Network Firewall 暴露给互联网。此路由由路由表配置定义。路由表只允许一条源**为 0.0.0.0/0** 的路由，因此每个子网和防火墙网络接口组合必须有两个路由表。本指南[基于网络防火墙的外围区域架构](#perimeter-zone-applications-network-firewall)部分中的**路由表端点 A** 和**路由表端点 B** 图说明了这一点。要在传输中加密，必须使用 SSL 启用负载均衡器。
+ [传输网关](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)-传输网关提供对其他网络的访问，例如本地网络或其他网络 VPCs。在本指南中介绍的网络架构中，传输网关通过终端节点子网中的网络接口公开。此实现可确保传输网关接收来自 Web 应用程序（即私有子网）的流量。
+ [应用程序子网](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) - 这是一个私有子网，应用程序在 Amazon Elastic Compute Cloud（Amazon EC2）实例上运行。
+ [NAT 网关](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)-本指南中的架构示例不包括 NAT 网关。如果您的网络架构需要 NAT 网关，我们建议您在每个子网中添加一个 NAT 网关。在这种情况下，我们还建议您的应用程序的路由表将目标 **0.0.0.0/0** 映射到 NAT 网关的网络接口。

## 迁移外围区域应用程序
<a name="migrating-perimeter-zone-applications"></a>

发现过程对迁移的成功至关重要。当您使用发现工具（例如）时 AWS Application Discovery Service，我们建议您确保这些工具可以同时安装在外围网络和内部网络上。我们还建议您验证是否可以正确捕获数据流。最佳做法是使用手动发现过程来补充工具完成的自动发现。例如，作为手动发现过程的一部分，您可以与应用程序团队面谈，以更深入地了解应用程序的技术要求和注意事项。手动过程还可以帮助您识别可能影响 AWS Cloud中应用程序设计的边缘情况。

我们建议您在发现过程中确定以下内容：

1. 不可信网络中的客户端与外围网络之间的网络依赖关系

1. 安全网络中外围网络和应用程序组件之间的依赖关系

1. 直接通过 VPN 与安全网络建立的任何第三方连接

1. 任何现有的 Web 应用程序防火墙

1. 任何现有的入侵检测系统和入侵防御系统及其各自的检测规则（如果可能）