AWS AppSync GraphQL API の共有 - AWS AppSync GraphQL

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

AWS AppSync GraphQL API の共有

AWS AppSync は AWS Resource Access Manager (AWS RAM) と統合してリソース共有を有効にします。AWS RAM は、AWS AppSync GraphQL API の呼び出しアクション (クエリ、ミューテーション、サブスクリプションオペレーション、リアルタイム WebSocket エンドポイントへの接続リクエスト) を他の AWS アカウントと、または AWS Organizations を通じて共有できるサービスです。AWS RAM を使用したリソース共有。これにより、自身が所有するリソースを共有できます。リソース共有は、共有するリソースと、それらを共有するコンシューマーを指定します。コンシューマーには以下が含まれます。

  • AWS Organizations の特定の AWS アカウント の組織の内部または外部

  • AWS Organizations の組織内の組織単位

  • AWS Organizations の組織全体

AWS RAM については、「AWS Resource Access Manager User Guide」を参照してください。

AWS AppSync GraphQL API を共有するための前提条件

AWS AppSync GraphQL API の共有には、次の前提条件があります。

  • AWS AppSync GraphQL API を共有するには、AWS アカウントでその API を所有している必要があります。つまり、AWS AppSync GraphQL API を自分のアカウントに割り当てるか、プロビジョニングする必要があります。

  • AWS AppSync GraphQL API を組織や AWS Organizations 内の組織単位と共有するには、AWS Organizations との共有を有効にする必要があります。詳細については、「AWS Resource Access Manager ユーザーガイド」の「AWS Organizations 内でリソース共有を有効にする」を参照してください。

AWS AppSync GraphQL API の共有

AWS AppSync GraphQL API を共有するには、AWS Resource Access Manager を使用してリソース共有を作成することから始めます。リソース共有では、共有対象のリソース、リソースを共有するコンシューマー、プリンシパルが実行できるアクションを指定します。所有している AWS AppSync GraphQL API を他の AWS アカウントと共有する場合、自分の AWS アカウントのその AWS AppSync API をそれらのアカウントが呼び出せるようにします。

自分が AWS Organizations の組織に属していて、組織内での共有が有効になっている場合、組織内のコンシューマーには共有リソースに対するアクセス許可が自動的に付与されます。これに該当しない場合、コンシューマーはリソースへの参加の招待を受け取り、その招待を受け入れた後で、リソースの共有に対するアクセス許可が付与されます。

共有についての検討事項

  • 共有できるのは AWS AppSync GraphQL API のみです。Event API などの他のタイプの API は共有できません。

  • API で設定された認可モードの 1 つとして AWS_IAM API を持つ AWS AppSync GraphQL API のみを共有できます。

    AWS_IAM が共有 AppSync GraphQL API の認可モードのリストから削除され、リソース共有がまだ存在する可能性がある場合、無効になります。

  • パブリック GraphQL API とプライベート AWS AppSync GraphQL API の両方を共有できます。

  • プライベート AWS AppSync GraphQL API は、オリジン AWS アカウントで VPC の VPC エンドポイントを介して常にアクセスでき、AWS_IAM だけでなく、すべての認可モードがサポートされています。

  • 共有 AWS AppSync GraphQL API の場合、アクセス許可は API リソースに対してのみ管理され、フィールドとタイプ、およびフィールドリソースに対するきめ細かなアクセス許可はサポートされていません。API を共有する場合、API ARN とそのすべてのタイプとフィールドARN を共有します。

AWS RAM コンソールを使用して自分が所有するリソース共有を作成する

AWS AppSync GraphQL API を共有するには、RAM アクセス許可名 AWSRAMPermissionAppSyncGraphQLApiInvokeAccess を使用して、「AWS Resource Access Manager ユーザーガイド」の「リソース共有の作成」で説明されている手順を使用します。

AWS RAM コンソールを使用してプライベート AWS AppSync GraphQL API を共有するためのカスタマー管理アクセス許可を作成して使用する

プライベート AWS AppSync GraphQL API を共有するには、「AWS Resource Access Manager ユーザーガイド」の「カスタマー管理アクセス許可の作成と使用」で説明されている手順を使用して、カスタマー管理アクセス許可を作成します。

例えば、アカウント A の所有者が、VPCE-B (アカウント B が所有する VPC エンドポイント) を介して行われた呼び出しに対して、プライベート 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 であるとします。

VPCE-B 経由で PrivateApiA へのクロスアカウントアクセスを有効にするには、次のパラメータと前の例のカスタマー管理アクセス許可を使用して 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 CLI を使用して AWS AppSync GraphQL API を共有するには、--permission-arns スイッチの値として arn:aws:ram::aws:permission/AWSRAMPermissionAppSyncApiInvokeAccess を使用する create-resource-share コマンドを使用します。

AWS RAM で使用可能なコマンドの完全なリストについては、「AWS RAM CLI リファレンスの」を参照してください。

AWS AppSync GraphQL API の共有を停止する

所有している AWS AppSync GraphQL API の共有を停止するには、リソース共有を削除するか、リソースを共有しているプリンシパルを更新する必要があります。実行するアクションについては、以下のセクションのドキュメントを参照してください。

AWS RAM コンソールを使用して自分が所有するリソースの共有を停止するには

AWS Resource Access Manager ユーザーガイド」の「Update a resource share」を参照してください。

AWS CLI を使用して自分が所有するリソースの共有を停止するには

disassociate-resource-share コマンドを使用します。

AWS RAM コンソールを使用して自分が所有するリソース共有を削除するには

AWS Resource Access Manager ユーザーガイド」の「リソース共有の削除」を参照してください。

AWS CLI を使用して自分が所有するリソース共有を削除するには

delete-resource-share コマンドを使用します。

AWS RAM で使用可能なコマンドの完全なリストについては、「AWS RAM CLI リファレンスの」を参照してください。

クロスアカウントイベント

クロスアカウント AWS AppSync GraphQL API DataPlane アクティビティをモニタリングおよび監査するための AWS CloudTrail データイベントのログ記録にオプトインできます。詳細については、「AWS CloudTrail ユーザーガイド」の「データイベントをログ記録する」を参照してください。