

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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

AWS AppSync は AWS Resource Access Manager (AWS RAM) と統合してリソース共有を有効にします。 AWS RAM は、 AWS AppSync GraphQL APIs の呼び出しアクション (クエリ、ミューテーション、サブスクリプションオペレーション、リアルタイム WebSocket エンドポイントへのリクエストの接続) を他の AWS アカウント または と共有できるサービスです 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**
+ [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)

## AWS AppSync GraphQL APIs を共有するための前提条件
<a name="prerequisites-sharing-apis"></a>

Sharing AWS AppSync GraphQL APIs以下の前提条件があります。
+  AWS AppSync GraphQL API を共有するには、 でその 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 のみです。Event API などの他の APIs タイプは共有できません。
+ API で設定された認可モードの 1 つ`AWS_IAM`として APIs を持つ AWS AppSync GraphQL API のみを共有できます。

  `AWS_IAM` が共有 AppSync GraphQL API の認可モードのリストから削除され、リソース共有がまだ存在する可能性がある場合、無効になります。
+ public と private AWS AppSync GraphQL APIsの両方を共有できます。
+ Private AWS AppSync GraphQL APIsは、オリジンの VPC 内の VPCs エンドポイントを介して常にアクセスでき AWS アカウント、 だけでなく、すべての認可モードがサポートされています`AWS_IAM`。
+ shared AWS AppSync GraphQL APIs の場合、アクセス許可は API リソースに対してのみ管理され、フィールドとタイプ、およびフィールドリソースに対するきめ細かなアクセス許可はサポートされていません。API を共有する場合、API ARN とそのすべてのタイプとフィールドARN を共有します。

### 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)」で説明されている手順を使用します`AWSRAMPermissionAppSyncGraphQLApiInvokeAccess`。 RAM

### 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 の所有者は、VPCE-B (アカウント B が所有する VPC エンドポイント) を介して行われた呼び出しに対して private AWS AppSync GraphQL API (PrivateApiA) にアクセスするアクセス許可をアカウント B のプリンシパルに付与したいと考えています。この場合、アカウント 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、 `--permission-arns` スイッチの値`arn:aws:ram::aws:permission/AWSRAMPermissionAppSyncApiInvokeAccess`として を使用する `create-resource-share` コマンドを使用します。

で使用できるコマンドの完全なリストについては 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 ユーザーガイド*」の「[Update a resource share](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 AppSync GraphQL API DataPlane アクティビティをモニタリングおよび監査するための AWS CloudTrail データイベントのログ記録をオプトインできます。詳細については、「*AWS CloudTrail ユーザーガイド*」の「[データイベントをログ記録する](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html)」を参照してください。