使用共享网格。 - AWS App Mesh

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

使用共享网格。

共享网格允许不同账户创建的资源在同一个网格中相互通信。

AWS Identity and Access Management 账户可以是网格资源所有者、网格使用者,或者两者兼而有之。消费者可以在与其账户共享的网格中创建资源。所有者可以在账户拥有的任何网格中创建资源。网格所有者可以与以下类型的网格使用者共享网格:

  • AWS Organizations 中的拥有者企业内部或外部的特定 AWS 账户

  • AWS Organizations 中的所有者组织内部的组织单位

  • AWS Organizations 中的整个所有者组织

有关共享网格的端到端演练,请参阅 GitHub 上的跨账户网格演练

共享的网格权限

共享网格具有以下权限:

  • 消费者可以列出和描述与账户共享的网格中的所有资源。

  • 所有者可以列出和描述账户拥有的任何网格中的所有资源。

  • 所有者和使用者可以修改账户创建的网格中的资源,但他们不能修改其他账户创建的资源。

  • 消费者可以删除该账户创建的网格中的任何资源。

  • 所有者可以删除网格中任何账户创建的任何资源。

  • 所有者的资源只能引用同一个账户中的其他资源。例如,虚拟节点只能引用 AWS Cloud Map 或与虚拟节点所有者属于同一账户的 AWS Certificate Manager 证书。

  • 所有者和使用者可以将 Envoy 代理作为账户拥有的虚拟节点连接到 App Mesh。

  • 所有者可以创建虚拟网关和虚拟网关路由。

  • 所有者和消费者可以列出标签,也可以在账户创建的网格中标记/取消标记资源。他们无法在网格中列出不是由账户创建的标签和标记/取消标记资源。

共享网格已从支持账户级全部允许授权迁移到基于策略的授权。在此推出之前共享的所有网格都使用前一种策略,而在此推出之后共享的任何网格都使用后一种策略。

使用基于策略的授权,网格将与一组固定的权限共享。选择将这些权限添加到资源策略中,也可以根据 IAM 用户/角色选择可选的 IAM 策略。这些策略中允许的权限的交集,减去任何被拒绝的显式权限,决定了主体对网格的访问权限。

资源策略中添加的权限集是固定的,由 AWS Resource Access Manager (AWS RAM) 确定:

  • appmesh:CreateVirtualNode

  • appmesh:CreateVirtualRouter

  • appmesh:CreateRoute

  • appmesh:CreateVirtualService

  • appmesh:UpdateVirtualNode

  • appmesh:UpdateVirtualRouter

  • appmesh:UpdateRoute

  • appmesh:UpdateVirtualService

  • appmesh:ListVirtualNodes

  • appmesh:ListVirtualRouters

  • appmesh:ListRoutes

  • appmesh:ListVirtualServices

  • appmesh:DescribeMesh

  • appmesh:DescribeVirtualNode

  • appmesh:DescribeVirtualRouter

  • appmesh:DescribeRoute

  • appmesh:DescribeVirtualService

  • appmesh:DeleteVirtualNode

  • appmesh:DeleteVirtualRouter

  • appmesh:DeleteRoute

  • appmesh:DeleteVirtualService

注意

此集不包括某些权限,例如 appmesh:TagResources。如果需要 appmesh:TagResources 访问权限,我们可以将您的账户映射到账户级别的“全部允许”授权策略,直到我们启动对 appmesh:TagResources 的支持。

共享网格的先决条件

要共享网格,您必须满足以下先决条件。

  • 您必须在自己的 AWS 账户中拥有网格。无法共享已与您共享的网格。

  • 要与您的组织或 AWS Organizations 内的组织单位共享 AWS Organizations,您必须允许与 共享。有关更多信息,请参阅AWS RAM《用户指南》中的允许与 AWS Organizations 共享。

  • 您的服务必须部署在跨账户共享连接的 Amazon VPC 中,其中包括您要相互通信的网格资源。共享网络连接的一种方法是将您要在网格中使用的所有服务部署到共享子网。有关更多信息和限制,请参阅共享子网

  • 服务必须可通过 DNS 或者 AWS Cloud Map 被发现。有关服务发现的更多信息,请参阅虚拟节点

