View a markdown version of this page

Cross-origin soporte para compartir recursos y Amazon EC2 - Amazon Elastic Compute Cloud

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cross-origin soporte para compartir recursos y Amazon EC2

La API de Amazon EC2 admite el uso compartido de recursos entre orígenes (CORS). CORS define una forma para que las aplicaciones web de los clientes que se cargan en un dominio interactúen con los recursos de un dominio diferente. Para obtener más información, consulte la Recomendación del W3C sobre el intercambio de Cross-Origin recursos. Con la compatibilidad de CORS para Amazon EC2, puede crear aplicaciones web completas del lado del cliente que utilicen la API de Amazon EC2. Por ejemplo, supongamos que aloja un sitio web y desea utilizarlo JavaScript en sus páginas web para realizar solicitudes a la API de Amazon EC2. mywebsite.example.com Normalmente, un navegador JavaScript impide que se permitan estas solicitudes, pero con CORS, puede realizar llamadas a la API de Amazon EC2 de origen cruzado. mywebsite.example.com

CORS ya está activado para la API de Amazon EC2 y está listo para su uso. No necesita realizar ningún paso de configuración adicional para empezar a utilizar esta función. No hay cambios en la forma en que se realizan las llamadas a la API de Amazon EC2; aún así, deben estar firmadas con AWS credenciales válidas para garantizar que se AWS pueda autenticar al solicitante. Para obtener más información, consulte Firmar las solicitudes de AWS API en la Guía del usuario de IAM.

La implementación de CORS en la API de Amazon EC2 está estandarizada. La aplicación puede enviar una solicitud sencilla a la API de Amazon EC2 o, según el contenido de la solicitud, una solicitud de verificación previa seguida de una solicitud real. Amazon EC2 permite la solicitud desde cualquier origen

Para obtener más información sobre CORS y ejemplos de su funcionamiento, consulte el siguiente artículo de la Red de desarrolladores de Mozilla: Control de acceso HTTP (CORS).

Solicitudes sencillas

Los siguientes son los criterios que definen una solicitud simple o real:

  • Las solicitudes solo utilizan los métodos GET o POST HTTP. Si se utiliza el POST método, solo Content-Type puede ser uno de los siguientes:application/x-www-form-urlencoded,multipart/form-data, otext/plain.

  • Las solicitudes no establecen encabezados personalizados, comoX-Other-Header.

Amazon EC2 permite la solicitud desde cualquier origen. Cualquier POST solicitud GET o solicitud que intente utilizar las credenciales del navegador estableciendo el Access-Control-Allow-Credentials valor en true (whereXMLHttpRequest.withCredentials = true) fallará.

La siguiente información describe los encabezados de las solicitudes a Amazon EC2:

Valores de encabezado de solicitud simples
  • Origin: especifica el dominio al que se quiere acceder al recurso (en este caso, el recurso es Amazon EC2). El navegador lo inserta en una solicitud de origen cruzado.

La siguiente información describe los encabezados de respuesta que Amazon EC2 devuelve (o no devuelve) tras una solicitud simple o real:

Valores de los encabezados de respuesta simples
  • Access-Control-Allow-Origin: especifica el dominio que puede acceder al recurso (en este caso, el recurso es Amazon EC2). Siempre se devuelve con un valor *. Por lo tanto, Amazon EC2 permite cualquier origen entre dominios y nunca permite las credenciales del navegador, como las cookies.

  • Access-Control-Allow-Credentials: Indica si las credenciales del navegador se pueden utilizar para realizar la solicitud real. Esto nunca se devuelve. Por lo tanto, el navegador debe interpretar el valor comoAccess-Control-Allow-Credentials: false.

Solicitudes previas al vuelo

Si el contenido de su solicitud cumple los criterios que se indican a continuación, se comprueba si la solicitud real debe enviarse. Una solicitud de verificación previa envía primero una solicitud HTTP al recurso (en este caso, Amazon EC2) mediante OPTIONS el método.

Los siguientes son los criterios que definen una solicitud de verificación previa:

  • Las solicitudes utilizan métodos HTTP distintos de GET oPOST. Sin embargo, si se utiliza el POST método, no Content-Type es uno de los siguientes:application/x-www-form-urlencoded,multipart/form-data, otext/plain.

  • Las solicitudes establecen encabezados personalizados; por ejemplo,X-Other-Header.

La implementación de Amazon EC2 CORS permite cualquier encabezado y permite cualquier origen en la solicitud real.

La siguiente información describe los encabezados de las solicitudes de verificación previa a Amazon EC2:

Valores del encabezado de solicitud de verificación previa
  • Origin: especifica el dominio al que se quiere acceder al recurso (en este caso, el recurso es Amazon EC2). El navegador lo inserta en una solicitud de origen cruzado.

  • Access-Control-Request-Method: El método HTTP que se utilizará en la solicitud real del navegador.

  • Access-Control-Request-Headers: Los encabezados personalizados que se enviarán en la solicitud de origen cruzado real.

La siguiente información se refiere a los encabezados de respuesta que Amazon EC2 devuelve (o no devuelve) tras una solicitud de verificación previa:

Valores de los encabezados de respuesta de Preflight
  • Access-Control-Allow-Origin: especifica el dominio que puede acceder al recurso (en este caso, el recurso es Amazon EC2). Siempre se devuelve con un valor *. Por lo tanto, Amazon EC2 permite cualquier origen entre dominios y nunca permite las credenciales del navegador, como las cookies.

  • Access-Control-Allow-Credentials: Indica si las credenciales del navegador se pueden utilizar para realizar la solicitud real. Amazon EC2 nunca lo devuelve. Por lo tanto, el navegador debe interpretar el valor comoAccess-Control-Allow-Credentials: false.

  • Access-Control-Expose-Headers: Permite que los encabezados estén expuestos al navegador. Amazon EC2 nunca lo devuelve. Por lo tanto, el dominio solicitante no puede leer ningún encabezado de devolución de Amazon EC2.

  • Access-Control-Max-Age: Especifica durante cuánto tiempo se pueden almacenar en caché los resultados de las solicitudes de verificación previa. El valor se establece en 1800 segundos (30 minutos).

  • Access-Control-Allow-Methods: Indica qué métodos están permitidos al realizar una solicitud real. Se permiten los siguientes métodos: GETPOST,OPTIONS,DELETE, yPUT. Esto también depende de cómo llame a la API de Amazon EC2; por ejemplo, mediante la API Query o mediante REST.

  • Access-Control-Allow-Headers: Indica qué encabezados se pueden usar en la solicitud real. Amazon EC2 acepta cualquier encabezado en las solicitudes de verificación previa. Si los encabezados HTTP no son relevantes en la solicitud real, se ignoran.