本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Sharing AWS AppSync GraphQL APIs
AWS AppSync 與 AWS Resource Access Manager (AWS RAM) 整合以啟用資源共用。 AWS RAM 是一項服務,可讓您與其他 AWS 帳戶 或透過 共用 AWS AppSync GraphQL APIs 上的調用動作 (查詢、變動和訂閱操作,並將請求連接到您的即時 WebSocket 端點) AWS Organizations。您可以透過建立資源共享 AWS RAM,與 共用您擁有的資源。資源共享指定要共用的資源,以及共用它們的消費者。消費者可以包含下列項目。
-
中組織 AWS 帳戶 內部或外部的特定 AWS Organizations
-
中組織內部的組織單位 AWS Organizations
-
中的整個組織 AWS Organizations
如需 的詳細資訊 AWS RAM,請參閱AWS Resource Access Manager 《 使用者指南》。
主題
shared AWS AppSync GraphQL APIs 的先決條件
Sharing AWS AppSync GraphQL APIs 具有下列先決條件。
-
若要共用 AWS AppSync GraphQL API,您必須在 中擁有它 AWS 帳戶。這表示必須在您的帳戶中配置或佈建 AWS AppSync GraphQL API。
-
若要與組織或 中的組織單位共用 AWS AppSync GraphQL API AWS Organizations,您必須啟用與 共用 AWS Organizations。如需詳細資訊,請參閱《AWS Resource Access Manager 使用者指南》中的透過 AWS Organizations啟用共用。
Share AWS AppSync GraphQL APIs
若要共用 AWS AppSync GraphQL API,請先使用 建立資源共用 AWS Resource Access Manager。資源共用會指定要共用的資源、與其共用的消費者,以及主體可執行的動作。當您與其他人共用您擁有的 AWS AppSync GraphQL API 時 AWS 帳戶,您可以讓這些帳戶在您的 中呼叫該 AWS AppSync API AWS 帳戶。
如果您是 組織的一部分 AWS Organizations,且已啟用組織內的共用,則組織中的消費者會自動獲得共用資源的存取權。否則,消費者會收到加入資源共享的邀請,並在接受邀請後獲得共用資源的存取權。
共用考量
-
您只能共用 AWS AppSync GraphQL APIs,不能共用其他 API 類型,例如事件 APIs。
-
您只能共用具有
AWS_IAM
做為 APIs 上設定之授權模式之一的 AWS AppSync GraphQL API。如果 從共用 AppSync GraphQL API 的授權模式清單中
AWS_IAM
移除 ,而資源共用可能仍然存在,則會呈現無效狀態。 -
您可以共用公有和私有 AWS AppSync GraphQL APIs。
-
Private AWS AppSync GraphQL APIs 一律可以透過原始伺服器 VPC 中的 VPCs 端點存取 AWS 帳戶,而且支援所有授權模式,而不只是
AWS_IAM
。 -
對於 shared AWS AppSync GraphQL APIs,僅針對 API 資源管理許可,不支援欄位和類型以及欄位資源的精細許可。當您共用 API 時,您會共用 API ARN 及其所有類型和欄位ARNs。
使用 AWS RAM 主控台建立您擁有的資源共享
若要共用 AWS AppSync GraphQL API,請使用 AWS Resource Access Manager 使用者指南中建立資源共用所述的程序,並使用RAM許可名稱 AWSRAMPermissionAppSyncGraphQLApiInvokeAccess
。
使用 AWS RAM 主控台建立和使用客戶受管許可來共用 private AWS AppSync GraphQL API
若要共用 private AWS AppSync GraphQL API,請使用AWS Resource Access Manager 《 使用者指南》中的建立和使用客戶受管許可中所述的程序來建立客戶受管許可。
例如,帳戶 A 的擁有者想要授予帳戶 B 中的主體許可,以存取透過 VPCE-B (帳戶 B 擁有的 VPC 端點) 進行的呼叫的 private AWS AppSync GraphQL API (PrivateApiA)。在此情況下,帳戶 A 的擁有者需要建立 AWS RAM 客戶受管許可,如下所示。
{ "Effect": "Allow", "Action": ["appsync:GraphQL"], "Condition": { "StringEqualsIgnoreCase": { "aws:SourceVpce": [ "VPCE-B" ] } } }
假設此新客戶受管 AWS RAM 許可名為 private-api-A-access-via-vpce-b
。
若要PrivateApiA
透過 啟用 的跨帳戶存取VPCE-B
,客戶可以使用下列參數和先前範例中的客戶受管許可來建立 AWS RAM 資源共享。
資源類型:
appsync:Apis
資源:
arn:aws:appsync:us-west-2:A:apis/PrivateApiA
許可:
private-api-A-access-via-vpce-b
(客戶管理的許可)委託人:
Account: B
使用 建立您擁有的資源共享 AWS CLI
若要使用 共用 AWS AppSync GraphQL API AWS CLI,請使用 create-resource-share
命令搭配 arn:aws:ram::aws:permission/AWSRAMPermissionAppSyncApiInvokeAccess
做為--permission-arns
切換的值。
如需 可用命令的完整清單 AWS RAM,請參閱 AWS RAM CLI 參考
停止共用 AWS AppSync GraphQL APIs
若要停止共用您擁有的 AWS AppSync GraphQL APIs,您必須刪除資源共用或更新共用資源的主體。如需您要執行的動作,請參閱下列各節中的文件。
- 使用 AWS RAM 主控台停止共用您擁有的資源
-
請參閱AWS Resource Access Manager 《 使用者指南》中的更新資源共享。
- 使用 停止共用您擁有的資源 AWS CLI
-
使用 disassociate-resource-share
命令。 - 使用 AWS RAM 主控台刪除您擁有的資源共享
-
請參閱AWS Resource Access Manager 《 使用者指南》中的刪除資源共享。
- 使用 刪除您擁有的資源共享 AWS CLI
-
使用 delete-resource-share
命令。
如需 可用命令的完整清單 AWS RAM,請參閱 AWS RAM CLI 參考
跨帳戶事件
您可以選擇加入記錄 AWS CloudTrail 資料事件,以監控和稽核跨帳戶 AWS AppSync GraphQL API DataPlane 活動。如需詳細資訊,請參閱《AWS CloudTrail 使用者指南》中的記錄資料事件。