共享 Amazon AppSync GraphQL APIs - Amazon AppSync GraphQL
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

共享 Amazon AppSync GraphQL APIs

Amazon AppSync 与 Amazon Resource Access Manager (Amazon RAM) 集成以启用资源共享。 Amazon RAM 是一项服务,可让您 Amazon Web Services 账户 与其他人或通过共享 Amazon AppSync G APIs raphQL上的调用操作(查询、突变和订阅操作以及将请求连接到您的实时 WebSocket 端点)。 Amazon Organizations使用 Amazon RAM,您可以通过创建资源共享来共享您拥有的资源。资源共享指定要共享的资源以及与之共享资源的使用者。使用者包括以下各项。

  • 具体在其组织 Amazon Web Services 账户 内部或外部 Amazon Organizations

  • 其组织内部的组织单位 Amazon Organizations

  • 整个组织都在 Amazon Organizations

有关的更多信息 Amazon RAM,请参阅《Amazon Resource Access Manager 用户指南》

共享 Amazon AppSync GraphQL 的先决条件 APIs

共享 Amazon AppSync GraphQL 需要 APIs 满足以下先决条件。

  • 要共享 Amazon AppSync GraphQL API,您必须在自己的账户中拥有该API。 Amazon Web Services 账户这意味着必须在您的账户中分配或配置 Amazon AppSync GraphQL API。

  • 要与您的组织或中的组织单位共享 Amazon AppSync GraphQL API Amazon Organizations,必须启用与共享。 Amazon Organizations有关更多信息,请参阅《Amazon Resource Access Manager 用户指南》中的允许在 Amazon Organizations内共享资源

分享 Amazon AppSync GraphQL APIs

要共享 Amazon AppSync GraphQL API,请先使用创建资源共享。 Amazon Resource Access Manager资源共享指定了要共享的资源、共享资源的使用者,以及主体可以执行的操作。当您与其他人共享自己拥有的 Amazon AppSync GraphQL API 时 Amazon Web Services 账户,您可以允许这些账户在您的账户中调用该 Amazon AppSync API。 Amazon Web Services 账户

如果您是组织中的一员 Amazon Organizations,并且启用了组织内部共享,则会自动授予组织中的消费者访问共享资源的权限。否则,使用者将会收到加入资源共享的邀请,并在接受邀请后为其授予共享资源的访问权限。

共享注意事项

  • 您只能共享 Amazon AppSync GraphQL APIs,不能共享其他 API 类型,例如事件。 APIs

  • 您只能共享在 Amazon AppSync API 上配置了AWS_IAM其中一种授权模式的 GraphQL APIs 。

    AWS_IAM如果从共享 AppSync GraphQL API 的授权模式列表中删除,尽管资源共享可能仍然存在,但它将失效。

  • 您可以共享公共的 GraphQL 和私有的 Amazon AppSync GraphQL APIs。

  • Private Amazon AppSync GraphQL 始终 APIs 可以通过源站中的 VPC 端点进行访问 Amazon Web Services 账户,并且支持所有授权模式,而不仅仅是。 VPCs AWS_IAM

  • 对于共享 Amazon AppSync GraphQL APIs,仅管理 API 资源的权限,不支持对字段和类型以及字段资源的细粒度权限。当您共享 API 时,您就是在共享 API ARN 及其所有类型和字段。 ARNs

使用 Amazon RAM 控制台创建您拥有的资源共享

要共享 Amazon AppSync GraphQL API,请使用RAM权限名称使用Amazon Resource Access Manager 用户指南创建资源共享中所述的过程。AWSRAMPermissionAppSyncGraphQLApiInvokeAccess

使用控制台创建并使用客户托管权限共享私有 Amazon AppSync GraphQL API Amazon RAM

要共享私有 Amazon AppSync GraphQL API,请使用Amazon Resource Access Manager 用户指南中创建和使用客户托管权限中描述的步骤创建客户托管权限

例如,账户 A 的拥有者想要向账户 B 中的委托人授予访问私有 Amazon AppSync GraphQL API PrivateApi (A) 的权限,用于通过 VPCE-B(账户 B 拥有的 VPC 终端节点)进行的调用。在这种情况下,账户 A 的所有者需要按如下方式创建 Amazon RAM 客户托管权限。

{ "Effect": "Allow", "Action": ["appsync:GraphQL"], "Condition": { "StringEqualsIgnoreCase": { "aws:SourceVpce": [ "VPCE-B" ] } } }

假设这个新的客户托管 Amazon RAM 权限被命名为private-api-A-access-via-vpce-b

要启用跨账户访问PrivateApiA通过VPCE-B,客户可以使用以下参数和上一个示例中的客户管理权限创建 Amazon RAM 资源共享。

  • 资源类型:appsync:Apis

  • 资源:arn:aws:appsync:us-west-2:A:apis/PrivateApiA

  • 权限:private-api-A-access-via-vpce-b (客户托管权限)

  • 主体:Account: B

使用创建您拥有的资源共享 Amazon CLI

要使用共享 Amazon AppSync GraphQL API Amazon CLI,请使用带的create-resource-share命令arn:aws:ram::aws:permission/AWSRAMPermissionAppSyncApiInvokeAccess作为开关的--permission-arns值。

有关可用命令的完整列表 Amazon RAM,请参阅 Amazon RAM CLI 参考

停止共享 Amazon AppSync GraphQL APIs

要停止共享您拥有 APIs 的 Amazon AppSync GraphQL,必须删除资源共享或更新与之共享资源的委托人。有关您要执行的操作,请参阅以下各节中的文档。

使用 Amazon RAM 控制台停止共享您拥有的资源

请参阅《Amazon Resource Access Manager 用户指南》中的更新资源共享

要停止共享您拥有的资源,请使用 Amazon CLI

使用 disassociate-resource-share 命令。

使用 Amazon RAM 控制台删除您拥有的资源共享

请参阅《Amazon Resource Access Manager 用户指南》中的删除资源共享

要删除您拥有的资源共享,请使用 Amazon CLI

使用 delete-resource-share 命令。

有关可用命令的完整列表 Amazon RAM,请参阅 Amazon RAM CLI 参考

跨账户事件

您可以选择记录 Amazon CloudTrail 数据事件,以监控和审计跨账户 GraphQL API Amazon AppSync 活动。 DataPlane 有关更多信息,请参阅《Amazon CloudTrail 用户指南》中的记录数据事件