¿Cómo soluciono los errores 403 “Missing Authentication Token” (Falta el token de autenticación) de un punto de conexión de API de REST de API Gateway?

3 minutos de lectura
0

Cuando intento invocar mi API de REST de Amazon API Gateway, recibo mensajes de error 403 “Missing Authentication Token” (Falta el token de autenticación). ¿Cómo soluciono estos errores?

Descripción breve

Los puntos de conexión de la API de REST de API Gateway devuelven los errores Missing Authentication Token (Falta el token de autenticación) por dos razones:

Para solucionar otros errores 403 de API Gateway, consulte ¿Cómo puedo solucionar los errores HTTP 403 de API Gateway?

Resolución

Confirme que hay un método y un recurso configurados en la ruta de recursos de API Gateway

Siga las instrucciones de Configurar un método mediante la consola de API Gateway. Para obtener más información, consulte Configurar recursos de API.

Importante: Debe implementar la API para que los cambios surtan efecto.

Para las API con una integración de recursos de proxy en el que la solicitud de método se envía al recurso raíz, compruebe que haya un metido configurado en el recurso raíz.

Confirme que las respuestas de API Gateway no se hayan modificado o que la integración de backend no envíe la respuesta

Asegúrese de que las respuestas de la puerta de enlace no se hayan modificado en la API. Además, asegúrese de que el error no proviene del backend de integración. Compruebe los registros de ejecución y backend de API Gateway.

Confirme que la solicitud de API está firmada si el método de API tiene la autenticación de IAM activada

Para obtener más información, consulte Signing AWS API requests (Firma de solicitudes a la API de AWS) y Elements of an AWS API request signature (Elementos de una firma de solicitud a la API de AWS).

Confirme que está enviando la solicitud de método HTTP correcta al punto de conexión de la API de REST

Probar un punto de enlace de la API REST directamente desde un navegador web envía de manera automática una solicitud de método GET HTTP.

Use un cliente HTTP diferente para probar una solicitud de método POST HTTP. Por ejemplo, Postman o curl.

Ejemplo de comando curl que usa la solicitud del método POST HTTP

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

Ejemplo de envío de solicitud con encabezado 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"}'

Ejemplos de envío de solicitudes POST curl con autenticación de firma de 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"

Información relacionada

¿Cómo activo la autenticación de IAM para las API de REST de API Gateway?