Ir para o conteúdo

Como faço para acessar uma API do 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.

Resolução

Endpoints de API públicos

É possível acessar os endpoints públicos do API Gateway (regionais ou otimizados para borda) diretamente do URL do estágio da API. Por exemplo, https://0123456789.execute-api.{region}.amazonaws.com/{stage-name}.

Também é possível usar um nome de domínio personalizado em uma zona pública hospedada para acessar endpoints públicos do API Gateway.

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

Endpoints da API REST privada

É possível usar um endpoint da VPC de interface para acessar endpoints privados da API REST a partir da sua Amazon Virtual Private Cloud (Amazon VPC).

Para acessar uma API REST privada localizada em outra conta, edite a política de recursos para conceder permissões entre contas. Também é possível usar um nome de domínio privado personalizado para associar seu endpoint da VPC em outra conta.

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

Use a autenticação do IAM

É necessária uma configuração adicional para acessar uma API do API Gateway com acesso entre contas que usa a autenticação do AWS Identity and Access Management (AWS IAM). Certifique-se de que a entidade IAM na conta do consumidor tenha permissões para invocar a API por meio de uma política baseada em identidade.

O perfil do IAM da conta de origem deve ter acesso explícito na política de recursos, como a seguinte:

APIs REST

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::CONSUMER-ACCOUNT-ID:user/USERNAME",
                    "CONSUMER-ACCOUNT-ID"
                ]
            },
            "Action": "execute-api:Invoke",
            "Resource": [
                "arn:aws:execute-api:YOUR-REGION:API-OWNER-ACCOUNT-ID:API-ID///*"
            ]
        }
    ]
}

Observação: Substitua CONSUMER-ACCOUNT-ID, USERNAME, YOUR-REGION, API-OWNER-ACCOUNT-ID e API-ID por suas variáveis.

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

APIs HTTP

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

É possível usar a ação da API sts:AssumeRole para assumir um perfil para a conta da API HTTP. O perfil assumido fornece 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 de IAM entre contas para APIs HTTP do API Gateway?

Informações relacionadas

APIs REST privadas no API Gateway

Exemplo: Permita que perfis em outra conta da AWS usem uma API