Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Dépannage du CORS

Mode de mise au point
Dépannage du CORS - 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.

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.

Les rubriques suivantes peuvent vous aider à résoudre certains problèmes CORS courants liés à S3.

Erreur 403 Forbidden : CORS n’est pas activé pour ce compartiment

L’erreur 403 Forbidden suivante se produit lorsqu’une demande entre origines multiples est envoyée à Amazon S3 mais que CORS n’est pas configuré sur votre compartiment S3.

Erreur : HTTP/1.1 403 Forbidden CORS Response: CORS is not enabled for this bucket.

La configuration CORS est un document ou une politique contenant des règles qui identifient les origines auxquelles vous autorisez l’accès à votre compartiment, les opérations (méthodes HTTP) prises en charge pour chaque origine, et d’autres informations propres aux opérations. Découvrez comment configurer CORS sur S3 à l'aide de la console Amazon S3 et de l'API REST. AWS SDKs Pour plus d’informations sur CORS et des exemples de configuration CORS, consultez Éléments de CORS.

Erreur 403 Forbidden : cette demande CORS n’est pas autorisée

L’erreur 403 Forbidden suivante est reçue lorsqu’une règle CORS de votre configuration CORS ne correspond pas aux données de votre demande.

Erreur : HTTP/1.1 403 Forbidden CORS Response: This CORS request is not allowed.

Par conséquent, cette erreur 403 Forbidden peut se produire pour plusieurs raisons :

  • L’origine n’est pas autorisée.

  • Les méthodes ne sont pas autorisées.

  • Les en-têtes demandés ne sont pas autorisés.

Pour chaque demande reçue par Amazon S3, vous devez disposer dans votre configuration CORS d’une règle CORS correspondant aux données de votre demande.

L’origine n’est pas autorisée

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. Un caractère générique ("*") dans l’élément AllowedOrigins correspondrait à toutes les méthodes HTTP. Pour plus d’informations sur la façon de mettre à jour l’élément AllowedOrigins, consultez Configuration du partage des ressources entre origines multiples (CORS).

Par exemple, si seul le domaine http://www.example1.com est inclus dans l’élément AllowedOrigins, une demande CORS envoyée depuis le domaine http://www.example2.com recevra l’erreur 403 Forbidden.

L’exemple suivant montre une partie d’une configuration CORS qui inclut le domaine http://www.example1.com dans l’élément AllowedOrigins.

"AllowedOrigins":[ "http://www.example1.com" ]

Pour qu’une demande CORS envoyée depuis le domaine http://www.example2.com aboutisse, le domaine http://www.example2.com doit être inclus dans l’élément AllowedOrigins de la configuration CORS.

"AllowedOrigins":[ "http://www.example1.com" "http://www.example2.com" ]

Les méthodes ne sont pas autorisées

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. Un caractère générique ("*") dans AllowedMethods correspondrait à toutes les méthodes HTTP. Pour plus d’informations sur la façon de mettre à jour l’élément AllowedOrigins, consultez Configuration du partage des ressources entre origines multiples (CORS).

Dans une configuration CORS, vous pouvez spécifier les méthodes suivantes dans l’élément AllowedMethods :

  • GET

  • PUT

  • POST

  • DELETE

  • HEAD

L’exemple suivant montre une partie d’une configuration CORS qui inclut la méthode GET dans l’élément AllowedMethods. Seules les demandes incluant la méthode GET aboutiront.

"AllowedMethods":[ "GET" ]

Si une méthode HTTP (par exemple, PUT) était utilisée dans une demande CORS ou incluse dans une demande CORS de contrôle en amont adressée à votre compartiment mais que la méthode n’était pas présente dans votre configuration CORS, la demande entraînerait une erreur 403 Forbidden. Pour autoriser cette demande CORS ou cette demande CORS de contrôle en amont, vous devez ajouter la méthode PUT à votre configuration CORS.

"AllowedMethods":[ "GET" "PUT" ]

Les en-têtes demandés ne sont pas autorisés

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. Pour obtenir la liste des en-têtes courants qui peuvent être utilisés dans les demandes adressées à Amazon S3, consultez En-têtes de demandes courants. Pour plus d’informations sur la façon de mettre à jour l’élément AllowedHeaders, consultez Configuration du partage des ressources entre origines multiples (CORS).

