Éléments d'une CORS configuration - Amazon Simple Storage Service

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.

Éléments d'une CORS configuration

Pour configurer votre compartiment afin d'autoriser les demandes d'origine croisée, vous devez créer une CORS configuration. La CORS configuration est un document contenant des éléments qui identifient les origines que vous autoriserez à accéder à votre bucket, les opérations (HTTPméthodes) que vous prendrez en charge pour chaque origine et d'autres informations spécifiques aux opérations. Vous pouvez ajouter jusqu'à 100 règles à la configuration. Vous pouvez ajouter la CORS configuration en tant que cors sous-ressource au bucket.

Si vous configurez CORS dans la console S3, vous devez utiliser JSON pour créer une CORS configuration. La nouvelle console S3 ne prend en charge que les JSON CORS configurations.

Pour plus d'informations sur la CORS configuration et ses éléments, consultez les rubriques ci-dessous. Pour obtenir des instructions sur la façon d'ajouter une CORS configuration, consultezConfiguration du partage de ressources entre origines () CORS.

Important

Dans la console S3, la CORS configuration doit êtreJSON.

Élément AllowedMethods

Dans la CORS configuration, vous pouvez spécifier les valeurs suivantes pour l'AllowedMethodsélément.

  • GET

  • PUT

  • POST

  • DELETE

  • HEAD

Élément AllowedOrigins

Dans l'élément AllowedOrigins, vous spécifiez les origines à partir desquelles vous souhaitez autoriser des demandes cross-domaine, par exemple, http://www.example.com. La chaîne de caractères d'origine peut contenir au maximum un caractère générique *, comme http://*.example.com. Si vous le souhaitez, vous pouvez spécifier * comme l'origine pour permettre à toutes les origines d'envoyer des demandes cross-origin. Vous pouvez également spécifier https pour permettre uniquement les origines sécurisées.

Élément AllowedHeaders

L'élément AllowedHeaders spécifie les en-têtes autorisés dans une demande en amont via l'en-tête Access-Control-Request-Headers. Chaque nom d'en-tête figurant dans l'Access-Control-Request-Headersen-tête doit correspondre à une entrée correspondante dans l'élément. Amazon S3 envoie uniquement dans une réponse les en-têtes autorisés qui ont été demandés. Pour obtenir une liste d'exemples d'en-têtes pouvant être utilisés dans les demandes adressées à Amazon S3, consultez la section Common Request Headers du guide de APIréférence Amazon Simple Storage Service.

Chaque AllowedHeaders chaîne de votre configuration peut contenir au plus un caractère générique *. Par exemple, <AllowedHeader>x-amz-*</AllowedHeader> permet tous les en-têtes propres à Amazon.

Élément ExposeHeaders

Chaque ExposeHeader élément identifie un en-tête dans la réponse auquel vous souhaitez que les clients puissent accéder depuis leurs applications (par exemple, depuis un JavaScript XMLHttpRequest objet). Pour obtenir la liste des en-têtes de réponse Amazon S3 les plus courants, consultez la section Common Response Headers du guide de APIréférence Amazon Simple Storage Service.

Élément MaxAgeSeconds

L'MaxAgeSecondsélément indique le temps en secondes pendant lequel votre navigateur peut mettre en cache la réponse à une demande de prévol, telle qu'identifiée par la ressource, la HTTP méthode et l'origine.

Exemples de CORS configurations

Au lieu d'accéder à un site web en utilisant un point de terminaison de site web Amazon S3, vous pouvez utiliser votre propre domaine, comme example1.com, pour proposer votre contenu. Pour plus d'informations sur l'utilisation de votre propre domaine, consultez Tutoriel : configuration d'un site Web statique à l'aide d'un domaine personnalisé enregistré auprès de Route 53.

L'exemple de CORS configuration suivant comporte trois règles, qui sont spécifiées sous forme d'CORSRuleéléments :

  • La première règle autorise les origines croisées PUT et POST les DELETE demandes provenant de l'http://www.example1.comorigine. La règle autorise également tous les en-têtes d'une OPTIONS demande de pré-vol via l'Access-Control-Request-Headersen-tête. En réponse aux OPTIONS demandes préalables au vol, Amazon S3 renvoie les en-têtes demandés.

  • La deuxième règle autorise les mêmes demandes cross-origin que la première, mais elle s'applique à une autre origine, http://www.example2.com.

  • La troisième règle autorise les GET demandes provenant de toutes les origines. Le caractère générique * fait référence à toutes les origines.

JSON
[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "PUT", "POST", "DELETE" ], "AllowedOrigins": [ "http://www.example1.com" ], "ExposeHeaders": [] }, { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "PUT", "POST", "DELETE" ], "AllowedOrigins": [ "http://www.example2.com" ], "ExposeHeaders": [] }, { "AllowedHeaders": [], "AllowedMethods": [ "GET" ], "AllowedOrigins": [ "*" ], "ExposeHeaders": [] } ]
XML
<CORSConfiguration> <CORSRule> <AllowedOrigin>http://www.example1.com</AllowedOrigin> <AllowedMethod>PUT</AllowedMethod> <AllowedMethod>POST</AllowedMethod> <AllowedMethod>DELETE</AllowedMethod> <AllowedHeader>*</AllowedHeader> </CORSRule> <CORSRule> <AllowedOrigin>http://www.example2.com</AllowedOrigin> <AllowedMethod>PUT</AllowedMethod> <AllowedMethod>POST</AllowedMethod> <AllowedMethod>DELETE</AllowedMethod> <AllowedHeader>*</AllowedHeader> </CORSRule> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> </CORSRule> </CORSConfiguration>

La CORS configuration autorise également des paramètres de configuration facultatifs, comme indiqué dans la CORS configuration suivante. Dans cet exemple, la CORS configuration autorise les origines croisées et PUT POST les DELETE demandes provenant de l'http://www.example.comorigine.

JSON
[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "PUT", "POST", "DELETE" ], "AllowedOrigins": [ "http://www.example.com" ], "ExposeHeaders": [ "x-amz-server-side-encryption", "x-amz-request-id", "x-amz-id-2" ], "MaxAgeSeconds": 3000 } ]
XML
<CORSConfiguration> <CORSRule> <AllowedOrigin>http://www.example.com</AllowedOrigin> <AllowedMethod>PUT</AllowedMethod> <AllowedMethod>POST</AllowedMethod> <AllowedMethod>DELETE</AllowedMethod> <AllowedHeader>*</AllowedHeader> <MaxAgeSeconds>3000</MaxAgeSeconds> <ExposeHeader>x-amz-server-side-encryption</ExposeHeader> <ExposeHeader>x-amz-request-id</ExposeHeader> <ExposeHeader>x-amz-id-2</ExposeHeader> </CORSRule> </CORSConfiguration>

L'élément CORSRule dans la configuration précédente inclut les éléments facultatifs suivants :

  • MaxAgeSeconds—Spécifie la durée en secondes (dans cet exemple, 3 000) pendant laquelle le navigateur met en cache une réponse Amazon S3 à une OPTIONS demande de prévol pour la ressource spécifiée. Le fait de mettre en cache la réponse évite au navigateur de devoir envoyer les demandes en amont à Amazon S3 si la demande originale est répétée.

  • ExposeHeaders—Identifie les en-têtes de réponse (dans cet exemplex-amz-server-side-encryption,x-amz-request-id, etx-amz-id-2) auxquels les clients peuvent accéder depuis leurs applications (par exemple, depuis un JavaScript XMLHttpRequest objet).