

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

# 多账户架构的网络连接
<a name="network-connectivity"></a>

## 正在连接 VPCs
<a name="connecting-vpcs"></a>

许多公司在亚马逊虚拟私有云（亚马逊 VPC）中使用 VPC 对等连接来连接开发和生产 VPCs。使用 VPC 对等连接，您可以使用私有 IP 寻址在两 VPCs 者之间路由流量。连接的 VPCs 可以是不同 AWS 账户 的，也可以是不同的 AWS 区域。有关更多信息，请参阅[什么是 VPC 对等连接](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html)（Amazon VPC 文档）。随着公司的发展和数量的 VPCs 增加，在所有公司之间保持对等连接 VPCs 可能会成为维护负担。您可能还会受到每个 VPC 的最大 VPC 对等连接数量的限制。有关更多信息，请参阅 [VPC 对等连接限额](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-peering)（Amazon VPC 文档）。

如果您有多个开发、测试和暂存环境，这些环境跨多个托管非生产数据 AWS 账户，则可能需要在所有这些环境之间提供网络连接， VPCs 但不允许对生产环境进行任何访问。您可以使用[AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)跨多个账户连接 VPCs 多个账户。您可以将路由表分开，以 VPCs 防止开发人员 VPCs 通过充当集中式路由器的传输网关与生产部门通信。有关更多信息，请参阅[集中式路由器](https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-centralized-router.html)（Transit Gateway 文档）。

Transit Gateway 还支持与其他中转网关进行对等连接，包括位于不同 AWS 账户 或 AWS 区域中的中转网关。由于 Transit Gateway 是一项完全托管式、高度可用的服务，因此您只需为每个区域预置一个中转网关。

有关更多信息和详细的网络架构，请参阅[构建可扩展且安全的多 vPC AWS 网络基础架构](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/welcome.html)（AWS 白皮书）。

## 连接应用程序
<a name="connecting-applications"></a>

