Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Como soluciono erros HTTP 403 do API Gateway?
Quando chamo minha API do Amazon API Gateway, recebo um erro 403.
Breve descrição
Você recebe um erro de código de status "HTTP 403" quando um cliente não consegue acessar um URL válido. O servidor entende a solicitação, mas os problemas do lado do cliente não permitem que o servidor atenda à solicitação.
As APIs do API Gateway podem retornar erros "HTTP 403" pelos seguintes motivos:
| Problema | Cabeçalho de resposta | Mensagem de erro | Causa raiz |
| Acesso negado | "x-amzn-errortype" = "AccessDeniedException" | "User is not authorized to access this resource with an explicit deny in an identity-based policy" | O autorizador do API Gateway Lambda que a API usa não autoriza o chamador. |
| Acesso negado | "x-amzn-errortype" = "AccessDeniedException" | "User: user-arn is not authorized to perform: execute-api:Invoke on resource: api-resource-arn with an explicit deny" | A autorização do AWS Identity and Access Management (AWS IAM) que a API usa não autoriza o chamador. Ou a API tem uma política de recursos anexada que nega explicitamente o acesso ao chamador. Para obter mais informações, consulte Política de recursos e autenticação do IAM. |
| Acesso negado | "x-amzn-errortype" = "AccessDeniedException" | "User: anonymous is not authorized to perform: execute-api:Invoke on resource:api-resource-arn" | A autorização do IAM que a API usa não autoriza o chamador. Ou a API tem uma política de recursos anexada que nega explicitamente que o chamador invoque a API. Para obter mais informações, consulte Política de recursos e autenticação do IAM. |
| Acesso negado | "x-amzn-errortype" = "AccessDeniedException" | "The security token included in the request is invalid." | O chamador usou chaves do IAM que não são válidas para acessar uma API que usa autorização do IAM. |
| A chave da API não é válida | "x-amzn-errortype" = "ForbiddenException" | "Forbidden" | O chamador usou uma chave de API incorreta em relação a um método que exige uma chave de API. Ou você não associou a chave de API a um plano de uso que se conecta ao estágio. Ou você desativou a chave da API ou a chave não existe. |
| AWS WAF filtrado | "x-amzn-errortype" = "ForbiddenException" | "Forbidden" | A filtragem de firewall de aplicações web bloqueia a solicitação quando o AWS WAF está ativado na API. |
| Usa incorretamente nomes DNS públicos para invocar uma API privada | "x-amzn-errortype" = "ForbiddenException" | "Forbidden" | Você usou incorretamente nomes DNS públicos para invocar uma API privada de dentro de uma Amazon Virtual Private Cloud (Amazon VPC). Por exemplo, o cabeçalho Host ou x-apigw-api-id está ausente na solicitação. Para obter mais informações, consulte Invocar uma API privada usando nomes de host DNS públicos específicos do endpoint. |
| Invoca um nome de domínio personalizado sem um mapeamento de caminho base | "x-amzn-errortype" = "ForbiddenException" | "Forbidden" | O chamador invoca um domínio personalizado e não mapeia um caminho base para uma API. Para obter mais informações, consulte Nome de domínio personalizado para APIs REST públicas no API Gateway. |
| Invoca um nome de domínio personalizado privado | "x-amzn-errortype" = "ForbiddenException" | "Forbidden" | Você não associou o nome de domínio personalizado privado ao endpoint da VPC. |
| O URL do estágio na solicitação não é válido | "x-amzn-errortype" = "ForbiddenException" | "Forbidden" | O URL da solicitação do chamador inclui um estágio que não existe. Para obter mais informações, consulte Invocar APIs REST no API Gateway. |
| Usa um certificado de cliente que não é válido para invocar um nome de domínio personalizado do API Gateway que exige TLS mútuo | "x-amzn-errortype" = "ForbiddenException" | "Forbidden" | O trustore do nome de domínio personalizado não emite o certificado do cliente que está na solicitação da API ou o certificado não é válido. Para obter mais informações, consulte Como soluciono erros HTTP 403 Forbidden de um nome de domínio personalizado do API Gateway que exige TLS mútuo? |
| Usa o endpoint execute-api padrão para invocar uma API REST que tem um nome de domínio personalizado | "x-amzn-errortype" = "ForbiddenException" | "Forbidden" | O chamador usa o endpoint execute-api padrão para invocar uma API REST depois que você desativa o endpoint padrão. Para obter mais informações, consulte Desabilitar o endpoint padrão para APIs REST. |
| Usa regras de roteamento com nome de domínio personalizado | "x-amzn-errortype" = "ForbiddenException" | "Forbidden" | Você não configurou uma regra de roteamento correspondente com o nome de domínio personalizado. Para obter mais informações, consulte Solucionar problemas em regras de roteamento. |
| O caminho do recurso não existe | "x-amzn-errortype" = "IncompleteSignatureException" | "Authorization header requires 'Credential' parameter. Authorization header requires 'Signature' parameter. Authorization header requires 'SignedHeaders' parameter. Authorization header requires existence of either a 'X-Amz-Date' or a 'Date' header. Authorization=allow" | Você enviou uma solicitação com um cabeçalho Authorization para um caminho de recurso da API que não existe. |
| O token de autenticação expirou | "x-amzn-errortype" = "InvalidSignatureException" | "Signature expired" | O token de autenticação da solicitação expirou. |
| A assinatura não é válida | "x-amzn-errortype" = "InvalidSignatureException" | "The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method." | A assinatura na solicitação não corresponde à assinatura no servidor quando o chamador acessa uma API que usa autorização do IAM. |
| Invoca uma API com domínio personalizado ativado quando o URL do domínio inclui o estágio | "x-amzn-errortype" = "MissingAuthenticationTokenException" | "Missing Authentication Token" | Um mapeamento de API especifica uma API, um estágio e um caminho opcional a serem usados para o mapeamento. Ao mapear o estágio de uma API para um domínio personalizado, você não precisa incluir o estágio no URL. Para obter mais informações, consulte Os mapeamentos de API são usados para associar estágios da API a um nome de domínio personalizado para APIs REST. |
| Token de autenticação ausente | "x-amzn-errortype" = "MissingAuthenticationTokenException" | "Missing Authentication Token" | A solicitação não tem um token de autenticação. |
| Token de autenticação ausente | "x-amzn-errortype" = "MissingAuthenticationTokenException" | "Missing Authentication Token" | Você enviou uma solicitação para um método de API que não existe na API. |
| Token de autenticação ausente | "x-amzn-errortype" = "MissingAuthenticationTokenException" | "Missing Authentication Token" | Você enviou uma solicitação para um recurso da API que não existe na API. |
| O caminho do recurso não existe | "x-amzn-errortype" = "MissingAuthenticationTokenException" | "Missing Authentication Token" | Você enviou uma solicitação sem um cabeçalho Authorization para um caminho de recurso da API que não existe. Para obter mais informações, consulte Como soluciono erros 403 “Missing Authentication Token” do endpoint da API REST do API Gateway? |
Resolução
Confirme se o recurso solicitado existe na definição da API
Observação: se você receber mensagens de erro ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Use o console do API Gateway ou a AWS CLI para verificar as seguintes configurações:
- Você implantou a API com a definição de API mais recente.
- O recurso solicitado existe na definição da API.
Identifique a causa do erro
Para identificar a causa do erro, configure o registro em log de acesso do Amazon CloudWatch para sua API. Em seguida, visualize os eventos de logs da sua API no CloudWatch para verificar se as solicitações chegam à API do API Gateway. Se as solicitações chegarem à API do API Gateway e houver mensagens de erro nos seus logs, é possível continuar solucionando os problemas do API Gateway. Se as solicitações chegarem a outros recursos, outros proxies ou serviços podem ser a causa do erro.
Observação: as APIs HTTP não oferecem suporte a registro em log de execução.
Se for possível reproduzir o erro, use o comando curl -v para obter mais detalhes de comunicação entre o cliente e a API:
curl -X HTTP\_VERB -v https://api-id.execute-api.region.amazonaws.com/stage
Observação: substitua o URL de exemplo pelo URL de invocação da API.
Verifique sua API REST e redirecione o mapeamento da API
Se você usar um nome de domínio personalizado que exige TLS mútuo e invoca uma API HTTP, pode receber erros 403.
Crie um novo mapeamento de API para testar a invocação da API REST para seu nome de domínio personalizado. Para identificar a causa dos erros, visualize os eventos de logs da sua API REST no CloudWatch. Depois de identificar e resolver o erro, redirecione o mapeamento da API para sua API HTTP.
Verifique se o cabeçalho da solicitação está correto
Se o erro for resultado de uma chave de API inválida, verifique se o cabeçalho x-api-key foi enviado na solicitação. Se você não incluiu o cabeçalho ou ele não está correto, atualize o cabeçalho da solicitação.
Verifique se você configurou corretamente a configuração de DNS nos endpoints da VPC de interface da Amazon
Observação: as tarefas a seguir se aplicam às APIs que você invoca de uma Amazon VPC que tem somente um endpoint da VPC de interface.
Verifique se a configuração de DNS do endpoint da interface está definida corretamente com base no tipo de API que você usa.
Para invocar uma API regional da AWS de dentro de uma Amazon VPC, desative os nomes DNS privados no endpoint da interface. Um DNS público poderá então resolver o nome do host do endpoint. Para obter mais informações, consulte Criar uma API privada.
Para usar o nome DNS privado da API para invocar uma API privada de dentro de uma Amazon VPC, ative os nomes DNS privados no endpoint. Os recursos de sub-rede locais da Amazon VPC podem então resolver o nome do host do endpoint da interface.
Observação: se você ativar o DNS privado e usar o URI padrão, não precisará configurar o nome DNS público da API privada ou um alias do Amazon Route 53.
Examine a política de recursos da API
Examine a política de recursos da sua API para verificar as seguintes configurações:
- Para APIs que você invoca de uma VPC com um endpoint da VPC de interface, a política de recursos da API deve conceder acesso à VPC ou ao endpoint da VPC de interface.
- As especificações e a formatação dos recursos da política de recursos estão corretas.
Observação: quando você salva uma política de recursos, o API Gateway não valida as especificações do ARN. Para ver exemplos, consulte Exemplos de política de recursos do API Gateway. - O API Gateway permite que o chamador invoque o endpoint da API pelo tipo de autenticação que você definiu para a API. O API Gateway avalia a política de recursos e o tipo de autorização para permitir ou rejeitar solicitações.
Examine as mensagens de solicitação e resposta HTTP
Reproduza o erro em um navegador da web. Em seguida, use as ferramentas de rede do navegador para capturar as mensagens de solicitação e resposta HTTP e examiná-las para identificar onde o erro ocorreu.
Observação: para análise off-line, salve as mensagens em um arquivo HTTP Archive (HAR).
Informações relacionadas
Common errors (Erros comuns)
Como faço para permitir que somente endereços IP específicos acessem minha API REST do API Gateway?
Como soluciono problemas ao me conectar a um endpoint de API privada do API Gateway?
no site do curl
- Idioma
- Português
Vídeos relacionados


Conteúdo relevante
- feita há um ano