与 AWS RAM 共享 VPC - Amazon Virtual Private Cloud

与 AWS RAM 共享 VPC

VPC 共享允许多个 AWS 账户将其应用程序资源(例如 Amazon EC2 实例、Amazon Relational Database Service (RDS) 数据库、Amazon Redshift 集群和 AWS Lambda 函数)创建到共享的集中管理式 virtual private clouds (VPC) 中。在此模型中,拥有 VPC 的账户(拥有者)与属于 中同一企业的其他账户(参与者)共享一个或多个子网AWS Organizations 共享子网之后,参与者可以查看、创建、修改和删除与他们共享的子网中的应用程序资源。参与者无法查看、修改或删除属于其他参与者或 VPC 拥有者的资源。

您可以共享您的 VPC,以针对需要高度互连且位于相同的信任边界内的应用程序,利用 VPC 内的隐式路由。这可减少您创建和管理的 VPC 数量,同时使用单独的账户进行计费和访问控制。您可以通过使用连接功能(例如 AWS PrivateLink、中转网关和 VPC 对等连接)互连共享的 Amazon VPC 来进一步简化网络拓扑。有关 VPC 共享优点的更多信息,请参阅 VPC 共享:多账户和 VPC 管理的新方法

共享 VPC 的先决条件

您必须从企业的管理账户启用资源共享。有关启用资源共享的信息,请参阅《AWS RAM 用户指南》中的通过 AWS Organizations 启用共享

共享子网

您可以与企业中的其他账户共享非默认子网。要共享子网,必须首先使用要共享的子网、AWS 账户、企业单位或要与之共享子网的整个企业创建一个资源共享。有关创建资源共享的信息,请参阅《AWS RAM 用户指南》中的创建资源共享

使用控制台共享子网

  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Subnets (子网)

  3. 选择您的子网,然后选择操作共享子网

  4. 选择您的资源共享,然后选择共享子网

使用 AWS CLI 共享子网

使用 create-resource-shareassociate-resource-share 命令。

跨可用区映射子网

为确保资源分配到区域的各可用区,我们将可用区独立映射到每个账户的名称。例如,您的 us-east-1a 账户的可用区 AWS 可能与另一 us-east-1a 账户的 AWS 不在同一位置。

要跨账户协调可用区以便进行 VPC 共享,您必须使用 AZ ID(可用区的唯一、一致的标识符)。例如,use1-az1us-east-1 区域中的可用区之一。利用可用区 ID,您可以确定一个账户中的资源相对于另一个账户中的资源所在的位置。有关更多信息,请参阅《AWS RAM 用户指南》中的资源的可用区 ID

将共享的子网取消共享

拥有者随时可以将与参与者共享的子网取消共享。在拥有者将共享的子网取消共享后,将应用以下规则:

  • 现有参与者资源将继续在已取消共享的子网中运行。

  • 参与者在已取消共享的子网中无法再创建新资源。

  • 参与者可以修改、描述和删除其位于子网中的资源。

  • 如果参与者在已取消共享的子网中仍具有资源,则拥有者无法删除共享子网或共享子网 VPC。仅当参与者删除已取消共享的子网中的所有资源之后,拥有者才能删除子网或共享子网 VPC。

使用控制台取消共享子网

  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Subnets (子网)

  3. 选择您的子网,然后选择操作共享子网

  4. 依次选择操作停止共享

使用 AWS CLI 取消共享子网

使用 disassociate-resource-share 命令。

确定共享子网的拥有者

参与者可以通过使用 Amazon VPC 控制台或命令行工具来查看已与其共享的子网。

使用控制台确定子网拥有者

  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Subnets (子网)拥有者列显示子网拥有者。

使用 AWS CLI 确定子网拥有者

使用 describe-subnetsdescribe-vpcs 命令,这两条命令的输出中将包括拥有者的 ID。

共享子网权限

拥有者权限

