

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Cross-origin support pour le partage de ressources et Amazon EC2
<a name="cors-support"></a>

L'API Amazon EC2 prend en charge le partage de ressources entre origines (CORS). CORS définit un moyen pour les applications Web clientes chargées dans un domaine d'interagir avec les ressources d'un autre domaine. Pour plus d'informations, consultez la [recommandation du W3C sur le partage des Cross-Origin ressources](http://www.w3.org/TR/cors/). Grâce au support CORS pour Amazon EC2, vous pouvez créer des applications Web riches côté client qui utilisent l'API Amazon EC2. Supposons, par exemple, que vous hébergiez un site Web et que vous souhaitiez l'utiliser JavaScript sur vos pages Web pour envoyer des requêtes à l'API Amazon EC2. `mywebsite.example.com` Normalement, un navigateur bloque l'autorisation JavaScript de ces requêtes, mais avec CORS, vous pouvez effectuer des appels d'API Amazon EC2 provenant de différentes origines. `mywebsite.example.com`

CORS est déjà activé pour l'API Amazon EC2 et est prêt à être utilisé. Vous n'avez pas besoin d'effectuer d'étapes de configuration supplémentaires pour commencer à utiliser cette fonctionnalité. La façon dont vous passez des appels à l'API Amazon EC2 n'a pas changé ; ils doivent toujours être signés avec des AWS informations d'identification valides pour garantir AWS l'authentification du demandeur. Pour plus d'informations, consultez la section [Signature des demandes AWS d'API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) dans le *guide de l'utilisateur IAM*.

L'implémentation de CORS dans l'API Amazon EC2 est standardisée. Votre application peut envoyer une simple demande à l'API Amazon EC2 ou, selon le contenu de la demande, une demande de pré-vol suivie d'une demande réelle. Amazon EC2 autorise la demande depuis n'importe quelle origine

Pour plus d'informations sur CORS et des exemples de son fonctionnement, consultez l'article suivant sur le Mozilla Developer Network : [Contrôle d'accès HTTP (CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS)).

## Demandes simples
<a name="cors-simple"></a>

Les critères qui définissent une demande simple ou réelle sont les suivants :
+ Les requêtes utilisent uniquement les méthodes `GET` ou `POST` HTTP. Si la `POST` méthode est utilisée, il ne `Content-Type` peut s'agir que de l'une des méthodes suivantes : `application/x-www-form-urlencoded``multipart/form-data`, ou`text/plain`.
+ Les demandes ne définissent pas d'en-têtes personnalisés, tels que`X-Other-Header`.

Amazon EC2 autorise la demande depuis n'importe quelle origine. Toute `GET` `POST` demande qui tente d'utiliser les informations d'identification du navigateur en définissant la `Access-Control-Allow-Credentials` valeur sur `true` (où`XMLHttpRequest.withCredentials = true`) échouera. 

Les informations suivantes décrivent les en-têtes de demande adressés à Amazon EC2 :

**Valeurs d'en-tête de demande simples**
+ `Origin`: Spécifie le domaine qui souhaite accéder à la ressource (dans ce cas, la ressource est Amazon EC2). Ceci est inséré par le navigateur dans une demande d'origine croisée.

Les informations suivantes décrivent les en-têtes de réponse qu'Amazon EC2 renvoie (ou ne renvoie pas) après une demande simple ou réelle :

**Valeurs d'en-tête de réponse simples**
+ `Access-Control-Allow-Origin`: Spécifie le domaine qui peut accéder à la ressource (dans ce cas, la ressource est Amazon EC2). Ceci est toujours renvoyé avec une valeur \*. Par conséquent, Amazon EC2 autorise toute origine interdomaines et n'autorise jamais les informations d'identification du navigateur, telles que les cookies. 
+ `Access-Control-Allow-Credentials`: indique si les informations d'identification du navigateur peuvent être utilisées pour effectuer la demande proprement dite. Cela n'est jamais rendu. Par conséquent, le navigateur doit interpréter la valeur comme`Access-Control-Allow-Credentials: false`.

## Demandes avant le vol
<a name="cors-preflight"></a>

Si le contenu de votre demande répond aux critères ci-dessous, votre demande est vérifiée pour savoir si la demande doit être envoyée. Une demande de prévol envoie d'abord une requête HTTP à la ressource (dans ce cas, Amazon EC2) à l'aide `OPTIONS` de la méthode. 

Les critères qui définissent une demande de pré-vol sont les suivants :
+ Les demandes utilisent des méthodes HTTP autres que `GET` ou`POST`. Toutefois, si la `POST` méthode est utilisée, il ne `Content-Type` s'agit pas de l'une des méthodes suivantes : `application/x-www-form-urlencoded``multipart/form-data`, ou`text/plain`.
+ Les demandes définissent des en-têtes personnalisés ; par exemple,`X-Other-Header`.

L'implémentation d'Amazon EC2 CORS autorise tous les en-têtes et autorise n'importe quelle origine dans la demande elle-même. 

Les informations suivantes décrivent les en-têtes de demande pour une demande de pré-vol adressée à Amazon EC2 :

**Valeurs d'en-tête des demandes de pré-vol**
+ `Origin`: Spécifie le domaine qui souhaite accéder à la ressource (dans ce cas, la ressource est Amazon EC2). Ceci est inséré par le navigateur dans une demande d'origine croisée.
+ `Access-Control-Request-Method`: méthode HTTP à utiliser dans la requête réelle provenant du navigateur.
+ `Access-Control-Request-Headers`: Les en-têtes personnalisés à envoyer dans la demande cross-origin réelle.

Les informations suivantes concernent les en-têtes de réponse qu'Amazon EC2 renvoie (ou ne renvoie pas) après une demande préalable au vol :

**Valeurs d'en-tête de réponse avant le vol**
+ `Access-Control-Allow-Origin`: Spécifie le domaine qui peut accéder à la ressource (dans ce cas, la ressource est Amazon EC2). Ceci est toujours renvoyé avec une valeur \*. Par conséquent, Amazon EC2 autorise toute origine interdomaines et n'autorise jamais les informations d'identification du navigateur, telles que les cookies. 
+ `Access-Control-Allow-Credentials`: indique si les informations d'identification du navigateur peuvent être utilisées pour effectuer la demande proprement dite. Ce document n'est jamais renvoyé par Amazon EC2. Par conséquent, le navigateur doit interpréter la valeur comme`Access-Control-Allow-Credentials: false`. 
+ `Access-Control-Expose-Headers`: Permet d'exposer les en-têtes au navigateur. Ce document n'est jamais renvoyé par Amazon EC2. Par conséquent, aucun en-tête de retour d'Amazon EC2 ne peut être lu par le domaine demandeur. 
+ `Access-Control-Max-Age`: Spécifie la durée pendant laquelle les résultats des demandes de pré-vol peuvent être mis en cache. La valeur est définie sur 1800 secondes (30 minutes).
+ `Access-Control-Allow-Methods`: indique quelles méthodes sont autorisées lors d'une demande réelle. Les méthodes suivantes sont autorisées : `GET``POST`,`OPTIONS`,`DELETE`, et`PUT`. Cela dépend également de la manière dont vous appelez l'API Amazon EC2 ; par exemple, à l'aide de l'API Query ou à l'aide de REST.
+ `Access-Control-Allow-Headers`: indique quels en-têtes peuvent être utilisés dans la demande réelle. Amazon EC2 accepte tous les en-têtes des demandes préalables au vol. Si les en-têtes HTTP ne sont pas pertinents dans la demande elle-même, ils sont ignorés.