如果您需要在同一环境（例如生产） AWS 账户 中不同应用程序之间建立通信，则可以使用以下选项之一：
+ 如果您想开放对多个 IP 地址和端口的广泛访问，[VPC 对等](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html)或 [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html) 可以在网络级别提供连接。
+ [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html) 在 VPC 的私有子网中创建端点，并将这些端点注册为 [Amazon Route 53 Resolver](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html) 中的 DNS 条目。通过使用 DNS，应用程序可以解析端点，并连接到注册的服务，而无需在 VPC 中使用 NAT 网关或互联网网关。
+ [Amazon VPC Lattice](https://docs.aws.amazon.com/vpc-lattice/latest/ug/what-is-vpc-service-network.html) 跨多个账户关联服务（例如应用程序） VPCs 并将其收集到服务网络中。与服务网络 VPCs 关联的客户端可以向与服务网络关联的所有其他服务发送请求，无论他们是否在同一个账户中。VPC Lattice 与 AWS Resource Access Manager (AWS RAM) 集成，因此您可以与其他账户或通过 AWS Organizations其他账户共享资源。只能将一个 VPC 与一个服务网络相关联。此解决方案不需要使用 VPC 对等或 AWS Transit Gateway 跨账户通信。

## 网络连接最佳实践
<a name="connectivity-best-practices"></a>
+ 创建 AWS 账户 用于集中式联网的。将此账户命名为 n **etwork-prod**，并将其用于 AWS Transit Gateway Amazon [VPC IP 地址管理器](https://docs.aws.amazon.com/vpc/latest/ipam/what-it-is-ipam.html) (IPAM)。将此账户添加到 **Infrastructure\$1Prod** 组织单位。
+ 使用 [AWS Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html)（AWS RAM）与组织其他成员共享中转网关、VPC Lattice 服务网络和 IPAM 池。这样，您组织 AWS 账户 中的任何人都可以与这些服务进行交互。
+ 通过使用 IPAM 池集中 IPv4 管理和 IPv6 处理分配，您可以允许最终用户使用自行 VPCs 配置。[AWS Service Catalog](https://aws.amazon.com/servicecatalog/)这可以帮助您适当调整大小 IP 地址空间 VPCs 并防止重叠。
+ 对绑定到互联网的流量使用集中式出口方法，对从互联网进入您环境的流量使用分散式入口方法。有关更多信息，请参阅[集中式出口](centralized-egress.md)和[分散式入口](decentralized-ingress.md)。

# 集中式出口
<a name="centralized-egress"></a>

*集中式出站*的原则是，所有发往互联网的网络流量都使用单一的通用入口点。您可以在此入口点设置检查，并且可以仅允许流量进入指定域或仅允许通过指定端口或协议的流量。集中出口还可以帮助您降低成本，因为无需在每个网关中部署 NAT 网关即可 VPCs 访问互联网。从安全角度来看，这是有益的，因为它限制了暴露给外部可访问的恶意资源（例如：恶意软件命令和控制（C&C）基础设施）。有关集中出站的更多信息和架构选项，请参阅[集中式互联网出口](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/centralized-egress-to-internet.html)（AWS 白皮书）。

您可以使用 [AWS Network Firewall](https://docs.aws.amazon.com/network-firewall/latest/developerguide/what-is-aws-network-firewall.html)，它是一种有状态的托管式网络防火墙和入侵检测和防护服务，作为出口流量的中心检查点。您可以在专用 VPC 中为出口流量设置此防火墙。Network Firewall 支持有状态规则，您可以使用这些规则来限制对特定域的互联网访问。有关更多信息，请参阅[域筛选](https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-examples.html#suricata-example-domain-filtering)（Network Firewall 文档）。

您也可以使用 [Amazon Route 53 Resolver DNS 防火墙](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-dns-firewall.html)限制特定域的出口流量，主要是为了防止未经授权的数据外泄。在 DNS 防火墙规则中，您可以应用[域列表](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-dns-firewall-domain-lists.html)（Route 53 文档），允许或拒绝对指定域的访问。您可以使用 AWS 托管域列表，其中包含与恶意活动或其他潜在威胁相关的域名，也可以创建自定义域列表。您可以创建 DNS 防火墙规则组，然后将其应用于您的 VPCs。出站 DNS 请求在 VPC 中通过 Resolver 进行域名解析，DNS 防火墙根据应用于 VPC 的规则组对请求进行筛选。发送到 Resolver 的递归 DNS 请求不会流经中转网关和 Network Firewall 路径。Route 53 Resolver 和 DNS 防火墙应被视为 VPC 之外的独立出口路径。

下图显示了集中式出口的示例架构。在网络通信开始之前，DNS 请求会发送到 Route 53 Resolver，DNS 防火墙允许或拒绝解析用于通信的 IP 地址。发往互联网的流量将路由到集中式网络账户中的中转网关。中转网关将流量转发到 Network Firewall 进行检查。如果防火墙策略允许出口流量，则流量会通过 NAT 网关、互联网网关路由到互联网。您可以使用 AWS Firewall Manager 在多账户基础架构中集中管理 DNS 防火墙规则组和 Network Firewall 策略。

![\[来自其他账户的流量通过网络账户路由到互联网。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/transitioning-to-multiple-aws-accounts/images/3_egress.png)


## 保护出口流量的最佳实践
<a name="best-practices-egress"></a>
+ 从[仅日志记录模式](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-dns-firewall-rule-actions.html)（Route 53 文档）开始。确认合法流量不受影响后，请更改为屏蔽模式。
+ 使用[网络访问控制列表的AWS Firewall Manager 策略或使用，阻止进入](https://docs.aws.amazon.com/waf/latest/developerguide/getting-started-fms-network-acl.html)互联网的 DNS 流量 AWS Network Firewall。所有 DNS 查询都应通过 Route 53 解析器进行路由，在那里你可以使用 Amazon GuardDuty （如果启用）对其进行监控，并使用 R [oute 53 解析器 DNS 防火墙](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-dns-firewall.html)（如果启用）对其进行过滤。有关更多信息，请参阅[解析与您的网络 VPCs 之间的 DNS 查询](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-overview-DSN-queries-to-vpc.html)（Route 53 文档）。
+ 在 DNS 防火墙和 Network Firewall 中使用 [AWS 托管的域列表](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-dns-firewall-managed-domain-lists.html)（Route 53 文档）。
+ 考虑屏蔽高风险、未使用的顶级域名，例如：.info、.top、.xyz 或某些国家/地区代码域名。
+ 考虑屏蔽高风险、未使用的端口，例如：端口 1389、4444、3333、445、135、139 或 53。
+ 首先，您可以使用包含 AWS 托管规则的拒绝列表。然后，你可以随着时间的推移努力实现允许名单模型。例如，与其在允许列表中仅包含严格的完全限定域名的列表，不如先使用一些通配符，例如 *\$1* .example.com。您甚至可以只允许您期望的顶级域名，而屏蔽所有其他域名。然后，随着时间的推移，也要缩小范围。
+ 使用 [Route 53 配置](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/profiles.html)文件（Route 53 文档）在许多 VPCs 不同 AWS 账户版本中应用与 DNS 相关的 Route 53 配置。
+ 定义处理这些最佳做法异常的流程。

# 分散式入口
<a name="decentralized-ingress"></a>

*分散式入口*是一种在个人账户级别定义来自互联网的流量如何到达该账户中的工作负载的原则。在多账户架构中，分散式入口的好处之一是，每个账户都可以使用最合适的入口服务或资源来处理其工作负载，例如应用程序负载均衡器、Amazon API Gateway 或网络负载均衡器。

尽管分散式入口意味着您必须单独管理每个账户，但您可以通过 [AWS Firewall Manager](https://docs.aws.amazon.com/waf/latest/developerguide/fms-chapter.html) 集中管理和维护您的配置。Firewall Manager 支持诸如 [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) 和 [Amazon VPC 安全组](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)等保护。您可以关联 AWS WAF 到 Application Load Balancer、Amazon CloudFront、API Gateway 或 AWS AppSync。如果您使用的是出口 VPC 和中转网关（如 [集中式出口](centralized-egress.md) 中所述），则每个分支 VPC 包含公有和私有子网。但是，无需部署 NAT 网关，因为流量会通过网络账户中的出口 VPC 路由。

下图显示了一个个人的示例 AWS 账户 ，该个人拥有一个 VPC，其中包含可访问互联网的工作负载。来自互联网的流量通过互联网网关访问 VPC，然后到达公有子网中托管的负载均衡和安全服务。（*公有子网*包含一条指向互联网网关的默认路由）。将负载均衡器部署到公共子网中，并附加 AWS WAF 访问控制列表 (ACLs)，以帮助防范恶意流量，例如跨站脚本。将托管应用程序的工作负载部署到*私有子网*，它们无法直接访问互联网，互联网也无法访问它们。



![\[来自互联网的流量，通过互联网网关和负载均衡器访问 VPC。 AWS WAF\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/transitioning-to-multiple-aws-accounts/images/4_ingress.png)


如果您的组织中有很多人，则可能需要 AWS 服务 通过 VPCs 在专用和共享的环境中创建接口 VPC 终端节点或私有托管区域来共享公共区域 AWS 账户。有关更多信息，请参阅[AWS 服务 使用接口 VPC 终端节点访问](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)和（AWS PrivateLink 文档）和[使用私有托管区域](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-private.html)（Route 53 文档）。

下图显示了一个托管 AWS 账户 可在组织内共享的资源的示例。VPC 端点可通过在专用 VPC 中创建，以实现跨账户共享。在创建 VPC 端点时，您可以选择使用 AWS 管理端点的 DNS 条目。要共享端点，请清除此选项，然后在单独的 Route 53 私有托管区（PHZ）中创建 DNS 条目。然后，您可以将 PHZ 与组织 VPCs 中的所有地址关联，以便对 VPC 终端节点进行集中化 DNS 解析。您还需要确保传输网关路由表中包含共享 VPC 到另一个 VPC 的路由 VPCs。有关更多信息，请参阅[集中访问接口 VPC 终端节点](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/centralized-access-to-vpc-private-endpoints.html#interface-vpc-endpoints)（AWS 白皮书）。



![\[托管服务端点和资源以便与其他成员账户共享的共享账户。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/transitioning-to-multiple-aws-accounts/images/5_shared.png)


共享 AWS 账户 也是托管 AWS Service Catalog 投资组合的好地方。*产品组合*是您要在其上部署的 IT 服务的集合 AWS，该产品组合包含这些服务的配置信息。您可以在共享账户中创建产品组合，将其共享给组织，然后每个成员账户将产品组合导入自己的区域 Service Catalog 实例。有关更多信息，请参阅[与 AWS Organizations共享](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/catalogs_portfolios_sharing_how-to-share.html#portfolio-sharing-organizations)（Service Catalog 文档）。

同样，借助 Amazon VPC Lattice，您可以使用共享账户将您的环境和服务模板作为实体进行集中管理，然后与组织成员账户建立账户连接。有关更多信息，请参阅[共享您的 VPC 莱迪思实体](https://docs.aws.amazon.com/vpc-lattice/latest/ug/sharing.html)（VPC 莱迪思文档）。