View a markdown version of this page

使用共享网格。 - AWS App Mesh

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

使用共享网格。

重要

终止支持通知:2026 年 9 月 30 日, AWS 将停止对的支持。 AWS App Mesh 2026 年 9 月 30 日之后,您将无法再访问 AWS App Mesh 控制台或 AWS App Mesh 资源。有关更多信息,请访问这篇博客文章从 AWS App Mesh 亚马逊ECS服务连接迁移

您可以使用该 AWS Resource Access Manager 服务在各个 AWS 账户之间共享您的 App Mesh 网格。共享网格允许不同 AWS 账户创建的资源在同一个网格中相互通信。

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

  • 其组织内部或外部的特定 AWS 账户 AWS Organizations

  • 其组织内部的一个组织单位 AWS Organizations

  • 它的整个组织在 AWS Organizations

有关共享网格的端到端演练,请参阅Cross-account 网格演练 GitHub。

授予共享网格的权限

在跨账户共享网格时,共享网格的 IAM 主体需要权限,网格本身需要资源级权限。

授予共享网格的权限

IAM 委托人需要一组最低权限才能共享网格。我们建议使用AWSAppMeshFullAccessAWSResourceAccessManagerFullAccess托管 IAM 策略,确保您的 IAM 委托人拥有共享和使用共享网格所需的权限。

如果您使用自定义 IAM 策略appmesh:PutMeshPolicy,则需要appmesh:GetMeshPolicy、和appmesh:DeleteMeshPolicy操作。这些是仅限权限的 IAM 操作。如果 IAM 委托人未授予这些权限,则在尝试使用该 AWS RAM 服务共享网格时会发生错误。

有关该 AWS Resource Access Manager 服务使用 IAM 的方式的更多信息,请参阅《AWS Resource Access Manager 用户指南》中的 “如何 AWS RAM 使用 IAM”

为网格授予权限

共享网格具有以下权限。

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

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

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

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

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

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

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

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

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

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

共享网格时,该 AWS Resource Access Manager 服务会创建一个名为AWSRAMDefaultPermissionAppMesh的托管策略并将其与提供以下权限的 App Mesh 关联起来。

  • 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:TagResource

  • appmesh:UntagResource

共享网格的先决条件

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

  • 你必须拥有 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 资源 AWS Organizations。使用 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 命令。

标识共享的网格

所有者和消费者可以使用亚马逊 Linux 控制台识别共享网格和网格资源 AWS CLI

使用 Amazon Linx 控制台识别共享网格
  1. 在以下位置打开 App Mesh 控制台https://console.aws.amazon.com/appmesh/

  2. 在左侧导航栏中,选择网格网格所有者列中列出了每个网格的网格所有者的账户 ID。

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

要使用识别共享网格 AWS CLI

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

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

计费和计量

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

实例限额

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