自动化将虚拟私有云接入 AWS Cloud WAN 网络 网络与内容交付

自动化将虚拟私有云接入 AWS Cloud WAN 网络

作者:Srivalsan Mannoor Sudhagar 和 Joo Rodrigues,发表时间:2024年7月23日

在这篇博客中,我们将介绍一种增强的管理AWS Cloud WAN段的方法,该方法具有安全性、可扩展性和按需访问的特性。随着您组织中使用的 AWS 账户和 AWS 区域数量的增加,允许新的用户创建虚拟私有云Amazon VPC接入网络的操作和安全复杂性也会随之增加从将其正确关联到合适的段,到持续确保遵循全球 IP 地址规划。此解决方案强制执行正确的网络段成员资格,包括 IP 地址规划的遵循,并允许中央基础设施团队在需要时通过标签覆盖解决方案的行为。我们将讨论完全自动化 VPC 接入和附加管理过程的主要架构考虑因素和要求,并提供一个用AWS CloudFormation编写的可部署示例。

注意: 本文不是关于 AWS Cloud WAN 的入门指南,也没有详细说明解决方案的工作原理。要获取相关信息,请参见 AWS Cloud WAN 文档、这场 reInvent 演讲 或 Introducing AWS Cloud WAN。

重点摘要

介绍了一种安全、可扩展且按需的 AWS Cloud WAN 段管理方法。该解决方案有助于降低新增用户创建的 VPC 以接入核心网络的操作和安全复杂性。关注如何确保用户构建的 VPC 能够安全接入核心网络,并允许一些灵活性,以防止配置滥用。

挑战描述

构建和运营一个全球安全且可扩展的网络一直是一个挑战。从企业网络的早期阶段开始,这就一直是一个相对复杂的工作,而在云时代依旧如此。AWS Cloud WAN 是一项完全托管的服务,可以在 AWS 中创建一个全球核心网络,通过使用描述流量隔离和分段、路由和网络附加关联的策略来抽象网络配置复杂性。大多数组织将用户 VPC 的配置过程保持为集中式,尽管其他组织试图将其转移到边缘,以自服务目录产品的形式进行自我配置,这就需要复杂、不够灵活,有时还有模糊的自动化。在可管理的操作和自动化、架构简单性以及遵循最小权限原则的考虑下,存在两个普遍挑战:

如何为不同的应用程序和流量类型实现网络隔离?例如,生产、测试、PCIDSS等我们如何允许用户自行服务于其 VPC 的接入核心网络,并做到用户友好、可预测、安全并完全自动化,而无需中央基础设施团队的介入?

第一个挑战的解决方案很简单:您可以使用适当配置和路由的 AWS Cloud WAN 段来实现。对于第二个挑战,您可以与不同的辐射账户共享 AWS Cloud WAN 网络,该解决方案将防止用户账户在标签的形式下表达其应归属的网络段例如,防止测试账户关联到生产段。相反,该解决方案确保附加的标签只能由网络账户从网络控制平面事件中以完全自动化的方式执行。此外,在未实施 Amazon VPC IP 地址管理器 (IPAM) 的情况下,用户可以指定几乎任何地址范围以创建 VPC,此解决方案阻止了不正确地址的 VPC,从而减轻了引入路由黑洞和全局网络地址重复的风险。

理想情况下,管理员应从集中式 VPC 配置和接入核心网络中解放出来节省工程时间并提高配置速度,但同样需要确保配置符合正确的合规级别,即确保使用正确的段和 IP 地址。提供自服务目录方式来配置辐射 VPC 是一个诱人的想法,但也带来了自己的考虑:

基于服务目录的用户自动化通常由预定义模板构成,这可能无法满足用户的需求,并强迫用户灵活性降低。有些有关 VPC 类型的配置细节仍需提供给用户例如,开发、测试和生产环境。缺乏确保正确使用 IP 地址的机制,尤其是在未使用 IPAM 时。

以下解决方案提供了一个安全、灵活且完全自动化的过程,解决了以下问题:

如何转向按需模型,从而减轻基础设施团队的操作负担。如何确保用户构建和管理的 VPC 可以安全接入核心网络,同时在保持某种自由度的情况下解决困难的固定服务目录产品捕捉。如何确保 VPC 被接入到正确的网络段,并防止配置滥用如标签操控。如何在成功接入后,对接入的 VPC 进行持续评估。

解决方案概述

