Como soluciono erros 403 "Token de autenticação ausente" do endpoint da API REST do API Gateway?
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:
- A solicitação da API é feita para uma operação ou recurso que não existe.
- A solicitação da API não está assinada quando a autenticação do AWS Identity and Access Management (IAM) está ativada para a operação da API.
- A API pode estar configurada com uma resposta de gateway modificada ou a resposta vem de uma integração de back-end.
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?
Vídeos relacionados
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há um ano