Por que ocorre um erro HTTP 403 Proibido ao conectar APIs do API Gateway de uma VPC?

4 minuto de leitura
0

Estou chamando minhas APIs do Amazon API Gateway da minha nuvem privada virtual (VPC), mas recebo um erro HTTP 403 Proibido. Por que isso acontece?

Breve descrição

O erro HTTP 403 Proibido geralmente ocorre quando o DNS privado está habilitado para um endpoint de VPC de interface do API Gateway associado a uma VPC. Nesse cenário, todas as solicitações da VPC para as APIs do API Gateway são resolvidas para esse endpoint de VPC de interface. No entanto, não é possível se conectar a APIs públicas usando um endpoint de VPC.

O nome de DNS privado de um endpoint de VPC está no formato *.execute-api.<REGION>.amazonaws.com. Esse formato corresponde ao URL de invocação padrão do API Gateway para APIs públicas e privadas. Por exemplo, o URL de invocação padrão de uma API pública é https://abcd1234.execute-api.us-east-1.amazonaws.com, em que abcd1234 é o ID da API e us-east-1 é a região da AWS da API.

Quando um DNS privado está habilitado em um endpoint de VPC, o URL de invocação da API é coberto pelo nome de DNS privado *.execute-api.us-east-1.amazonaws.com, em que * é um espaço reservado para o ID da API. Quando uma consulta ao DNS é resolvida para uma API pública de dentro de uma VPC, o DNS resolvido aponta para o IP privado do endpoint de VPC associado em vez de ao IP público da API pública. A chamada de API é então roteada à API pública por meio do endpoint de VPC em vez de ser roteada pela Internet. Como endpoints de VPC podem rotear o tráfego somente para APIs privadas, o resultado é um erro HTTP 403.

Se o DNS privado não estiver habilitado para seu endpoint de VPC de interface ou se não houver um endpoint na sua VPC, acesse a seção Conectar-se a APIs públicas quando o DNS privado não estiver habilitado.

Resolução

Confirmar se um DNS privado está habilitado para um endpoint de VPC de interface associado à sua VPC

Verifique sua VPC para ver se há um endpoint de VPC de interface para acessar uma API privada. Se houver um endpoint de interface, verifique se as configurações de DNS privado estão habilitadas. Para obter mais informações, consulte Atributos de DNS na sua VPC.

Conectar-se a APIs públicas com o DNS privado habilitado

Se o DNS privado estiver habilitado, configure nomes de domínio personalizados otimizados para borda ou nomes de domínio personalizados regionais para se conectar às suas APIs públicas.

Importante: os recursos na sua VPC que tentam se conectar às suas APIs públicas devem ter conectividade com a Internet. Além disso, ao configurar registros de DNS para um nome de domínio personalizado regional, você deve usar registros de alias de tipo A. No entanto, com nomes de domínio personalizados otimizados para borda, use registros de alias de tipo A ou registros CNAME.

Conectar-se a APIs públicas quando o DNS privado não está habilitado

Se o DNS privado não estiver habilitado no endpoint de VPC de interface, ou se não houver endpoints na sua configuração da Amazon Virtual Private Cloud (Amazon VPC), confirme se o seguinte é verdadeiro:

Quando sua VPC tiver permissão para acessar suas APIs públicas, use o DNS público para se conectar às suas APIs públicas. Para obter mais informações, consulte Controlar e gerenciar o acesso a uma API REST no API Gateway.

(Opcional) Alterar a configuração de DNS privado para um endpoint de VPC de interface

Os usuários podem alterar a configuração de DNS privado de um endpoint de VPC de interface a qualquer momento. A alteração dessa configuração afeta a resolução do URL de preparação de uma API para o IP privado do endpoint de VPC de interface.

Observação: a alteração da configuração de DNS privado afeta de que maneira os usuários podem se conectar a APIs privadas e a APIs públicas a partir de uma VPC.

  1. No console do Amazon VPC, abra o painel Endpoints.
  2. Selecione o endpoint de VPC de interface.
  3. Escolha Ações e, em seguida, escolha Modificar nomes DNS privados.
  4. Em Habilitar nome de DNS privado, marque ou desmarque a caixa de seleção Habilitar para este endpoint.
  5. Escolha Modificar nomes DNS privados.

Para obter mais informações, consulte Visualizar e atualizar atributos DNS para sua VPC.


Informações relacionadas

Acessar um serviço da AWS usando um endpoint de VPC de interface

Configurar nomes de domínio personalizados para APIs REST

Atributos DNS para sua VPC