

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Sharing AWS AppSync GraphQL APIs
<a name="sharing-graphql-apis"></a>

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 《 使用者指南》](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html)。

**Topics**
+ [sharing AWS AppSync GraphQL APIs先決條件](#prerequisites-sharing-apis)
+ [Share AWS AppSync GraphQL APIs](#share_graphal_apis)
+ [停止共用 AWS AppSync GraphQL APIs](#stop-sharing-apis)
+ [跨帳戶事件](#cross-account-events)

## sharing AWS AppSync GraphQL APIs先決條件
<a name="prerequisites-sharing-apis"></a>

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啟用共用](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs)。

## Share AWS AppSync GraphQL APIs
<a name="share_graphal_apis"></a>

若要共用 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 主控台建立您擁有的資源共享
<a name="create-resource-share-owned"></a>

若要共用 AWS AppSync GraphQL API，請使用 *AWS Resource Access Manager 使用者指南*中[建立資源共用](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-create.html)所述的程序，並使用RAM許可名稱 `AWSRAMPermissionAppSyncGraphQLApiInvokeAccess`。

### 建立並使用客戶受管許可，以使用 AWS RAM 主控台共用 private AWS AppSync GraphQL API
<a name="create-resource-share-managed-permission"></a>

若要共用 private AWS AppSync GraphQL API，請使用*AWS Resource Access Manager 《 使用者指南*》中的建立[和使用客戶受管許可中所述的程序來建立客戶受管許可](https://docs.aws.amazon.com/ram/latest/userguide/create-customer-managed-permissions.html)。

例如，帳戶 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
<a name="create-resource-share-owned-cli"></a>

若要使用 共用 AWS AppSync GraphQL API AWS CLI，請使用 `create-resource-share`命令搭配 `arn:aws:ram::aws:permission/AWSRAMPermissionAppSyncApiInvokeAccess`做為`--permission-arns`交換器的值。

如需 可用命令的完整清單 AWS RAM，請參閱 [AWS RAM CLI 參考](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ram/index.html)。

## 停止共用 AWS AppSync GraphQL APIs
<a name="stop-sharing-apis"></a>

若要停止共用您擁有的 AWS AppSync GraphQL APIs，您必須刪除資源共用或更新共用資源的主體。如需您要執行的動作，請參閱下列各節中的文件。

**使用 AWS RAM 主控台停止共用您擁有的資源**  
請參閱《*AWS Resource Access Manager 使用者指南*》中的[更新資源共用](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update.html)。

**使用 停止共用您擁有的資源 AWS CLI**  
使用 [disassociate-resource-share](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ram/disassociate-resource-share.html) 命令。

**使用 AWS RAM 主控台刪除您擁有的資源共享**  
請參閱*AWS Resource Access Manager 《 使用者指南*》中的[刪除資源共享](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-delete.html)。

**使用 刪除您擁有的資源共享 AWS CLI**  
使用 [delete-resource-share](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ram/delete-resource-share.html) 命令。

如需 可用命令的完整清單 AWS RAM，請參閱 [AWS RAM CLI 參考](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ram/index.html)。

## 跨帳戶事件
<a name="cross-account-events"></a>

您可以選擇加入記錄 AWS CloudTrail 資料事件，以監控和稽核跨帳戶 AWS AppSync GraphQL API DataPlane 活動。如需詳細資訊，請參閱《AWS CloudTrail 使用者指南》**中的[記錄資料事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html)。