Tentei invocar minha API REST do Amazon API Gateway e recebi mensagens de erro 403 “Missing Authentication Token”.
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 solicitação é enviada ao recurso raiz, verifique se há uma operação configurada no recurso raiz.
Confirmar se as respostas do API Gateway não foram modificadas e se a integração de backend não enviou a resposta
Certifique-se de que as respostas do gateway não foram modificadas na API. Além disso, verifique se o erro não tem origem no backend 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 mais informações, consulte o AWS Signature versão 4 para solicitações de API e Elementos de uma assinatura de solicitação de API da AWS.
Confirmar se enviou 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.your-aws-region.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:AWS_REGION:AWS_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:your-aws-region:execute-api"
Informações relacionadas
How do I activate IAM authentication for API Gateway REST APIs?