从多个私密访问中央AWS服务端点 VPCs - AWS Prescriptive Guidance

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

从多个私密访问中央AWS服务端点 VPCs

由马丁·根斯纳 (AWS) 和塞缪尔·戈登 () 创作 AWS

代码存储库:VPC端点共享

环境:生产

技术:网络;基础架构

AWS服务:AWSRAM;亚马逊 Route 53;亚马逊SNS;T AWS ransit Gateway;亚马逊 VPC

Summary

您的环境的安全与合规要求可能会规定,Amazon Web Services (AWS) 服务或终端节点的流量不得通过公共互联网。这种模式是一种专为拓扑设计的解决方案,在这种hub-and-spoke拓扑中,中央集线VPC器连接到多个分布式分VPCs。在此解决方案中,您可以使用AWS PrivateLink 在中心账户中为AWS服务创建接口VPC终端节点。然后,您可以使用传输网关和分布式域名系统 (DNS) 规则将请求解析到连接的终端节点的私有 IP 地址VPCs。

此模式描述了如何使用 T AWS ransit Gateway、入站亚马逊 Route 53 Resolver 终端节点和共享的 Route 53 转发规则来解析来自所连接资源的DNS查询。VPCs您可在中心账户中创建端点、中转网关、解析程序和转发规则。然后,您可以使用 Res AWS ource Access Manager (AWSRAM) 与分支共享传输网关和转发规则VPCs。提供的AWS CloudFormation 模板可帮助您在中心和分支中部署VPC和配置资源VPCs。

先决条件和限制

先决条件

  • 在 Organizations 的同一个AWS组织中管理的中心账户和一个或多个分支账户。有关更多信息,请参阅创建并管理组织

  • AWSResource Access Manager (AWSRAM) 在 Organizations 中AWS被配置为可信服务。有关更多信息,请参阅将 Organizati AWSons 与其他AWS服务配合使用

  • DNS必须在中心和分支中启用分辨率VPCs。有关更多信息,请参阅您的DNS属性 VPC(亚马逊 Virtual Private Cloud 文档)。

限制

  • 这种模式连接同一AWS区域中的中心账户和分支账户。对于多区域部署,您必须对每个区域重复该模式。

  • AWS服务必须 PrivateLink 作为接口VPC终端节点与集成。有关完整列表,请参阅与集成的AWS服务 AWS PrivateLink(PrivateLink 文档)。

  • 无法保证可用区域的亲和性。例如,来自可用区 A 的查询可能会使用可用区 B 的 IP 地址进行响应。

  • 与VPC终端节点关联的 elastic network interface 限制为每秒 10,000 次查询。

架构

目标技术堆栈

  • 中心AWS账户VPC中的中心

  • 一个或多个在口头AWS账户VPCs中讲话

  • 中心账户中的一个或多个接口VPC终端节点

  • 中心账户中的入站与出站 Route 53 解析程序

  • 部署在中心账户中并与分支账户共享的 Route 53 解析程序转发规则

  • 部署在中心账户中并与分支账户共享的中转网关

  • AWS连接中心和辐条的 Transit Gateway VPCs

目标架构

下图显示了此解决方案的示例架构。在此架构中,中心账户中的 Route 53 解析程序转发规则与其他架构组件具有以下关系:

  1. 使用与分支VPC共享转发规则AWSRAM。

  2. 转发规则与集VPC线器中的出站解析器相关联。

  3. 转发规则以集线器中的入站解析器VPC为目标。

架构图显示了分支账户和中心账户中的资源。

下图显示了通过示例架构的流量流:

  1. 分支中的资源(例如亚马逊弹性计算云 (AmazonEC2) 实例)向VPC发出DNS请求<service>.<region>.amazonaws.com。该请求已由 Spoked Amazon DNS Resolver 接收。

  2. Route 53 转发规则(从中心账户共享并与分支VPC账户关联)会拦截请求。

  3. 在集线器中VPC,出站解析器使用转发规则将请求转发给入站解析器。

  4. 入站解析器使用中心 VPC Amazon DNS Resolver 将的 IP 地址解析<service>.<region>.amazonaws.com为终端节点的私有 IP 地址。VPC如果不存在VPC端点,它将解析为公有 IP 地址。

流量从分支中的资源流VPC向中心中的服务端点VPC。

工具

AWS工具和服务

  • AWS CloudFormation帮助您设置AWS资源,快速一致地配置资源,并在各个AWS账户和地区的整个生命周期中对其进行管理。

  • 亚马逊弹性计算云 (AmazonEC2) 在AWS云中提供可扩展的计算容量。您可以根据需要启动任意数量的虚拟服务器,并快速扩展或缩减它们。

  • AWSIdentity and Access Management (IAM) 通过控制谁经过身份验证并有权使用AWS资源,从而帮助您安全地管理对资源的访问权限。

  • AWSResource Access Manager (AWSRAM) 可帮助您安全地跨AWS账户共享资源,从而减少运营开销并提供可见性和可审计性。

  • Amazon Route 53 是一项高度可用且可扩展的域名系统 (DNS) 网络服务。

  • AWSSystems Manager 可帮助您管理在AWS云中运行的应用程序和基础架构。它简化了应用程序和资源管理,缩短了检测和解决操作问题的时间,并帮助您大规模安全地管理AWS资源。

  • AWSTransit Gatew ay 是一个连接本地网络VPCs的中央枢纽。

  • Amazon Virtual Private Cloud(亚马逊VPC)可帮助您将AWS资源启动到您定义的虚拟网络中。此虚拟网络类似于您在自己的数据中心中运行的传统网络,其优点是使用的可扩展基础架构。AWS

其他工具和服务

  • nslookup 是一个用于查询记录的命令行工具。DNS在这种模式中,您可使用此工具来测试解决方案。