L’exemple suivant montre une partie d’une configuration CORS qui inclut l’en-tête Authorization dans l’élément AllowedHeaders. Seules les demandes relatives à l’en-tête Authorization aboutiront.

"AllowedHeaders": [ "Authorization" ]

Si un en-tête (par exemple, Content-MD5) était inclus dans une demande CORS mais qu’il n’était pas présent dans votre configuration CORS, la demande entraînerait une erreur 403 Forbidden. Pour autoriser cette demande CORS, vous devez ajouter l’en-tête Content-MD5 à votre configuration CORS. Si vous souhaitez transmettre à la fois les en-têtes Authorization et Content-MD5 dans une demande CORS à votre compartiment, vérifiez que les deux en-têtes sont inclus dans l’élément AllowedHeaders de votre configuration CORS.

"AllowedHeaders": [ "Authorization" "Content-MD5" ]

En-têtes introuvables dans la réponse CORS

L’élément ExposeHeaders de votre configuration CORS identifie les en-têtes de réponse que vous souhaiteriez rendre accessibles aux scripts et aux applications exécutés dans les navigateurs, en réponse à une demande CORS.

Si vos objets stockés dans votre compartiment S3 comportent des métadonnées définies par l'utilisateur (par exemple,x-amz-meta-custom-header) en plus des données de réponse, cet en-tête personnalisé peut contenir des métadonnées ou des informations supplémentaires auxquelles vous souhaitez accéder à partir de votre code côté client JavaScript . Toutefois, par défaut, les navigateurs bloquent l’accès aux en-têtes personnalisés pour des raisons de sécurité. Pour permettre à votre client JavaScript d'accéder aux en-têtes personnalisés, vous devez inclure l'en-tête dans votre configuration CORS.

Dans l’exemple ci-dessous, l’en-tête x-amz-meta-custom-header1 est inclus dans l’élément ExposeHeaders. L’élément x-amz-meta-custom-header2 n’est pas inclus dans l’élément ExposeHeaders et est absent de la configuration CORS. Dans la réponse, seules les valeurs incluses dans l’élément ExposeHeaders seraient renvoyées. Si la demande incluait l’en-tête x-amz-meta-custom-header2 dans l’en-tête Access-Control-Expose-Headers, la réponse renverrait toujours un 200 OK. Toutefois, seul l’en-tête autorisé (par exemple, x-amz-meta-custom-header) serait renvoyé et affiché dans la réponse.

"ExposeHeaders": [ "x-amz-meta-custom-header1" ]

Pour vous assurer que tous les en-têtes apparaîtront dans la réponse, ajoutez tous les en-têtes autorisés à l’élément ExposeHeaders dans votre configuration CORS, comme indiqué ci-dessous.

"ExposeHeaders": [ "x-amz-meta-custom-header1", "x-amz-meta-custom-header2" ]

Considérations relatives à CORS sur les intégrations de proxy S3

Si vous rencontrez des erreurs et que vous avez déjà vérifié la configuration CORS sur votre compartiment S3 et que la demande cross-origin est envoyée à des proxys tels que AWS CloudFront, essayez ce qui suit :

  • Configurez les paramètres pour autoriser la méthode OPTIONS pour les requêtes HTTP.

  • Configurez le proxy pour transférer les en-têtes suivants : Origin, Access-Control-Request-Headers et Access-Control-Request-Method.

Certains proxys fournissent des fonctionnalités prédéfinies pour les demandes CORS. Par exemple, dans CloudFront, vous pouvez configurer une politique qui inclut les en-têtes

qui activent les demandes de partage de ressources entre origines multiples (CORS) lorsque l’origine est un compartiment Amazon S3.

Cette stratégie possède les paramètres suivants :

  • En-têtes inclus dans les demandes d’origine :

    Origin

    Access-Control-Request-Headers

    Access-Control-Request-Method

  • Cookies inclus dans les demandes d’origine : Aucun

  • Chaînes de requête incluses dans les demandes d’origine : Aucune

Pour plus d'informations, consultez les sections Contrôler les demandes d'origine à l'aide d'une politique et Utiliser des politiques de demande d'origine gérées dans le Guide du CloudFront développeur.

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.