所提出的解决方案由一个基于事件的架构组成,在核心网络的控制平面上运行,通过处理 AWS 网络管理器 事件。该解决方案提供了一种可扩展、安全和灵活的方法,以按需将 VPC 接入核心网络,具有以下特性、功能和用例:

自动化将虚拟私有云接入 AWS Cloud WAN 网络 网络与内容交付该解决方案在 AWS 网络账户的边界内运行,处理控制平面事件,并不将任何组件暴露给用户账户。该解决方案的组件不会被暴露到 AWS 网络账户之外。从 AWS 用户账户的角度来看,附加 VPC 到核心网络的体验应与之前共享的 AWS Cloud WAN 核心网络进行附加相似。不允许任何 AWS 账户用户使用附加标签表达网络关联意图。VPC 附加报名应是自动化的,对于任何满足评估要求的 VPC即附加需与适当的段匹配,并且 IP 地址一致进行顺利附加。如果 VPC 附加未满足评估要求,即使已成功接入核心网络,也应将其驱逐例如,当新增的无类域间路由CIDR与其他 VPC 的地址范围重叠时。在控制情况下覆盖解决方案行为例如,中央基础设施团队实施的更改。进一步扩展原始解决方案的逻辑和功能。

该解决方案的源代码可以在 GitHub 仓库 找到。

前提条件

要使用此解决方案,必须满足以下前提条件:

修改 AWS Cloud WAN 核心网络策略段和关联方法。创建一个 服务控制策略 (SCP),防止用户账户使用段关联标签。在 AWS 管理账户中创建一个 AWS 身份和访问管理 (IAM) 角色,允许从中央网络账户查询 AWS 账户标签。用户账户在账户生成过程中被 标记为适当的路由段或域标签。

逐项看前提条件

首先,您需要有一个运行中的 AWS Cloud WAN 核心网络,并配置几项前提条件,包括 事件监控。政策要求一个或多个段。在典型环境中,您可能拥有:

您的业务特定段,例如生产、准备、测试、广域网、基础设施等。一个最后跳回段,包含所有目标路由每个附加传播,汇聚您东西方检查的 VPC我们称之为全返回段。

此外,您还需要额外的段:

隔离段:将任何未标记段关联到此,防止任何形式的通信。隔离路由段:将用于学习从隔离 VPC 段传播的任何路由。

下面的代码片段显示了这些段在 AWS Cloud WAN 网络策略文件中的声明:

json{ version 202112 segments [ { isolateattachments true name quarantine requireattachmentacceptance false } { isolateattachments true name quarantineroutes requireattachmentacceptance false } { isolateattachments false name fullreturn requireattachmentacceptance false } ] segmentactions [ { action share mode attachmentroute segment quarantine sharewith [ quarantineroutes ] } { action share mode attachmentroute segment fullreturn sharewith { except [ quarantine quarantineroutes ] } } ]}

AWS Cloud WAN 网络策略中的下一个前提条件指定了关联方法。这将仅包含两个附加策略,用于管理附加到正确段的附加项:

最受欢迎的策略,其中路由域标签的值将用于选择附加的段。最不受欢迎的策略,在缺少路由域标签的情况下,附加将与隔离段关联。

下面的代码片段显示了 AWS Cloud WAN 网络策略文件中关联方法的声明:

json{ attachmentpolicies [ { action { associationmethod tag tagvalueofkey routedomain } conditions [ { type any } ] rulenumber 10 } { action { associationmethod constant segment quarantine } conditions [ { type any } ] rulenumber 20 } ]}

下一个前提条件是确保 AWS 用户账户中的角色无法在与 AWS Cloud WAN 核心网络附加时使用路由域标签。用户应该被阻止指定段成员资格元数据。示例 SCP 可以用于强制执行该前提条件,应适用于 AWS 管理和每个未经中央基础设施团队管理的组织单位 (OU)。

json{ Version 20121017 Statement [ { Sid DenyAttachmentTags1 Effect Deny Action [ networkmanagerTagResource networkmanagerCreateVpcAttachment ] Resource arnawsnetworkmanager Condition { ForAllValuesStringEquals { awsTagKeys [ routedomain ] } } } ]}

飞兔视频加速器

注意: 根据您使用的基础设施即代码 (IaC) 工具,用户可能需要将网络附加的标签配置设置为忽略例如,使用 Terraform 时,需要使用生命周期声明以防止标签覆盖尝试和由于 SCP 引发的 API 错误。