代码存储库

此模式的代码可在 GitHubvpc-endpoint-sharing存储库中找到。此模式提供了两个AWS CloudFormation 模板:

  • 用于在中心账户中部署以下资源模板:

    • rSecurityGroupEndpoints— 控制VPC端点访问权限的安全组。

    • rSecurityGroupResolvers — 控制对 Route 53 Resolver 的访问权限的安全组。

    • rKMSEndpointrSSMMessagesEndpointrSSMEndpoint、和 rEC2MessagesEndpoint — 中心账户中的接口VPC端点示例。您的使用案例自定义此端点。

    • rInboundResolver— 一个 Route 53 解析器,用于解决针对中心 Ama DNS zon Resolver 的DNS查询。

    • rOutboundResolver — 将查询转发给入站解析程序的出站 Route 53 解析程序。

    • rAWSApiResolverRule— 与所有分支VPCs共享的 Route 53 解析器转发规则。

    • rRamShareAWSResolverRule— 允许AWSRAM分支使用VPCsrAWSApiResolverRule转发规则的共享。

    • * rVPC — 集线器VPC,用于对共享服务进行建模。

    • * rSubnet1 — 用于存放中心资源私有子网。

    • * rRouteTable1 — 集线器的路由表VPC。

    • * rRouteTableAssociation1 — 对于集线器中的rRouteTable1路由表VPC,指私有子网的关联。

    • * rRouteSpoke — 从中心VPC到分支的路由VPC。

    • * rTgw — 与所有分支共享的传输网关VPCs。

    • * rTgwAttach — 允许集线器将流量路由VPC到中rTgw转网关的附件。

    • * rTgwShare — 允许AWSRAM分支账户使用rTgw传输网关的共享。

  • 用于在分支账户中部署以下资源的模板:

    • rAWSApiResolverRuleAssociation— 允许分支VPC使用中心账户中的共享转发规则的关联。

    • * rVPC — 发言人VPC。

    • * rSubnet1, rSubnet2, rSubnet3 — 每个可用区的子网,用于存放分支私有资源。

    • * rTgwAttach — 允许分支服务器将流量路由VPC到rTgw传输网关的附件。

    • * rRouteTable1 — 分支的路由表VPC。

    • * rRouteEndpoints — 从分支中的资源VPC到传输网关的路由。

    • * rRouteTableAssociation1/2/3 — 对于分支中的rRouteTable1路由表VPC,指私有子网的关联。

    • * rInstanceRole — 用于测试解决方案的IAM角色。

    • * rInstancePolicy — 用于测试解决方案的IAM策略。

    • * rInstanceSg — 用于测试解决方案的安全组。

    • * rInstanceProfile — 用于测试解决方案的IAM实例配置文件。

    • * rInstance — 预先配置为通过 S AWS ystems Manager 访问的EC2实例。使用此实例测试解决方案。

* 这些资源支持示例架构,在现有登录区中实现此模式时可能不需要这些资源。

操作说明

任务描述所需技能

克隆代码存储库。

  1. 在命令行界面中,将工作目录更改为要存储示例文件的位置。

  2. 输入以下 命令:

    git clone https://github.com/aws-samples/vpc-endpoint-sharing.git
网络管理员、云架构师

修改模板。

  1. 在克隆的存储库中,打开 hub.ymlspoke.yml 文件。

  2. 查看由这些模板创建的资源,并按您的环境需要调整模板。有关完整列表,请参阅工具代码库部分。如果您的账户已经拥有其中一些资源,请将其从 CloudFormation 模板中删除。有关更多信息,请参阅使用模板(CloudFormation 文档)。

  3. 保存并关闭 hub.ymlspoke.yml 文件。

网络管理员、云架构师
任务描述所需技能

部署中心资源。

使用 hub.yml 模板创建堆栈。 CloudFormation 当出现提示时,为模板中的参数提供值。有关更多信息,请参阅创建堆栈(CloudFormation 文档)。

云架构师、网络管理员

部署分支资源。

使用 spoke.yml 模板创建一个堆栈。 CloudFormation 当出现提示时,为模板中的参数提供值。有关更多信息,请参阅创建堆栈(CloudFormation 文档)。

云架构师、网络管理员
任务描述所需技能

测试对该AWS服务的私密DNS查询。

  1. 使用会话管理器连接到rInstanceEC2实例,这是 S AWS ystems Manager 的一项功能。有关更多信息,请参阅使用会话管理器连接您的 Linux 实例(Amazon EC2 文档)。

  2. 对于中心账户中包含VPC终端节点的AWS服务,使用nslookup来确认是否返回了入站 Route 53 Resolver 的私有 IP 地址。

    下面是使用 nslookup 访问 Amazon Systems Manager 端点的示例。

    nslookup ssm.<region>.amazonaws.com
  3. 在AWS命令行界面 (AWSCLI) 中,输入可帮助您确认更改不会影响服务功能的命令。有关命令列表,请参阅AWSCLI命令参考

    例如以下命令应该返回 Amazon Systems Manager 文档列表。

    aws ssm list-documents
网络管理员

测试对AWS服务的公共DNS查询。

  1. 对于中心账户中没有VPC终端节点的AWS服务,nslookup请使用确认已返回公有 IP 地址。以下是使用nslookup访问亚马逊简单通知服务 (AmazonSNS) 终端节点的示例。

    nslookup sns.<region>.amazonaws.com
  2. 在中 AWSCLI,输入可帮助您确认更改未影响服务功能的命令。有关命令列表,请参阅AWSCLI命令参考

    例如,如果中心账户中存在任何 Amazon SNS 主题,则以下命令应返回主题列表。

    aws sns list-topics
网络管理员

相关资源