

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.

# Partage de ressources entre origines (CORS) dans Lightsail
<a name="configure-cors"></a>

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. Avec le support CORS, vous pouvez créer des applications Web riches côté client avec le stockage d'objets Lightsail et autoriser de manière sélective un accès multi-origine aux ressources de votre bucket. Pour plus d'informations sur le CORS, voir [Qu'est-ce que le CORS](https://aws.amazon.com/what-is/cross-origin-resource-sharing/) ? .

Cette section explique comment configurer CORS pour vos compartiments Lightsail à l'aide de (). AWS Command Line Interface AWS CLI Pour configurer votre compartiment afin d'autoriser les demandes d'origine croisée, vous ajoutez une configuration CORS au compartiment à l'aide d'un document JSON qui définit les règles identifiant les origines que vous autoriserez à accéder à votre compartiment, les opérations (méthodes HTTP) prises en charge pour chaque origine et d'autres informations spécifiques aux opérations.

**Topics**
+ [

## Cas d'utilisation du CORS
](#cors-use-cases)
+ [

# Comment Lightsail évalue les configurations CORS
](cors-how-evaluation-works.md)
+ [

# Configurez CORS à l'aide du AWS CLI
](cors-configuration-cli.md)
+ [

# Dépannage du CORS
](cors-troubleshooting.md)

## Cas d'utilisation du CORS
<a name="cors-use-cases"></a>

L'exemple de scénario suivant explique comment vous pourriez avoir besoin de configurer CORS avec des buckets Lightsail.

**Scénario : hébergement de polices Web**  
Supposons que vous souhaitiez héberger des polices Web à partir de votre bucket Lightsail. Les navigateurs nécessitent une vérification CORS (également appelée vérification préalable au vol) pour charger les polices Web. Vous devez configurer le compartiment hébergeant la police Web pour autoriser n'importe quelle origine à effectuer ces demandes.

# Comment Lightsail évalue les configurations CORS
<a name="cors-how-evaluation-works"></a>

Lorsque le stockage d'objets Lightsail reçoit une demande de prévol d'un navigateur, il évalue la configuration CORS du compartiment et utilise la première règle CORS correspondant à la demande de navigateur entrante pour activer une demande d'origine croisée. Pour qu’une règle corresponde, les conditions suivantes doivent être remplies :
+ L'`Origin`en-tête de la demande doit correspondre à l'origine de l'`AllowedOrigins`élément.
+ La méthode HTTP spécifiée dans l'`Access-Control-Request-Method`en-tête doit correspondre à une méthode de l'`AllowedMethods`élément.
+ Les en-têtes listés dans l'`Access-Control-Request-Headers`en-tête doivent correspondre aux en-têtes de l'`AllowedHeaders`élément.

**Note**  
Les autorisations de compartiment continuent de s'appliquer lorsque vous activez CORS sur votre compartiment. La configuration CORS détermine uniquement si le navigateur autorise le traitement de la demande d'origine croisée. Pour de plus amples informations, veuillez consulter [Contrôlez l'accès aux buckets et aux objets Lightsail](amazon-lightsail-understanding-bucket-permissions.md).

## Éléments d’une configuration CORS
<a name="cors-configuration-elements"></a>

Une configuration CORS est un document JSON qui contient un tableau de règles CORS. Chaque règle définit les origines autorisées à accéder au bucket, les méthodes HTTP autorisées et les autres options de configuration.

Les éléments suivants peuvent être inclus dans une règle CORS :

**Origines autorisées**  
Spécifie les origines autorisées à accéder au bucket. Vous pouvez utiliser des caractères génériques (\$1) pour autoriser toutes les origines ou spécifier des domaines spécifiques tels que`https://example.com`.

**Méthodes autorisées**  
Spécifie les méthodes HTTP autorisées pour les origines spécifiées. Les valeurs valides incluent GET, PUT, POST, DELETE et HEAD.

**En-têtes autorisés**  
Spécifie quels en-têtes sont autorisés dans une demande OPTIONS de prévol via l' Access-Control-Request-Headersen-tête.

**exposeHeaders**  
Spécifie les en-têtes de la réponse auxquels l'application cliente peut accéder.

**id**  
Identifiant unique pour la règle CORS.

**maxAgeSeconds**  
Spécifie la durée en secondes pendant laquelle le navigateur peut mettre en cache la réponse à une demande de prévol.

Pour plus d'informations sur ces paramètres, consultez le [BucketCorsRule](https://docs.aws.amazon.com/lightsail/2016-11-28/api-reference/API_BucketCorsRule.html)manuel *Amazon Lightsail* API Reference.

# Configurez CORS à l'aide du AWS CLI
<a name="cors-configuration-cli"></a>

Vous pouvez configurer CORS pour votre bucket Lightsail à l'aide AWS CLI du paramètre with. `--cors` Ce paramètre accepte un fichier JSON contenant votre configuration CORS. Pour plus d'informations sur les éléments d'une configuration CORS, consultez[Éléments d’une configuration CORS](cors-how-evaluation-works.md#cors-configuration-elements).

**Topics**
+ [

## Appliquer une configuration CORS
](#cors-configuration-apply)
+ [

## Exemples de configurations CORS
](#cors-configuration-examples)
+ [

## Supprimer les configurations CORS
](#cors-remove-configuration)

## Appliquer une configuration CORS
<a name="cors-configuration-apply"></a>

La procédure suivante montre comment appliquer une configuration CORS à un bucket en spécifiant un fichier JSON. Pour d'autres exemples de configurations, voir[Exemples de configurations CORS](#cors-configuration-examples).

**Pour configurer CORS pour un bucket à l'aide du AWS CLI**

1. Créez un fichier JSON contenant votre configuration CORS. Par exemple, créez un fichier nommé `cors-config.json` avec le contenu suivant :

   ```
   {
     "CORSRules": [
       {
         "AllowedOrigins": ["https://example.com"],
         "AllowedMethods": ["GET", "PUT", "POST"],
         "AllowedHeaders": ["*"],
         "MaxAgeSeconds": 3000
       }
     ]
   }
   ```

1. Utilisez le AWS CLI pour appliquer la configuration CORS à votre bucket :

   ```
   aws lightsail update-bucket --bucket-name amzn-s3-demo-bucket --cors file://cors-config.json
   ```

1. Vérifiez que la configuration CORS a été correctement appliquée :

   ```
   aws lightsail get-buckets --bucket-name amzn-s3-demo-bucket --include-cors
   ```

**Note**  
*amzn-s3-demo-bucket*Remplacez-le par le nom de votre bucket Lightsail.

## Exemples de configurations CORS
<a name="cors-configuration-examples"></a>

Les exemples suivants présentent des configurations CORS courantes pour différents cas d'utilisation.

**Exemple 1 : Autoriser toutes les origines et méthodes**  
Cette configuration permet à toutes les origines d'accéder à votre bucket à l'aide de n'importe quelle méthode HTTP :

```
{
    "CORSRules": [
      {
        "AllowedOrigins": ["*"],
        "AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
        "AllowedHeaders": ["*"],
        "MaxAgeSeconds": 3000
      }
    ]
  }
```

**Exemple 2 : Restreindre à un domaine spécifique**  
Cette configuration autorise uniquement les demandes provenant de `https://mywebsite.com` :

```
{
    "CORSRules": [
      {
        "AllowedOrigins": ["https://mywebsite.com"],
        "AllowedMethods": ["GET", "PUT"],
        "AllowedHeaders": ["Authorization", "Content-Type"],
        "ExposeHeaders": ["ETag"],
        "MaxAgeSeconds": 3600
      }
    ]
  }
```

**Exemple 3 : règles multiples pour différentes origines**  
Cette configuration définit différentes règles pour différentes origines :

```
{
    "CORSRules": [
      {
        "AllowedOrigins": ["https://mywebsite.com"],
        "AllowedMethods": ["GET", "PUT", "POST"],
        "AllowedHeaders": ["*"],
        "MaxAgeSeconds": 3600
      },
      {
        "AllowedOrigins": ["https://cdn.mywebsite.com"],
        "AllowedMethods": ["GET"],
        "AllowedHeaders": ["Authorization"],
        "MaxAgeSeconds": 86400
      }
    ]
  }
```

## Supprimer les configurations CORS
<a name="cors-remove-configuration"></a>

Pour supprimer la configuration CORS de votre compartiment, utilisez la AWS CLI commande suivante :

```
aws lightsail update-bucket --bucket-name amzn-s3-demo-bucket --cors '{"rules":[]}'
```

**Note**  
*amzn-s3-demo-bucket*Remplacez-le par le nom de votre bucket Lightsail.

Une fois la configuration CORS supprimée, les requêtes provenant de plusieurs origines envoyées à votre bucket seront bloquées par les navigateurs.

# Dépannage du CORS
<a name="cors-troubleshooting"></a>

Si vous rencontrez des problèmes avec CORS, vérifiez les points suivants :
+ **Vérifiez la configuration CORS** : assurez-vous que votre configuration CORS est correctement formatée en JSON et inclut les règles nécessaires à votre cas d'utilisation.
+ **Vérifier la correspondance d'origine** — L'origine de votre demande doit correspondre exactement à une entrée de la `AllowedOrigins` liste. Le protocole (http/https), le sous-domaine et le port doivent correspondre exactement.
+ **Vérifier les méthodes HTTP** : assurez-vous que la méthode HTTP que vous utilisez est répertoriée dans la `AllowedMethods` liste correspondant à la règle correspondante.
+ **Vérifiez les outils de développement du navigateur** : utilisez les outils de développement de votre navigateur pour inspecter la demande et la réponse OPTIONS avant le vol afin d'identifier toute erreur liée au CORS.
+ **Valider les autorisations du bucket** : assurez-vous que votre bucket dispose des autorisations appropriées configurées en plus de CORS. CORS ne contrôle que l'accès inter-origines basé sur le navigateur, et non les autorisations au niveau du bucket.

Si vous devez supprimer la configuration CORS de votre compartiment pendant le dépannage, consultez. [Supprimer les configurations CORS](cors-configuration-cli.md#cors-remove-configuration)