网格共享与 AWS Resource Access Manager (AWS RAM)集成。AWS RAM 是一项服务,允许您与任何 AWS 账户或通过 AWS Organizations 共享 AWS 资源。利用 AWS RAM,您可通过创建 资源共享来共享您拥有的资源。资源共享指定要共享的资源以及与之共享资源的使用者。使用者可以是单个 AWS 账户或 AWS Organizations 中的组织部门或整个组织。

有关 AWS RAM 的更多信息,请参阅 AWS RAM 用户指南

共享网格

共享网格可以让不同账户创建的网格资源在同一个网格中相互通信。您只能共享自己拥有的网格。要共享网格,您必须将它添加到资源共享。资源共享是一项 AWS RAM 资源,可让您跨 AWS 账户共享资源。资源共享指定要共享的资源以及与您共享这些资源的使用者。在使用 Amazon Linux 控制台共享网格时,必须将它添加到现有资源共享。要将网格添加到新的资源共享,使用AWS RAM 控制台创建资源共享。

如果您是 AWS Organizations 中某组织的一部分并且已在您的组织中启用共享,组织中的使用者可以自动获得对共享的访问权限。否则,使用者会收到加入资源共享的邀请,并在接受邀请后获得对共享网格的访问权限。

您可以使用 AWS RAM 控制台或 AWS CLI 共享您拥有的网格。

使用 AWS RAM 控制台共享您拥有的网格

有关说明,请参阅AWS RAM 《用户指南》中的创建资源共享。选择资源类型时,选择网格,然后选择要共享的网格。如果未列出任何网格,请先创建网格。有关更多信息,请参阅 创建服务网格

使用 AWS CLI 共享您拥有的网格

使用 create-resource-share 命令。对于 --resource-arns 选项,请指定要共享网格的 ARN。

将已共享的网格取消共享

取消共享网格时,App Mesh 会禁止网格的前使用者进一步访问网格。但是,App Mesh 不会删除使用者创建的资源。取消共享网格后,只有网格所有者才能访问和删除资源。App Mesh 可防止在网格中拥有资源的帐户在取消共享网格后接收配置信息。App Mesh 还可以防止任何其他在网格中拥有资源的账户从非共享网格中接收配置信息。只有网格拥有者可取消其共享网格。

要取消共享您拥有的已共享网格,必须从资源共享中将其删除。您可以使用 AWS RAM 控制台或 AWS CLI 以执行该操作。

使用 AWS RAM 控制台取消共享您拥有的已共享的网格

请参阅AWS RAM《用户指南》中的更新资源共享

使用 AWS CLI 取消共享您拥有的已共享网格

使用 disassociate-resource-share 命令。

标识共享的网格

所有者和使用者可以使用 Amazon Linux 控制台和 AWS CLI 标识共享的网格和网格资源

使用 Amazon Linx 控制台识别共享网格
  1. 打开 App Mesh 控制台,网址为 https://console.aws.amazon.com/appmesh/

  2. 在左侧导航窗格中,选择 Meshes (网格)网格所有者列中列出了每个网格的网格所有者的帐户 ID。

  3. 从左侧导航栏中,选择虚拟服务虚拟路由器虚拟节点。您可以看到网格所有者的账户 ID 和每个资源的资源所有者

使用 AWS CLI 标识共享的网格

使用 aws appmesh list resource 命令,例如 aws appmesh list-meshes。该命令返回您拥有的网格以及与您共享的网格。该meshOwner属性显示meshOwner的AWS账户 ID,resourceOwner属性显示资源所有者的AWS账户 ID。对任何网格资源运行的任何命令都会返回这些属性。

您附加到共享网格的用户定义标签仅适用于您的 AWS 账户。它们不适用于与之共享网格的其他账户。另一个账户中的网格 aws appmesh list-tags-for-resource 命令被拒绝访问。

计费和计量

共享网格不会产生额外费用。

实例配额

网格的所有配额也适用于共享网格,无论谁在网格中创建了资源。只有网格所有者才能申请增加配额。有关更多信息,请参阅 App Mesh 服务限额。该 AWS Resource Access Manager 服务也有配额。有关更多信息,请参阅服务限额