Como faço para solucionar erros 403 de endpoint da API REST “Missing Authentication Token” (Token de autenticação ausente) do API Gateway?

Data da última atualização: 6/1/2023

Quando tento invocar minha API REST do Amazon API Gateway, recebo mensagens de erro 403 “Missing Authentication Token” (Token de autenticação ausente). Como corrigir esses erros?

Breve descrição

Os endpoints da API REST do API Gateway retornam erros Missing Authentication Token (Token de autenticação ausente) por estes motivos:

  • A solicitação da API é feita para um método ou recurso que não existe.
  • A solicitação da API não é assinada quando o método da API tem a autenticação do AWS Identity and Access Management (IAM) ativada.
  • A API pode ser configurada com uma resposta modificada do Gateway ou a resposta vem de uma integração de backend.

Para solucionar outros erros 403 do API Gateway, consulte Como faço para solucionar erros HTTP 403 do API Gateway?

Resolução

Confirmar se há um método e um recurso configurados no caminho de recursos do API Gateway

Siga as instruções em Configurar um método usando o console do API Gateway. Para obter mais informações, consulte Configurar recursos da API.

Observação importante: você deve implantar a API para que as alterações entrem em vigor.

Para APIs com integração de recursos de proxy em que o método de solicitação é enviado ao recurso raiz, verifique se há um método configurado no recurso raiz.

Confirme se as respostas do API Gateway não foram modificadas ou se a integração de backend não está enviando a resposta

Certifique-se de que as respostas do gateway não sejam modificadas na API. Além disso, verifique se o erro não vem do backend de integração. Verifique os logs de execução e os logs de back-end do API Gateway.

Verifique se a solicitação da API está assinada se o método da API tiver a autenticação do IAM ativada

Para obter mais informações, consulte Signing AWS API requests (Assinatura de solicitações de API da AWS) e Elements of an AWS API request signature (Elementos de uma assinatura de solicitação de API da AWS).

Confirme se você está enviando a solicitação de método HTTP correta ao endpoint da API REST

O teste de um endpoint da API REST de um navegador da Web envia automaticamente uma solicitação de método HTTP GET.

Para testar uma solicitação de método HTTP POST, use um cliente HTTP diferente. Por exemplo: Postman ou curl.

Exemplo de comando curl que usa a solicitação do método HTTP POST

$ curl -X POST  <API URL> -d <request body>

Exemplo de envio de solicitação com cabeçalho JSON

$ curl --location -X POST 'https://1234WXYZ.execute-api.us-east-1.amazonaws.com/stage/lambda_proxy' --header 'Content-Type: application/json' --data-raw '{"x":"y"}'

Exemplos de envio de solicitação POST curl com autenticação de assinatura AWS V4

$ curl -X POST "<ENDPOINT>" -d <data> --user <AWS_ACCESS_KEY>:<AWS_SECRET_KEY> --aws-sigv4 "aws:amz:<REGION>:<SERVICE>"
$ curl -X POST "https://1234WXYZ.execute-api.us-east-1.amazonaws.com/stage/lambda_proxy" -d '{"x":"y"}' --user ABCD:1234 --aws-sigv4 "aws:amz:us-east-1:execute-api"

Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?