Como posso acessar uma API do Amazon API Gateway de outra conta da AWS?

3 minuto de leitura
0

Quero acessar uma API do Amazon API Gateway de outra conta da AWS. Como faço isso?

Breve descrição

Os endpoints de API públicos (Regional ouedge-optimized) podem ser acessados diretamente do URL do estágio público do endpoint ou de um nome de domínio personalizado.

Os endpoints de APIs REST privadas podem ser acessados de uma nuvem privada virtual na Amazon Virtual Private Cloud (Amazon VPC) usando um endpoint da VPC de interface.

Os endpoints do Amazon API Gateway podem ser acessados usando a autenticação do AWS Identity and Access Management (IAM) com acesso cross-account.

Resolução

Endpoints de API públicos

Você pode acessar os endpoints públicos do API Gateway diretamente do URL de preparação da API. Por exemplo, https://0123456789.execute-api.{região}.amazonaws.com/{nome-preparação}.

Você também pode acessar os endpoints públicos do API Gateway usando um nome de domínio personalizado em uma zona pública hospedada.

Observação: os nomes de domínio personalizados não são compatíveis com APIs privadas.

Para obter mais informações, consulte Como posso configurar um nome de domínio personalizado para minha API do API Gateway?

Endpoints privados da API REST

Você pode acessar as APIs REST privadas do API Gateway em outra conta da AWS com uma Amazon Virtual Private Cloud (Amazon VPC) usando um endpoint de interface .

Se sua API REST privada estiver localizada em uma conta da AWS e você quiser acessá-la de outra conta, pode editar a política de recursos.

Para obter mais informações, consulte Como posso acessar uma API REST privada do API Gateway em outra conta da AWS usando um endpoint da VPC de interface?

APIs usando autenticação do IAM

É necessária uma configuração adicional para acessar uma API do API Gateway com acesso cross-account que usa a autenticação do IAM. O perfil do IAM da conta de origem deve ter acesso explícito na política de recursos semelhante à seguinte:

REST APIs (APIs REST)

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::account-id-2:user/Alice",
          "account-id-2"
        ]
      },
      "Action": "execute-api:Invoke",
      "Resource": [
        "arn:aws:execute-api:us-east-1:{account-id}:{api-id}/*/*/*"
      ]
    }
  ]
}

Para obter mais informações, consulte Como faço para ativar a autenticação do IAM para APIs REST do API Gateway?

HTTP APIs (APIs HTTP)

A opção de usar políticas de recursos para fornecer autenticação do IAM para várias contas não está disponível para as APIs HTTP do API Gateway.

Você pode usar a ação de API sts:AssumeRole para assumir uma função para a conta da API HTTP. A função assumida fornece temporary security credentials (credenciais de segurança temporárias) que podem ser usadas para invocar a API HTTP em outra conta.

Para obter mais informações, consulte Como posso fornecer autorização do IAM entre contas para APIs HTTP do API Gateway?


Informações relacionadas

Criação de uma API privada no Amazon API Gateway

Exemplo: permitir que usuários em outra conta da AWS usem uma API