¿Cómo puedo solucionar los errores 403 «Missing Authentication Token» en el punto de conexión de la API de REST de API Gateway?

3 minutos de lectura
0

Cuando intento invocar mi API de REST de Amazon API Gateway, se muestran mensajes de error 403 «Missing Authentication Token».

Breve descripción

Los puntos de conexión de la API de REST de API Gateway devuelven errores Missing Authentication Token por los siguientes motivos:

  • La solicitud de API se ha realizado a una operación o recurso que no existe.
  • La solicitud de API no se ha firmado al activar la autenticación de AWS Identity and Access Management (IAM) para la operación de API.
  • Puede que la API se haya configurado con una respuesta de puerta de enlace modificada o que la respuesta provenga de una integración de backend.

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

Resolución

Confirmación de si hay una operación y un recurso configurados en la ruta de recursos de API Gateway

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

Importante: Para que los cambios surtan efecto, debe implementar la API.

En el caso de las API con integración de recursos proxy en las que la operación de solicitud se envía al recurso raíz, compruebe que haya una operación configurada en el recurso raíz.

Confirmación de que no se han modificado las respuestas de API Gateway y de que la respuesta no la envía la integración del backend

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

Confirmación de si la solicitud de API se firma al activar la autenticación de IAM

Para obtener más información, consulte Firma de solicitudes API de AWS y Elementos de una firma de solicitud a la API de AWS.

Confirmación de si está enviando la solicitud de operación HTTP correcta al punto de conexión de la API de REST

Pruebe un punto de conexión de la API de REST desde un navegador web para enviar una solicitud de operación HTTP GET automáticamente.

Para probar una solicitud de operación HTTP POST, utilice otro cliente HTTP distinto. Por ejemplo, utilice Postman en el sitio web de Postman o curl en el sitio web de curl.

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

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

Ejemplo de envío de una 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 una solicitud POST de 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

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