Uso compartido de recursos entre orígenes (CORS) - Amazon Simple Storage Service

Uso compartido de recursos entre orígenes (CORS)

El uso compartido de recursos entre orígenes (CORS) define una manera para que las aplicaciones web de los clientes cargadas en un dominio interactúen con los recursos de un dominio diferente. Con el soporte del CORS, puede desarrollar aplicaciones web del lado del cliente completas con Amazon S3 y permitir un acceso entre orígenes a sus recursos de Amazon S3 de manera selectiva.

En esta sección, se proporciona información general acerca del CORS. En los subtemas se describe cómo puede habilitar el CORS con la consola de Amazon S3 o mediante programación utilizando la API de REST de Amazon S3 y los SDK de AWS.

Compartir recursos entre orígenes: escenarios de casos de uso

A continuación, se muestran ejemplos de casos de uso de CORS:

Escenario 1

Suponga que aloja un sitio web en un bucket de Amazon S3 llamado website como se describe en Alojamiento de un sitio web estático mediante Amazon S3. Sus usuarios cargan el punto de conexión de sitio web.

http://website.s3-website.us-east-1.amazonaws.com

Ahora desea usar el código JavaScript en la páginas web que se almacenan en este bucket para poder realizar solicitudes GET y PUT autenticadas con el mismo bucket mediante el punto de conexión de la API de Amazon S3 para el bucket, website.s3.us-east-1.amazonaws.com. Un navegador, por lo general, bloquearía el código JavaScript y no permitiría realizar esas solicitudes, pero con el CORS puede configurar el bucket para que se habiliten de manera explícita las solicitudes entre orígenes de website.s3-website.us-east-1.amazonaws.com.

Escenario 2

Suponga que desea alojar una fuente web en su bucket de S3. Nuevamente, los navegadores requieren una comprobación del CORS (también conocida como comprobación preliminar) para la carga de fuentes web, por lo que configuraría el bucket que aloja la fuente web para que permita que cualquier origen realice estas solicitudes

¿Cómo evalúa Amazon S3 la configuración de CORS en un bucket?

Cuando Amazon S3 recibe una solicitud de comprobación preliminar de un navegador, evalúa la configuración de CORS para el bucket y usa la primera regla CORSRule que coincide con la solicitud del navegador entrante para habilitar una solicitud entre orígenes. Para que una regla coincida, se deben cumplir las siguientes condiciones:

  • El encabezado Origin de una solicitud de CORS a su bucket debe corresponderse con los orígenes del elemento AllowedOrigins de su configuración de CORS.

  • Los métodos HTTP que se especifiquen en el Access-Control-Request-Method en una solicitud de CORS a su bucket deben corresponderse con el método o métodos enumerados en el elemento AllowedMethods de su configuración de CORS.

  • Los encabezados que aparecen en el encabezado Access-Control-Request-Headers de una solicitud anterior al tránsito deben corresponderse con los encabezados del elemento AllowedHeaders de la configuración de CORS.

nota

Las ACL y políticas siguen aplicándose cuando habilita CORS en su bucket.

Cómo el punto de acceso de Object Lambda da soporte a CORS

Cuando S3 Object Lambda recibe una solicitud de un navegador o la solicitud incluye un encabezado Origin, S3 Object Lambda siempre añade un campo de encabezado “AllowedOrigins":"*".

Para obtener más información acerca del uso de CORS, consulte los temas siguientes.