VPC 拥有者负责创建、管理和删除所有 VPC 级别的资源(包括子网、路由表、网络 ACL、对等连接、网关终端节点、接口终端节点、Amazon Route 53 Resolver 终端节点、互联网网关、NAT 网关、虚拟私有网关和 Transit Gateway 挂载)。

VPC 拥有者无法修改或删除参与者资源(包括参与者创建的安全组)。VPC 拥有者可以查看所有网络接口和连接到参与者资源的安全组的详细信息,以便于问题排查和审计。VPC 拥有者可以在 VPC、子网或网络接口级别创建流日志订阅,以便监控流量或排查问题。

参与者权限

位于共享 VPC 中的参与者负责创建、管理和删除其资源(包括 Amazon EC2 实例、Amazon RDS 数据库和负载均衡器)。参与者无法查看或修改属于其他参与者账户的资源。参与者可以查看路由表和网络 ACL(连接到与其共享的子网)的详细信息。但是,他们无法修改 VPC 级别的资源(包括路由表、网络 ACL 或子网)。参与者可以使用安全组 ID 引用属于其他参与者或拥有者的安全组。参与者只能为他们拥有的接口创建流日志订阅。参与者不能直接将其私有托管区域之一与共享 VPC 关联。如果参与者需要控制与 VPC 关联的私有托管区域的行为,有两种选择:

  • 参与者可以创建私有托管区域并与 VPC 拥有者共享。有关共享私有托管区域的信息,请参阅《Amazon Route 53 开发人员指南》中的关联 Amazon VPC 与您使用不同 AWS 账户创建的私有托管区域

  • VPC 拥有者可以创建跨账户 IAM 角色,以控制拥有者已与 VPC 关联的私有托管区域。然后,拥有者可以向参与者账户授予担任该角色的必要权限。有关更多信息,请参阅《AWS Identity and Access Management 用户指南》中的 IAM 教程:使用 IAM 角色委托跨 AWS 账户的访问权限。然后,参与账户可以担任角色,并对拥有者通过该角色的权限委派的私有托管区域行使任何控制权。

拥有者和参与者的计费和计量

在共享 VPC 中,每个参与者为其应用程序资源付费,包括 Amazon EC2 实例、Amazon Relational Database Service 数据库、Amazon Redshift 集群和 AWS Lambda 函数。参与者还支付与可用区间数据传输、跨 VPC 对等连接的数据传输和通过 AWS Direct Connect 网关的数据传输关联的数据传输费用。VPC 拥有者支付每小时费用(如果适用),跨 NAT 网关、虚拟私有网关、中转网关、AWS PrivateLink 和 VPC 终端节点的数据处理和数据传输费用。在同一个可用区域(使用 AZ-ID 进行唯一标识)内数据传输是免费的,而不考虑通信资源的账户所有权。

Limitations

以下限制适用于 VPC 共享的使用:

  • 拥有者只能通过 与位于同一企业的其他账户或企业单位共享子网AWS Organizations

  • 拥有者无法共享位于默认 VPC 中的子网。

  • 参与者无法使用共享 VPC 的其他参与者或 VPC 拥有者所拥有的安全组来启动资源。

  • 参与者无法使用 VPC 的默认安全组启动资源,因为此安全组属于拥有者。

  • 拥有者无法使用其他参与者拥有的安全组启动资源。

  • 当参与者在共享的子网中启动资源时,他们应确保将其安全组附加到资源,而不是依赖于默认安全组。参与者无法使用默认安全组,因为它属于 VPC 拥有者。

  • 参与者无法在其未拥有的 VPC 中创建 Route 53 Resolver 终端节点。只有 VPC 拥有者可以创建 VPC 级资源,例如入站终端节点。

  • VPC 标签和共享 VPC 内资源的标签不会与参与者共享。

  • 仅有子网拥有者可以将中转网关挂载到共享子网。参与者不能。

  • 参与者可以在共享 VPC 中创建 Application Load Balancer 和网络负载均衡器,但他们无法注册在未与其共享的子网中运行的目标。

  • 创建网关负载均衡器时,只有子网拥有者才能选择共享子网。参与者不能。

  • 服务配额按各个账户应用。