Como soluciono erros 403 "Token de autenticação ausente" do endpoint da API REST do API Gateway?

3 minuto de leitura
0

Quando tento invocar minha API REST do Amazon API Gateway, recebo mensagens de erro 403 "Token de autenticação ausente".

Breve descrição

Os endpoints da API REST do API Gateway retornam erros de token de autenticação ausente pelos seguintes motivos:

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

Resolução

Confirme se há uma operação 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.

Importante: para que as alterações entrem em vigor, você deve implantar a API.

Para APIs com integração de recursos de proxy em que a operação de solicitação é enviada ao recurso raiz, verifique se há uma operação configurada no recurso raiz.

Confirme se as respostas do API Gateway não foram modificadas ou se a integração de back-end 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 tem origem no back-end de integração. Verifique os logs de execução e de back-end do API Gateway.

Se a autenticação do IAM estiver ativada, confirme se a solicitação da API está assinada

Para obter mais informações, consulte Assinar solicitações de API da AWS e Elementos de uma assinatura de solicitação de API da AWS.

Confirme se você está enviando a solicitação de operação HTTP correta para o endpoint da API REST

Teste um endpoint da API REST a partir de um navegador para enviar automaticamente uma solicitação de operação GET HTTP.

Para testar uma solicitação de operação POST HTTP, use um cliente HTTP diferente. Por exemplo, use Postman no site Postman ou curl no site curl.

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

$ 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"

Informações relacionadas

How do I activate IAM authentication for API Gateway REST APIs?