Utilisation du partage des ressources entre origines multiples (CORS) - Amazon Simple Storage Service

Utilisation du partage des ressources entre origines multiples (CORS)

Le partage des ressources cross-origin (CORS) définit un moyen pour les applications Web clientes chargées dans un domaine particulier d’interagir avec les ressources d’un autre domaine. Le CORS vous permet de créer de riches applications web côté client avec Amazon S3 et d’autoriser de manière sélective un accès cross-origin à vos ressources Amazon S3.

Cette section fournit une présentation du CORS. Les sous-rubriques décrivent comment activer le CORS grâce à la console Amazon S3, ou par programmation grâce à l’API REST Amazon S3 et aux kits AWS SDK.

Partage des ressources de plusieurs origines : scénarios de cas d’utilisation

Les exemples de scénarios suivants utilisent le partage CORS.

Scénario 1

Supposons que vous hébergiez un site Internet dans un compartiment Amazon S3 appelé website, comme décrit dans Hébergement d’un site Web statique à l’aide d’Amazon S3. Les utilisateurs chargent le point de terminaison du site web :

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

À présent, vous souhaitez utiliser JavaScript sur les pages web stockées dans ce compartiment pour pouvoir faire des demandes authentifiées GET et PUT sur le même compartiment grâce au point de terminaison de l’API d’Amazon S3 pour le compartiment, website.s3.us-east-1.amazonaws.com. En principe, un navigateur empêcherait JavaScript d’autoriser ces demandes, mais avec le partage CORS, vous pouvez configurer le compartiment pour autoriser explicitement les demandes cross-origin de website.s3-website.us-east-1.amazonaws.com.

Scénario 2

Supposons que vous souhaitez héberger une police web à partir de votre compartiment S3. Une fois encore, les navigateurs requièrent un contrôle CORS (aussi appelé contrôle en amont) pour le chargement des polices web. Vous configurez le compartiment qui héberge la police web pour permettre à toute origine d’effectuer ces demandes.

Comment Amazon S3 évalue la configuration CORS sur un compartiment ?

Lorsque Amazon S3 reçoit une demande en amont d’un navigateur, il évalue la configuration CORS du compartiment et utilise la première règle CORSRule qui correspond à la demande entrante du navigateur pour permettre une demande cross-origin. Pour qu’une règle corresponde, les conditions suivantes doivent être remplies :

  • L’en-tête Origin d’une demande CORS adressée à votre compartiment doit correspondre aux origines de l’élément AllowedOrigins de votre configuration CORS.

  • Les méthodes HTTP spécifiées dans Access-Control-Request-Method dans une demande CORS adressée à votre compartiment doivent correspondre à la ou aux méthodes répertoriées dans l’élément AllowedMethods de votre configuration CORS.

  • Les en-têtes répertoriés dans l’en-tête Access-Control-Request-Headers d’une demande de contrôle en amont doivent correspondre aux en-têtes de l’élément AllowedHeaders de votre configuration CORS.

Note

Les listes ACL et les politiques continuent de s’appliquer lorsque vous activez CORS sur votre compartiment.

Comment le point d’accès Object Lambda prend en charge le CORS

Quand S3 Object Lambda reçoit une demande d'un navigateur ou que la demande inclut un en-tête Origin, S3 Object Lambda ajoute toujours un champ d'en-tête "AllowedOrigins":"*".

Pour plus d’informations sur l’utilisation du CORS, consultez les rubriques suivantes.