

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.

# Restriction de l’accès à une origine Amazon S3
<a name="private-content-restricting-access-to-s3"></a>

CloudFront propose deux méthodes pour envoyer des demandes authentifiées à une origine Amazon S3 : le *contrôle d'accès à l'origine* (OAC) et l'*identité d'accès à l'origine* (OAI). L’OAC vous permet de sécuriser vos origines, telles qu’Amazon S3. 

Nous vous *recommandons* d’utiliser l’OAC à la place, car il prend en charge les fonctionnalités suivantes :
+ Tous les compartiments Amazon S3 en tout Régions AWS, y compris les régions optionnelles lancées après décembre 2022
+ [Chiffrement côté serveur avec AWS KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) (SSE-KMS) Amazon S3
+ Demandes dynamiques (`PUT` et `DELETE`) vers Amazon S3

L’OAI ne prend pas en charge ces fonctionnalités ou nécessite des solutions de contournement supplémentaires dans ces scénarios. Si vous utilisez déjà OAI et que vous souhaitez effectuer une migration, consultez [Migration de l'identité d'accès à l'origine (OAI) vers le contrôle d'accès à l'origine (OAC)](#migrate-from-oai-to-oac).

**Remarques**  
Lorsque vous utilisez l' CloudFront OAC avec les origines des compartiments Amazon S3, vous devez définir **Amazon S3 Object Ownership** pour que le **propriétaire du compartiment soit appliqué**, ce qui est le cas par défaut pour les nouveaux compartiments Amazon S3. Si nécessaire ACLs, utilisez le paramètre **préféré du propriétaire du compartiment** pour garder le contrôle sur les objets chargés via CloudFront.
Si votre origine est un compartiment Amazon S3 configuré comme point de [terminaison de site Web](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteEndpoints.html), vous devez le configurer en CloudFront tant qu'origine personnalisée. Cela signifie que vous ne pouvez pas utiliser OAC (ou OAI). L’OAC ne prend pas en charge la redirection d’origine à l’aide de Lambda@Edge.

Les rubriques suivantes décrivent comment utiliser l'origine Amazon S3. 

**Rubriques**
+ [Création d’un nouveau contrôle d’accès d’origine](#create-oac-overview-s3)
+ [Suppression d’une distribution avec un OAC associé à un compartiment S3](#delete-oac-distribution-s3)
+ [Migration de l'identité d'accès à l'origine (OAI) vers le contrôle d'accès à l'origine (OAC)](#migrate-from-oai-to-oac)
+ [Paramètres avancés pour le contrôle d'accès à l'origine](#oac-advanced-settings-s3)

## Création d’un nouveau contrôle d’accès d’origine
<a name="create-oac-overview-s3"></a>

Suivez les étapes décrites dans les rubriques suivantes pour configurer un nouveau contrôle d'accès à l'origine dans CloudFront.

**Topics**
+ [Conditions préalables](#oac-prerequisites-s3)
+ [Accorder l' CloudFront autorisation d'accéder au compartiment S3](#oac-permission-to-access-s3)
+ [Création du contrôle d’accès d’origine](#create-oac-s3)

### Conditions préalables
<a name="oac-prerequisites-s3"></a>

Avant de créer et de configurer le contrôle d'accès à l'origine (OAC), vous devez disposer d'une CloudFront distribution avec une origine de compartiment Amazon S3. Cette origine doit être un compartiment S3 normal, et non un compartiment configuré en tant que [point de terminaison](https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteEndpoints.html). Pour plus d'informations sur la configuration d'une CloudFront distribution avec une origine de compartiment S3, consultez[Commencez avec une distribution CloudFront standard](GettingStarted.SimpleDistribution.md).

**Important**  
Lorsque vous utilisez OAC pour sécuriser votre origine Amazon S3, la communication entre Amazon S3 CloudFront et Amazon S3 se fait *toujours* via HTTPS, mais uniquement lorsque vous choisissez de *toujours signer les demandes*. Vous devez choisir **Signer les demandes (recommandé)** dans la console ou les spécifier `always` dans l' CloudFront API AWS CLI, ou CloudFormation.   
Si vous choisissez plutôt l'option **Ne pas signer les demandes** ou **Ne pas remplacer l'en-tête d'autorisation**, utilisez le CloudFront protocole de connexion que vous avez spécifié dans les politiques suivantes :  
[Politique du protocole Viewer](using-https-viewers-to-cloudfront.md) 
[Stratégie de protocole de l’origine](DownloadDistValuesOrigin.md#DownloadDistValuesOriginProtocolPolicy) (origines personnalisées uniquement)
Par exemple, si vous choisissez **Ne pas remplacer l'en-tête d'autorisation** et que vous souhaitez utiliser le protocole HTTPS entre CloudFront et votre origine Amazon S3, utilisez **Redirect HTTP vers HTTPS ou HTTPS** **uniquement** pour la [politique de protocole de visualisation](using-https-viewers-to-cloudfront.md).

### Accorder l' CloudFront autorisation d'accéder au compartiment S3
<a name="oac-permission-to-access-s3"></a>

Avant de créer un contrôle d'accès à l'origine (OAC) ou de le configurer dans une CloudFront distribution, assurez-vous que celui-ci CloudFront est autorisé à accéder à l'origine du compartiment S3. Procédez ainsi après avoir créé une CloudFront distribution, mais avant d'ajouter l'OAC à l'origine S3 dans la configuration de distribution.

Utilisez une [politique de compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html) S3 pour autoriser le principal de CloudFront service (`cloudfront.amazonaws.com`) à accéder au compartiment. Utilisez un `Condition` élément de la politique CloudFront pour autoriser l'accès au compartiment uniquement lorsque la demande provient de la CloudFront distribution contenant l'origine S3. Il s’agit de la distribution contenant l’origine S3 à laquelle vous souhaitez ajouter l’OAC.

Pour plus d'informations sur l'ajout ou la modification d'une stratégie de compartiment, consultez [Ajout d'une stratégie de compartiment à l'aide de la console Amazon S3 ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)dans le *Guide de l’utilisateur Amazon S3*.

Voici des exemples de politiques de compartiment S3 qui autorisent une CloudFront distribution avec OAC à accéder à une origine S3.

**Example Politique de compartiment S3 qui autorise l'accès en lecture seule pour une CloudFront distribution avec OAC activé**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowCloudFrontServicePrincipalReadOnly",
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudfront.amazonaws.com"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
      "Condition": {
        "StringEquals": {
          "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/{{<CloudFront distribution ID>}}"
        }
      }
    }
  ]
}
```

**Example Politique de compartiment S3 qui autorise l'accès en lecture et en écriture pour une CloudFront distribution avec OAC activé**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowCloudFrontServicePrincipalReadWrite",
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudfront.amazonaws.com"
      },
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
      "Condition": {
        "StringEquals": {
          "AWS:SourceArn": "arn:aws:cloudfront::111122223333:distribution/{{CloudFront-distribution-ID>}}"
        }
      }
    }
  ]
}
```

#### SSE-KMS
<a name="oac-permissions-sse-kms"></a>

Si les objets de l'origine du compartiment S3 sont chiffrés à l'aide du [chiffrement côté serveur avec AWS Key Management Service (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html), vous devez vous assurer que la CloudFront distribution est autorisée à utiliser la clé. AWS KMS Pour autoriser la CloudFront distribution à utiliser la clé KMS, ajoutez une déclaration à la [politique de clé KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html). Pour plus d’informations sur la modification d’une stratégie de clé, consultez [Modification d’une stratégie de clé](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html) dans le *Guide du développeur AWS Key Management Service *.

**Example Déclaration de stratégie de clé KMS**  
L'exemple suivant montre une déclaration de AWS KMS politique qui permet à la CloudFront distribution avec OAC d'accéder à une clé KMS pour SSE-KMS.  

```
{
    "Sid": "AllowCloudFrontServicePrincipalSSE-KMS",
    "Effect": "Allow",
    "Principal": {
        "Service": [
            "cloudfront.amazonaws.com"
        ]
     },
    "Action": [
        "kms:Decrypt",
        "kms:Encrypt",
        "kms:GenerateDataKey*"
    ],
    "Resource": "*",
    "Condition": {
            "StringEquals": {
                "AWS:SourceArn": "arn:aws:cloudfront::{{111122223333}}:distribution/{{<CloudFront distribution ID>}}"
            }
        }
}
```

### Création du contrôle d’accès d’origine
<a name="create-oac-s3"></a>

Pour créer un contrôle d'accès à l'origine (OAC), vous pouvez utiliser le AWS Management Console CloudFormation, AWS CLI, ou l' CloudFront API.

------
#### [ Console ]

**Pour créer un contrôle d’accès à l’origine**

1. Connectez-vous à la CloudFront console AWS Management Console et ouvrez-la à l'adresse[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Dans le panneau de navigation de gauche, choisissez **Accès à l'origine**.

1. Choisissez **Créer un paramètre de contrôle**.

1. Sur l'écran **Créer un paramètre de contrôle**, procédez comme suit :

   1. Dans le volet **Détails**, entrez un **Nom** et (éventuellement) une **Description** pour le contrôle d'accès à l'origine.

   1. Dans le volet **Paramètres**, nous vous recommandons de conserver le paramètre par défaut (**Signer les demandes (recommandé)**). Pour de plus amples informations, veuillez consulter [Paramètres avancés pour le contrôle d'accès à l'origine](#oac-advanced-settings-s3).

1. Choisissez S3 dans la liste déroulante **Origin type** (Type de l'origine).

1. Choisissez **Créer**.

   Après avoir créé l'OAC, prenez note de **Nom**. Vous en aurez besoin au cours de la procédure suivante.

**Pour ajouter un contrôle d'accès à une origine S3 dans une distribution**

1. Ouvrez la CloudFront console à l'adresse[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home).

1. Choisissez une distribution avec une origine S3 à laquelle vous souhaitez ajouter l'OAC, puis choisissez l'onglet **Origines**.

1. Sélectionnez l'origine S3 que vous souhaitez ajouter à l'origine, puis choisissez **Modifier**.

1. Pour **Accès d’origine**, sélectionnez **Paramètres de contrôle d’accès d’origine (recommandé)**.

1. Dans le menu déroulant **Origin access control** (Contrôle d'accès d'origine), choisissez l'OAC que vous souhaitez utiliser.

1. Sélectionnez **Enregistrer les modifications**.

La distribution commence à se déployer sur tous les emplacements CloudFront périphériques. Lorsqu'un emplacement périphérique reçoit la nouvelle configuration, il signe toutes les demandes qu'il envoie à l'origine du compartiment S3.

------
#### [ CloudFormation ]

Pour créer un contrôle d'accès à l'origine (OAC) avec CloudFormation, utilisez le type de `AWS::CloudFront::OriginAccessControl` ressource. L'exemple suivant montre la syntaxe du CloudFormation modèle, au format YAML, pour créer un contrôle d'accès à l'origine.

```
Type: AWS::CloudFront::OriginAccessControl
Properties: 
  OriginAccessControlConfig: 
      Description: An optional description for the origin access control
      Name: ExampleOAC
      OriginAccessControlOriginType: s3
      SigningBehavior: always
      SigningProtocol: sigv4
```

Pour plus d'informations, consultez la section [AWS::CloudFront::OriginAccessContrôle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-originaccesscontrol.html) dans le *guide de AWS CloudFormation l'utilisateur*.

------
#### [ CLI ]

Pour créer un contrôle d'accès à l'origine avec le AWS Command Line Interface (AWS CLI), utilisez la **aws cloudfront create-origin-access-control** commande. Vous pouvez utiliser un fichier d’entrée pour fournir les paramètres d’entrée de la commande, plutôt que de spécifier chaque paramètre individuel comme entrée de ligne de commande.

**Pour créer un contrôle d'accès à l'origine (CLI avec un fichier d'entrée)**

1. Utilisez la commande suivante pour créer un fichier nommé `origin-access-control.yaml`. Ce fichier contient tous les paramètres d’entrée de la commande **create-origin-access-control**.

   ```
   aws cloudfront create-origin-access-control --generate-cli-skeleton yaml-input > origin-access-control.yaml
   ```

1. Ouvrez le fichier `origin-access-control.yaml` que vous venez de créer. Modifiez le fichier pour ajouter un nom à l'OAC, une description (facultative) et remplacez `SigningBehavior` par `always`. Ensuite, enregistrez le fichier.

   Pour plus d'informations sur paramètres OAC, consultez [Paramètres avancés pour le contrôle d'accès à l'origine](#oac-advanced-settings-s3).

1. Utilisez la commande suivante pour créer le contrôle d'accès à l'origine à l'aide des paramètres d'entrée du fichier `origin-access-control.yaml`.

   ```
   aws cloudfront create-origin-access-control --cli-input-yaml file://origin-access-control.yaml
   ```

   Notez la valeur de `Id` dans la sortie de la commande. Vous en avez besoin pour ajouter l'OAC à l'origine d'un compartiment S3 dans une CloudFront distribution.

**Pour attacher un OAC à l'origine d'un compartiment S3 dans une distribution existante (CLI avec un fichier d'entrée)**

1. Utilisez la commande suivante pour enregistrer la configuration de distribution pour la CloudFront distribution à laquelle vous souhaitez ajouter l'OAC. La distribution doit avoir une origine de compartiment S3.

   ```
   aws cloudfront get-distribution-config --id {{<CloudFront distribution ID>}} --output yaml > dist-config.yaml
   ```

1. Ouvrez le fichier nommé `dist-config.yaml` que vous venez de créer. Modifiez le fichier en apportant les modifications suivantes :
   + Dans l'objet `Origins`, ajoutez l'ID de l'OAC au champ nommé `OriginAccessControlId`.
   + Supprimez la valeur du champ nommé `OriginAccessIdentity`, le cas échéant.
   + Renommez le champ `ETag` en `IfMatch`, mais ne modifiez pas la valeur du champ.

   Enregistrez le fichier lorsque vous avez terminé.

1. Utilisez la commande suivante pour mettre à jour la distribution afin d’utiliser le contrôle d’accès à l’origine.

   ```
   aws cloudfront update-distribution --id {{<CloudFront distribution ID>}} --cli-input-yaml file://dist-config.yaml
   ```

La distribution commence à se déployer sur tous les emplacements CloudFront périphériques. Lorsqu'un emplacement périphérique reçoit la nouvelle configuration, il signe toutes les demandes qu'il envoie à l'origine du compartiment S3.

------
#### [ API ]

Pour créer un contrôle d'accès à l'origine avec l' CloudFront API, utilisez [CreateOriginAccessControl](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateOriginAccessControl.html). Pour plus d'informations sur les champs que vous spécifiez dans cet appel d'API, consultez la documentation de référence de l'API pour votre AWS SDK ou un autre client d'API.

Après avoir créé un contrôle d'accès à l'origine, vous pouvez l'attacher à l'origine d'un compartiment S3 dans une distribution, à l'aide de l'un des appels d'API suivants :
+ Pour l'associer à une distribution existante, utilisez [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html).
+ Pour l'associer à une nouvelle distribution, utilisez [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html).

Pour ces deux appels d'API, indiquez l'ID de contrôle d'accès à l'origine dans le champ `OriginAccessControlId`, à l'intérieur d'une origine. Pour plus d'informations sur les autres champs que vous spécifiez dans ces appels d'API, consultez [Référence de tous les paramètres de distribution](distribution-web-values-specify.md) la documentation de référence de l'API pour votre AWS SDK ou autre client d'API.

------

## Suppression d’une distribution avec un OAC associé à un compartiment S3
<a name="delete-oac-distribution-s3"></a>

Si vous devez supprimer une distribution avec un OAC associé à un compartiment S3, vous devez supprimer la distribution avant de supprimer l’origine du compartiment S3. Vous pouvez également inclure la région dans le nom de domaine d’origine. Si cela n’est pas possible, vous pouvez supprimer l’OAC de la distribution en passant au mode public avant de le supprimer. Pour de plus amples informations, veuillez consulter [Supprimer une distribution](HowToDeleteDistribution.md).

## Migration de l'identité d'accès à l'origine (OAI) vers le contrôle d'accès à l'origine (OAC)
<a name="migrate-from-oai-to-oac"></a>

Pour migrer d’une ancienne identité d’accès d’origine (OAI) vers un contrôle d’accès d’origine (OAC), commencez par mettre à jour l’origine du compartiment S3 afin de permettre à l’OAI et à la distribution avec OAC d’accéder au contenu du compartiment. Cela garantit qu'il CloudFront ne perdra jamais l'accès au bucket pendant la transition. Pour permettre à l’OAI et à la distribution avec OAC d’accéder à un compartiment S3, mettez à jour la [Stratégie de compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html) de façon à inclure deux déclarations, une pour chaque type de principal.

L’exemple de stratégie de compartiment S3 suivant permet à la fois à une OAI et à une distribution avec OAC d’accéder à une origine S3.

**Example Politique de compartiment S3 qui autorise l'accès en lecture seule à un OAI et à une CloudFront distribution avec OAC activé**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCloudFrontServicePrincipalReadOnly",
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudfront.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::{{<S3 bucket name>}}/*",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceArn": "arn:aws:cloudfront::{{111122223333}}:distribution/{{<CloudFront distribution ID>}}"
                }
            }
        },
        {
            "Sid": "AllowLegacyOAIReadOnly",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity {{<origin access identity ID>}}"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::{{<S3 bucket name>}}/*"
        }
    ]
}
```

Après avoir mis à jour la stratégie de compartiment de l'origine S3 pour autoriser l'accès à la fois à l'OAI et à l'OAC, vous pouvez mettre à jour la configuration de distribution pour utiliser l'OAC au lieu de l'OAI. Pour de plus amples informations, veuillez consulter [Création d’un nouveau contrôle d’accès d’origine](#create-oac-overview-s3).

Une fois la distribution entièrement déployée, vous pouvez supprimer l'instruction de la politique de compartiment qui autorise l'accès à l'OAI. Pour de plus amples informations, veuillez consulter [Accorder l' CloudFront autorisation d'accéder au compartiment S3](#oac-permission-to-access-s3).

## Paramètres avancés pour le contrôle d'accès à l'origine
<a name="oac-advanced-settings-s3"></a>

La fonctionnalité de contrôle CloudFront d'accès à l'origine inclut des paramètres avancés destinés uniquement à des cas d'utilisation spécifiques. Utilisez les paramètres recommandés, sauf si vous avez des besoins spécifiques en matière de paramètres avancés.

Le contrôle d'accès à Origin contient un paramètre nommé **Comportement de signature** (dans la console) ou `SigningBehavior` (dans l'API, la CLI et CloudFormation). Ce paramètre fournit les options suivantes :

**Toujours signer les demandes d'origine (paramètre recommandé)**  
Nous vous recommandons d’utiliser ce paramètre, nommé **Signer les demandes (recommandé)** dans la console ou `always` dans l’API, la CLI et CloudFormation. Avec ce paramètre, il signe CloudFront toujours toutes les demandes qu'il envoie à l'origine du compartiment S3.

**Ne jamais signer les demandes d’origine**  
Ce paramètre est nommé **Ne pas signer les demandes** dans la console ou `never` dans l'API, la CLI et CloudFormation. Utilisez ce paramètre pour désactiver le contrôle d'accès à l'origine pour toutes les origines dans toutes les distributions qui utilisent ce contrôle d'accès à l'origine. Cela permet d’économiser du temps et des efforts par rapport à la suppression d’un contrôle d’accès à l’origine de toutes les origines et distributions qui l’utilisent, une par une. Avec ce paramètre, il CloudFront ne signe aucune demande envoyée à l'origine du compartiment S3.  
Pour utiliser ce paramètre, l'origine du compartiment S3 doit être accessible au public. Si vous utilisez ce paramètre avec une origine de compartiment S3 qui n'est pas accessible au public, vous CloudFront ne pouvez pas accéder à l'origine. L'origine du compartiment S3 renvoie les erreurs aux utilisateurs CloudFront et les CloudFront transmet aux utilisateurs.

**Ne remplacez pas l’en-tête `Authorization` de l’utilisateur (client)**  
Ce paramètre est nommé **Ne pas remplacer l'en-tête d'autorisation** dans la console ou `no-override` dans l'API, la CLI et CloudFormation. Utilisez ce paramètre lorsque vous CloudFront souhaitez signer des demandes d'origine uniquement lorsque la demande d'affichage correspondante ne contient pas d'`Authorization`en-tête. Avec ce paramètre, CloudFront transmet l'`Authorization`en-tête de la demande du visualiseur lorsqu'il y en a un, mais signe la demande d'origine (en ajoutant son propre `Authorization` en-tête) lorsque la demande du visualiseur n'inclut pas d'`Authorization`en-tête.  
Pour parcourir l'en-tête `Authorization` de la demande de l'utilisateur, vous *devez* ajouter l'en-tête `Authorization` à une [stratégie de mise en cache](controlling-the-cache-key.md) pour tous les comportements de cache qui utilisent les origines du compartiment S3 associées à ce contrôle d'accès à l'origine.

## Utilisation d’une identité d’accès d’origine (héritée, non recommandée)
<a name="private-content-restricting-access-to-s3-oai"></a>

### Présentation de l'identité d'accès à l'origine
<a name="private-content-restricting-access-to-s3-overview"></a>

CloudFront *L'identité d'accès à l'origine* (OAI) fournit des fonctionnalités similaires à celles du *contrôle d'accès à l'origine* (OAC), mais elle ne fonctionne pas dans tous les scénarios. Plus précisément, l'OAI ne prend pas en charge :
+ Tous les compartiments Amazon S3 Régions AWS, y compris les régions optionnelles
+ [Chiffrement côté serveur avec AWS KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) (SSE-KMS) Amazon S3
+ Demandes dynamiques (`PUT`, `POST` ou `DELETE`) vers Amazon S3
+ Nouveau Régions AWS produit lancé après janvier 2023

**Astuce**  
Nous vous recommandons d’utiliser l’OAC à la place. Pour configurer l’OAC, consultez [Création d’un nouveau contrôle d’accès d’origine](#create-oac-overview-s3). Pour plus d'informations sur la migration d'OAI vers OAC, consultez [Migration de l'identité d'accès à l'origine (OAI) vers le contrôle d'accès à l'origine (OAC)](#migrate-from-oai-to-oac).

### Attribution à l’identité d’accès d’origine de l’autorisation de lire les fichiers du compartiment Amazon S3
<a name="private-content-granting-permissions-to-oai"></a>

Lorsque vous créez un OAI ou que vous en ajoutez un à une distribution à l'aide de la CloudFront console, vous pouvez automatiquement mettre à jour la politique de compartiment Amazon S3 pour autoriser l'OAI à accéder à votre compartiment. Vous pouvez également choisir de créer ou de mettre à jour manuellement la politique de compartiment. Quelle que soit la méthode que vous utilisez, vous devez toujours vérifier les autorisations pour vous assurer que :
+ Votre CloudFront OAI peut accéder aux fichiers du bucket pour le compte des utilisateurs qui les demandent. CloudFront
+ Les utilisateurs ne peuvent pas utiliser Amazon S3 URLs pour accéder à vos fichiers en dehors de CloudFront.

**Important**  
Si vous configurez CloudFront pour accepter et transférer toutes les méthodes HTTP compatibles, CloudFront assurez-vous d'accorder à votre CloudFront OAI les autorisations souhaitées. Par exemple, si vous configurez CloudFront pour accepter et transférer les demandes qui utilisent cette `DELETE` méthode, configurez votre politique de compartiment de manière à gérer les `DELETE` demandes de manière appropriée afin que les utilisateurs puissent supprimer uniquement les fichiers que vous souhaitez qu'ils souhaitent.

#### Utilisation des stratégies de compartiment Amazon S3
<a name="private-content-updating-s3-bucket-policies"></a>

Vous pouvez accorder à un CloudFront OAI l'accès aux fichiers d'un compartiment Amazon S3 en créant ou en mettant à jour la politique de compartiment de la manière suivante :
+ Utilisation de l’onglet **Autorisations** du compartiment Amazon S3 dans la [console Amazon S3](https://console.aws.amazon.com/s3/home).
+ Utilisation [PutBucketPolicy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html)dans l'API Amazon S3.
+ En utilisant la [console CloudFront](https://console.aws.amazon.com/cloudfront/v4/home). Lorsque vous ajoutez un OAI à vos paramètres d'origine dans la CloudFront console, vous pouvez choisir **Oui, mettre à jour la politique de compartiment** pour indiquer de mettre CloudFront à jour la politique de compartiment en votre nom.

Si vous mettez à jour manuellement la politique de compartiment, assurez-vous que vous :
+ Spécifiez l’identité d’accès à l’origine correcte comme `Principal` dans la politique.
+ Accordez à l’identité d’accès à l’origine les autorisations dont elle a besoin pour accéder aux objets pour le compte des utilisateurs.

Pour plus d’informations, consultez les sections suivantes.

##### Spécification d’une OAI comme `Principal` dans une politique de compartiment
<a name="private-content-updating-s3-bucket-policies-principal"></a>

Pour spécifier une OAI comme `Principal` dans une politique de compartiment Amazon S3, utilisez l’Amazon Resource Name (ARN) qui inclut son ID. Par exemple :

```
"Principal": {
    "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity {{<origin access identity ID>}}"
}
```

Trouvez l'ID OAI dans la CloudFront console sous **Security**, **Origin access**, **Identities (legacy).** Vous pouvez également l'utiliser [ListCloudFrontOriginAccessIdentities](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListCloudFrontOriginAccessIdentities.html)dans l' CloudFrontAPI.

##### Octroi d’autorisations à une OAI
<a name="private-content-updating-s3-bucket-policies-permissions"></a>

Pour donner à l’identité d’accès à l’origine les autorisations pour accéder aux objets de votre compartiment Amazon S3, utilisez des actions dans la politique qui se rapportent à des opérations d’API Amazon S3 spécifiques. Par exemple, l'action `s3:GetObject` permet à l'identité d'accès à l'origine de lire des objets dans le compartiment. Pour plus d’informations, consultez les exemples de la section suivante ou la section [Actions Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html) du *Guide de l’utilisateur Amazon Simple Storage Service*.

##### Exemples de politique de compartiment Amazon S3
<a name="private-content-updating-s3-bucket-policies-examples"></a>

Les exemples suivants présentent les politiques de compartiment Amazon S3 qui permettent à CloudFront OAI d'accéder à un compartiment S3.

Trouvez l'ID OAI dans la CloudFront console sous **Security**, **Origin access**, **Identities (legacy).** Vous pouvez également l'utiliser [ListCloudFrontOriginAccessIdentities](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListCloudFrontOriginAccessIdentities.html)dans l' CloudFrontAPI.

**Example Politique de compartiment Amazon S3 qui donne à l’identité d’accès à l’origine un accès en lecture**  
L’exemple suivant permet à l’identité d’accès à l’origine de lire des objets dans le compartiment spécifié (`s3:GetObject`).    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity {{<origin access identity ID>}}"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::{{<S3 bucket name>}}/*"
        }
    ]
}
```

**Example Politique de compartiment Amazon S3 qui donne à l’identité d’accès à l’origine un accès en lecture et en écriture**  
L’exemple suivant permet à l’identité d’accès à l’origine de lire et d’écrire des objets dans le compartiment spécifié (`s3:GetObject` et `s3:PutObject`). Cela permet aux utilisateurs de télécharger des fichiers dans votre compartiment Amazon S3 via CloudFront.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity {{<origin access identity ID>}}"
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::{{<S3 bucket name>}}/*"
        }
    ]
}
```

#### Utiliser un objet Amazon S3 ACLs (non recommandé)
<a name="private-content-updating-s3-acls"></a>

**Important**  
Il est recommandé [d’utiliser les politiques du compartiment Amazon S3](#private-content-updating-s3-bucket-policies) pour attribuer à une OAI l’accès à un compartiment S3. Vous pouvez utiliser les listes de contrôle d'accès (ACLs) comme décrit dans cette section, mais nous ne le recommandons pas.  
Amazon S3 recommande de définir [S3 Object Ownership](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) comme **étant appliqué par le propriétaire du compartiment**, ce qui signifie que ces paramètres ACLs sont désactivés pour le compartiment et les objets qu'il contient. Lorsque vous appliquez ce paramètre à Object Ownership (Propriété de l’objet), vous devez utiliser des politiques du compartiment pour donner l’accès à l’OAI (consultez la section précédente).  
La section suivante concerne uniquement les anciens cas d'utilisation qui nécessitent ACLs.

Vous pouvez accorder à un CloudFront OAI l'accès aux fichiers d'un compartiment Amazon S3 en créant ou en mettant à jour l'ACL du fichier de la manière suivante :
+ Utilisation de l’onglet **Autorisations** de l’objet Amazon S3 dans la [console Amazon S3](https://console.aws.amazon.com/s3/home).
+ Utilisation [PutObjectAcl](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html)dans l'API Amazon S3.

Lorsque vous accordez l’accès à une identité d’accès à l’origine à l’aide d’une liste ACL, vous devez spécifier l’identité d’accès à l’origine à l’aide de son ID d’utilisateur canonique Amazon S3. Dans la CloudFront console, vous pouvez trouver cet identifiant sous **Sécurité**, **Accès à l'origine**, **Identités (ancienne)**. Si vous utilisez l' CloudFront API, utilisez la valeur de l'`S3CanonicalUserId`élément renvoyé lorsque vous avez créé l'OAI, ou appelez [ListCloudFrontOriginAccessIdentities](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_ListCloudFrontOriginAccessIdentities.html)l' CloudFrontAPI.

### Utilisation d’une identité d’accès d’origine dans les régions Amazon S3 prenant uniquement en charge l’authentification Signature version 4
<a name="private-content-origin-access-identity-signature-version-4"></a>

Les régions Amazon S3 plus récentes requièrent que vous utilisiez Signature version 4 pour les demandes authentifiées. (Pour connaître les versions de signatures prises en charge dans chaque région Amazon S3, consultez la section [Points de terminaison et quotas Amazon Simple Storage Service](https://docs.aws.amazon.com/general/latest/gr/s3.html) de la *Références générales AWS*.) Si vous utilisez une identité d’accès à l’origine et que votre compartiment se trouve dans l’une des régions qui nécessitent Signature version 4, notez les points suivants :
+ Les demandes `DELETE`, `GET`, `HEAD`, `OPTIONS` et`PATCH` sont prises en charge sans qualifications.
+ Les demandes `POST` ne sont pas prises en charge.