下一个前提条件是必须在 AWS 管理账户内部署一个 IAM 角色,从而可以被您的网络账户假设。此角色仅允许您在 AWS Organizations API 中查询 AWS 账户标签,以便解决方案发现 VPC 创建时的目标段。

以下是信任策略的示例:

json{ Version 20121017 Statement [ { Sid Effect Allow Principal { AWS arnawsiamNETWORKACCOUNTIDroot } Action [ stsAssumeRole stsTagSession ] } ]}

以下是 IAM 角色的权限:

json{ Version 20121017 Statement [ { Action [ organizationsDescribe organizationsList ] Effect Allow Resource Sid DescribeOrgAccounts } ]}

最后,必须确保您的用户账户在账户生成过程中被标记为适当的路由域标签。例如,生产账户应具有 routedomain production 标签,以匹配现有的生产段。

AWS Cloud WAN 附加管理器

现在我们可以深入探讨解决方案。图 1 显示了 AWS Cloud WAN 附加管理器解决方案的端到端高层次视图。

图 1:AWS Cloud WAN 附加管理器的高层视图

主要组件包括:

在图 1 的左侧,您可以看到一个租户或用户 AWS 账户,其辐射 VPC 正在附加到之前共享的核心网络,并在非中央管理的 OU 中应用 SCP,防止在 AWS Cloud WAN 核心网络附加上使用 routedomain 标签键。在图 1 的右侧,您可以看到中央 AWS 网络账户的表示,该账户具有一个共享的 AWS Cloud WAN 核心网络、处理 AWS 网络管理器事件的多个功能,以及一个 AWS Lambda 函数,该函数将执行辐射 VPC 附加的接入。同样在图 1 的右侧,您可以看到一个部署在 AWS 管理账户中的 IAM 角色,它允许 Lambda 函数读取 AWS 账户标签,以确定账户类型例如,测试、生产等。

有了此设置,让我们看看用户将辐射 VPC 附加到核心网络时会发生什么:

用户创建一个辐射 VPC,并将其附加到共享的核心网络由网络管理器根据解决方案监控。由于缺少路由域标签,附加会被接入到隔离段。一旦附加创建,就会将其 CIDR 传播到隔离路由段,触发新的路由拓扑变更事件。该事件调用 Lambda 函数,后者向 Amazon Simple Notification Service (Amazon SNS) 主题发布消息,带有允许订阅过滤的消息属性。任意数量的 Amazon Simple Queue Service (Amazon SQS) 队列将注册到 SNS 主题,并进行适当的过滤,以接收相关事件,并作为路由控制 Lambda 函数的缓冲。Lambda 函数从队列读取,获取 Attachment ID 和账户号码,并查询以验证账户的路由域标签。可选地,Lambda 函数验证接收到的 VPC 传播地址是否适合预期的段如 VPC 段图所定义,并只有在标签附加正确的情况下才会标记该附加。如果新的路由事件与意外的 CIDR 前缀相关如 VPC 段图所定义,或者账户未被标记,Lambda 函数将删除附加。如果全返回或隔离路由段中已存在重叠地址,Lambda 函数将删除该附加。如果 Lambda 函数能够到达这一点,路由控制 Lambda 函数将标记附加为正确的目标段。

注意: AWS Cloud WAN 段分配可以通过从网络标签附加覆盖,实现绕过组织的标签查找的方式。

此外,我们还可以强制特定区域和段的 IP 地址规划一致性。以下代码片段显示了 VPC 段网络映射的 YAML 示例定义即文件 vpcsegmentaddressmapyml,描述按段和区域定义的可接受 IP 地址范围列表。此配置将与执行段接入控制的 Lambda 函数一起打包。要完全禁用检查,您可以将文件保持为空使用 YAML 的空字典语法 {}。

yamlinfrastructure eucentral1 适用于该段和区域的 IP 地址汇总 apsoutheast1 适用于该段和区域的 IP 地址汇总

dev eucentral1 适用于该段和区域的 IP 地址汇总 apsoutheast1 适用于该段和区域的 IP 地址汇总

staging eucentral1 适用于该段和区域的 IP 地址汇总 apsoutheast1 适用于该段和区域的 IP 地址汇总

prod eucentral1 适用于该段和区域的 IP 地址汇总 apsoutheast1 适用于该段和区域的 IP 地址汇总