Configuración de CORS de las API de HTTP en API Gateway - Amazon API Gateway

Configuración de CORS de las API de HTTP en API Gateway

El uso compartido de recursos entre orígenes (CORS) es una característica de seguridad del navegador que restringe las solicitudes HTTP que se inician desde secuencias de comandos que se ejecutan en el navegador. Si no puede acceder a la API y recibe un mensaje de error que contiene Cross-Origin Request Blocked, es posible que deba habilitar CORS. Para obtener más información, consulte ¿Qué es el CORS?

Por lo general, se necesita CORS para crear aplicaciones web que acceden a las API alojadas en un dominio u origen distinto. Puede habilitar CORS para permitir las solicitudes a la API desde una aplicación web alojada en un dominio distinto. Por ejemplo, si la API está alojada en https://{api_id}.execute-api.{region}.amazonaws.com/ y desea llamar a la API desde una aplicación web alojada en example.com, la API debe ser compatible con CORS.

Si configura CORS para una API, API Gateway envía automáticamente una respuesta a las solicitudes OPTIONS preliminares, incluso si no hay ninguna ruta OPTIONS configurada para la API. En una solicitud de CORS, API Gateway agrega los encabezados de CORS configurados a la respuesta de una integración.

nota

Si configura CORS para una API, API Gateway ignora los encabezados de CORS devueltos por su integración de backend.

Puede especificar los siguientes parámetros en una configuración de CORS. Para agregar estos parámetros mediante la consola de API HTTP de API Gateway, seleccione Agregar después de ingresar el valor.

Encabezados de CORS Propiedad de configuración de CORS Valores de ejemplo

Access-Control-Allow-Origin

allowOrigins

  • https://www.example.com

  • * (permitir todos los orígenes)

  • https://* (permitir cualquier origen que comience por https://)

  • http://* (permitir cualquier origen que comience por http://)

Access-Control-Allow-Credentials

allowCredentials

true

Access-Control-Expose-Headers

exposeHeaders

Fecha, x-api-id, *

Access-Control-Max-Age

maxAge

300

Access-Control-Allow-Methods

allowMethods

GET, POST, DELETE, *

Access-Control-Allow-Headers

allowHeaders

Autorización, *

Para devolver encabezados de CORS, la solicitud debe contener un encabezado origin. Para el método OPTIONS, la solicitud debe contener los encabezados origin y Access-Control-Request-Method.

Es posible que la configuración de CORS sea similar a lo siguiente:

Configuración de CORS para las API HTTP

Configuración de CORS para una API HTTP con una ruta $default y un autorizador

Puede habilitar CORS y configurar la autorización para cualquier ruta de una API HTTP. Cuando habilita CORS y la autorización para la ruta $default, hay que tener en cuenta algunas consideraciones especiales. La ruta $default captura las solicitudes de todos los métodos y rutas que no haya definido explícitamente, incluidas las solicitudes OPTIONS. Para admitir las solicitudes de OPTIONS no autorizadas, agregue una ruta de OPTIONS /{proxy+} a la API que no requiera autorización y asocie una integración a la ruta. La ruta OPTIONS /{proxy+} tiene mayor prioridad que la ruta $default. Como resultado, permite a los clientes enviar solicitudes OPTIONS a su API sin autorización. Para obtener más información acerca de las prioridades de enrutamiento, consulte Enrutamiento de solicitudes de la API.

Configuración de CORS para una API HTTP mediante la AWS CLI

Puede utilizar el siguiente comando update-api para habilitar las solicitudes de CORS de https://www.example.com.

aws apigatewayv2 update-api --api-id api-id --cors-configuration AllowOrigins="https://www.example.com"

Para obtener más información, consulte CORS en la Referencia de la API de Amazon API Gateway Versión 2.