Compartilhamento de APIs GraphQL do AWS AppSync - AWS AppSync GraphQL

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Compartilhamento de APIs GraphQL do AWS AppSync

O AWS AppSync se integra ao AWS Resource Access Manager (AWS RAM) para habilitar o compartilhamento de recursos. O AWS RAM é um serviço que permite a você compartilhar ações de invocação (operações de consulta, mutação e assinatura, além de solicitações de conexão com o endpoint do WebSocket em tempo real) em APIs GraphQL do AWS AppSync com outras Contas da AWS ou por meio do AWS Organizations. Com o AWS RAM, você compartilha recursos que possui criando um compartilhamento de recursos. Um compartilhamento de recursos especifica os recursos a serem compartilhados, e os consumidores com os quais compartilhá-los. Os consumidores podem incluir os itens a seguir.

  • Contas específicas da Contas da AWS dentro ou fora de sua organização no AWS Organizations

  • Uma unidade organizacional dentro da organização no AWS Organizations.

  • Uma organização inteira no AWS Organizations

Para obter mais informações sobre o AWS RAM, consulte o Guia do usuário do AWS Resource Access Manager.

Pré-requisitos para compartilhar APIs GraphQL do AWS AppSync

O compartilhamento de APIs GraphQL do AWS AppSync tem os pré-requisitos a seguir.

  • Para compartilhar uma API GraphQL do AWS AppSync, você deve tê-la na Conta da AWS. Isso significa que a API GraphQL do AWS AppSync deve ser alocada ou provisionada na conta.

  • Para compartilhar uma API GraphQL do AWS AppSync com a organização ou uma unidade organizacional no AWS Organizations, você deve habilitar o compartilhamento com o AWS Organizations. Para obter mais informações, consulte Habilitar o compartilhamento de recursos no AWS Organizations no Guia do usuário do AWS Resource Access Manager.

Compartilhar APIs GraphQL do AWS AppSync

Para compartilhar uma API GraphQL do AWS AppSync, comece criando um compartilhamento de recursos usando o AWS Resource Access Manager. Um compartilhamento de recursos especifica os recursos a serem compartilhados, os consumidores com os quais compartilhá-los e quais ações as entidades principais poderão executar. Ao compartilhar uma API GraphQL do AWS AppSync própria com outrasContas da AWS, você permite que essas contas chamem essa API do AWS AppSync na Conta da AWS.

Se você fizer parte de uma organização no AWS Organizations, e o compartilhamento dentro da organização estiver habilitado, os consumidores da organização receberão automaticamente acesso ao recurso compartilhado. Caso contrário, os consumidores receberão um convite para participar do compartilhamento de recursos e acesso ao recurso compartilhado depois de aceitar o convite.

Considerações sobre compartilhamento

  • Você só pode compartilhar APIs GraphQL do AWS AppSync, e não outros tipos de API, como APIs Event.

  • Você só pode compartilhar APIs GraphQL do AWS AppSync que tenham AWS_IAM como um dos modos de autorização configurados na API.

    Se AWS_IAM for removido da lista dos modos de autorização de uma API GraphQL do AppSync compartilhada, embora ainda possa existir, o compartilhamento de recursos se tornará ineficaz.

  • Você pode compartilhar APIs GraphQL do AWS AppSync públicas e privadas.

  • As APIs GraphQL do AWS AppSync privadas sempre podem ser acessadas por meio dos endpoints da VPC em VPCs na origem Conta da AWS, e todos os modos de autorização são compatíveis, e não apenas AWS_IAM.

  • Para APIs GraphQL do AWS AppSync compartilhadas, as permissões só são gerenciadas para o recurso da API e não dão suporte a permissões refinadas para campo e tipo, além dos recursos de campo. Ao compartilhar uma API, você está compartilhando o ARN da API e os ARNs de todos os tipos e campos.

Criar um compartilhamento de recursos próprio usando o console do AWS RAM

Para compartilhar uma API GraphQL do AWS AppSync, use o procedimento descrito em Criação de um compartilhamento de recursos no Guia do usuário do AWS Resource Access Manager, usando o nome AWSRAMPermissionAppSyncGraphQLApiInvokeAccess da permissão RAM.

Criar e usar uma permissão gerenciada pelo cliente para compartilhar uma API GraphQL do AWS AppSync privada usando o console do AWS RAM

Para compartilhar uma API GraphQL do AWS AppSync privada, crie uma permissão gerenciada pelo cliente usando o procedimento descrito em Criação e uso de permissões gerenciadas pelo cliente no Guia do usuário do AWS Resource Access Manager.

Por exemplo, um proprietário da Conta A deseja conceder às entidades principais da conta B permissão para acessar uma API GraphQL do AWS AppSync privada (PrivateApiA) para chamadas feitas por meio de VPCE-B (um endpoint da VPC de propriedade da conta B). Neste caso, o proprietário da conta A precisa criar uma permissão gerenciada pelo cliente do AWS RAM da maneira a seguir.

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

Suponhamos que essa nova permissão do AWS RAM gerenciada pelo cliente se chame private-api-A-access-via-vpce-b.

Para permitir o acesso entre contas ao PrivateApiA por meio do VPCE-B, o cliente pode criar um compartilhamento de recursos do AWS RAM com os parâmetros a seguir e a permissão gerenciada pelo cliente no exemplo anterior.

  • Tipo de recurso: appsync:Apis

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

  • Permissão: private-api-A-access-via-vpce-b (permissão gerenciada pelo cliente)

  • Principal: Account: B

Criar um compartilhamento de recursos próprio usando o AWS CLI

Para compartilhar uma API GraphQL do AWS AppSync usando a AWS CLI, use o comando create-resource-share com arn:aws:ram::aws:permission/AWSRAMPermissionAppSyncApiInvokeAccess como o valor para o comutador --permission-arns.

Para obter uma lista completa de comandos disponíveis para AWS RAM, consulte a Referência de CLI do AWS RAM.

Interromper compartilhamento de APIs GraphQL do AWS AppSync

Para interromper o compartilhamento de APIs GraphQL do AWS AppSync próprias, você deve excluir o compartilhamento de recursos ou atualizar as entidades principais com as quais compartilhou o recurso. Consulte a documentação nas seções a seguir para saber a ação que você deseja realizar.

Para interromper o compartilhamento de um recurso de sua propriedade usando o console do AWS RAM

Consulte Atualizar um compartilhamento de recursos no Guia do usuário do AWS Resource Access Manager.

Para interromper o compartilhamento de um recurso de sua propriedade usando a AWS CLI

Use o comando disassociate-resource-share.

Para excluir um compartilhamento de recursos próprio usando o console do AWS RAM

Consulte Criar um compartilhamento de recursos no Guia do usuário do AWS Resource Access Manager.

Para excluir um compartilhamento de recursos próprio usando o AWS CLI

Use o comando delete-resource-share.

Para obter uma lista completa de comandos disponíveis para AWS RAM, consulte a Referência de CLI do AWS RAM.

Eventos entre contas

Você pode optar por registrar em log eventos de dados AWS CloudTrail para monitorar e auditar a atividade DataPlane da API GraphQL do AWS AppSync em várias contas. Para obter mais informações, consulte Registrar eventos de dados, no Guia do usuário do AWS CloudTrail.