

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.

# Réplication d'objets chiffrés (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)
<a name="replication-config-for-kms-objects"></a>

**Important**  
Amazon S3 applique désormais le chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3) comme niveau de chiffrement de base pour chaque compartiment d'Amazon S3. À partir du 5 janvier 2023, tous les nouveaux chargements d’objets sur Amazon S3 sont automatiquement chiffrés, sans coût supplémentaire et sans impact sur les performances. L'état du chiffrement automatique pour la configuration de chiffrement par défaut du compartiment S3 et pour le téléchargement de nouveaux objets est disponible dans CloudTrail les journaux, S3 Inventory, S3 Storage Lens, la console Amazon S3 et sous forme d'en-tête de réponse d'API Amazon S3 supplémentaire dans les AWS SDK AWS CLI et. Pour plus d’informations, consultez la [FAQ sur le chiffrement par défaut](https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html).

Certaines considérations particulières doivent être prises en compte lorsque vous répliquez des objets qui ont été chiffrés à l’aide du chiffrement côté serveur. Amazon S3 prend en charge les types suivants de chiffrement côté serveur :
+ Server-side chiffrement avec des clés gérées par Amazon S3 (SSE-S3)
+ Server-side chiffrement avec AWS Key Management Service (AWS KMS) clés (SSE-KMS)
+ Dual-layer chiffrement côté serveur avec AWS KMS clés () DSSE-KMS
+ Server-side chiffrement avec des clés fournies par le client () SSE-C

Pour plus d’informations sur le chiffrement côté serveur, consultez [Protection des données avec le chiffrement côté serveur](serv-side-encryption.md).

Cette rubrique explique les autorisations dont vous avez besoin pour demander à Amazon S3 de répliquer des objets qui ont été chiffrés à l’aide du chiffrement côté serveur. Cette rubrique fournit également des éléments de configuration supplémentaires que vous pouvez ajouter, ainsi que des exemples de politiques Gestion des identités et des accès AWS (IAM) qui accordent les autorisations nécessaires pour répliquer des objets chiffrés. 

Pour découvrir un exemple avec des instructions pas à pas, consultez [Activation de la réplication pour les objets chiffrés](#replication-walkthrough-4). Pour en savoir plus sur la création d’une configuration de réplication, consultez [Réplication d’objets au sein des régions et entre elles](replication.md). 

**Note**  
Vous pouvez utiliser plusieurs régions AWS KMS keys dans Amazon S3. Cependant, Amazon S3 traite actuellement les clés multi-régions comme s’il s’agissait de clés à région unique et n’utilise pas les fonctions multi-régions de la clé. Pour plus d’informations, consultez [Utilisation des clés multi-régions](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) dans le *Guide du développeur AWS Key Management Service *.

**Topics**
+ [Comment le chiffrement par défaut du compartiment a un impact sur la réplication](#replication-default-encryption)
+ [Réplication d'objets chiffrés avec SSE-C](#replicationSSEC)
+ [Réplication d'objets chiffrés avec SSE-S3 SSE-KMS, ou DSSE-KMS](#replications)
+ [Activation de la réplication pour les objets chiffrés](#replication-walkthrough-4)

## Comment le chiffrement par défaut du compartiment a un impact sur la réplication
<a name="replication-default-encryption"></a>

Après avoir activé le chiffrement par défaut pour un compartiment de destination de réplication, le comportement de chiffrement suivant s’applique :
+ Si des objets du compartiment source ne sont pas chiffrés, les objets réplica du compartiment de destination sont chiffrés à l’aide des paramètres de chiffrement par défaut du compartiment de destination. Par conséquent, les balises d’entité (ETags) des objets sources diffèrent des ETags des objets réplica. Si certaines de vos applications utilisent des ETags, vous devez les mettre à jour pour tenir compte de cette différence.
+ Si les objets du compartiment source sont chiffrés à l'aide d'un chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3), d'un chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS SSE-KMS) ou d'un chiffrement double couche côté serveur avec des AWS KMS clés (DSSE-KMS), les objets répliques du compartiment de destination utilisent le même type de chiffrement que les objets source. Les paramètres de chiffrement par défaut du compartiment de destination ne sont pas utilisés.

## Réplication d'objets chiffrés avec SSE-C
<a name="replicationSSEC"></a>

En utilisant le chiffrement côté serveur avec des clés fournies par le client (SSE-C), vous pouvez gérer vos propres clés de chiffrement propriétaires. Avec SSE-C, vous gérez les clés tandis qu'Amazon S3 gère le processus de chiffrement et de déchiffrement. Vous devez fournir une clé de chiffrement dans le cadre de votre demande, mais vous n’avez pas besoin d’écrire de code pour effectuer le chiffrement ou le déchiffrement d’objets. Lorsque vous chargez un objet, Amazon S3 chiffre l’objet au moyen de la clé que vous avez fournie. Amazon S3 élimine ensuite cette clé de la mémoire. Lorsque vous récupérez un objet, vous devez fournir la même clé de chiffrement dans la demande. Pour de plus amples informations, veuillez consulter [Utilisation du chiffrement côté serveur avec des clés fournies par le client () SSE-C](ServerSideEncryptionCustomerKeys.md).

S3 Replication prend en charge les objets chiffrés avec SSE-C. Vous pouvez configurer la réplication SSE-C d'objets dans la console Amazon S3 ou à l'aide des AWS SDK de la même manière que vous configurez la réplication pour les objets non chiffrés. Il n'existe pas d' SSE-Cautorisations supplémentaires au-delà de celles actuellement requises pour la réplication. 

S3 Replication réplique automatiquement les objets SSE-C chiffrés récemment chargés s'ils sont éligibles, comme indiqué dans votre configuration de réplication S3. Pour répliquer des objets existants dans vos compartiments, utilisez la réplication par lot S3. Pour plus d’informations sur la réplication d’objets existants, consultez [Présentation de la configuration de la réplication en direct](replication-how-setup.md) et [Réplication d’objets existants via la réplication par lot](s3-batch-replication-batch.md).

La réplication d' SSE-C objets n'entraîne aucun frais supplémentaire. Pour en savoir plus sur la tarification de la réplication, consultez [Tarification Amazon S3](https://aws.amazon.com/s3/pricing/). 

## Réplication d'objets chiffrés avec SSE-S3 SSE-KMS, ou DSSE-KMS
<a name="replications"></a>

Par défaut, Amazon S3 ne réplique pas les objets chiffrés avec SSE-KMS ou DSSE-KMS. Cette section explique les éléments de configuration supplémentaire que vous pouvez ajouter de manière à indiquer à Amazon S3 de répliquer ces objets. 

Pour découvrir un exemple avec des instructions pas à pas, consultez [Activation de la réplication pour les objets chiffrés](#replication-walkthrough-4). Pour en savoir plus sur la création d’une configuration de réplication, consultez [Réplication d’objets au sein des régions et entre elles](replication.md). 

### Spécification d’informations supplémentaires dans la configuration de la réplication
<a name="replication-kms-extra-config"></a>

Dans la configuration de réplication, procédez comme suit :
+ Dans l'`Destination`élément de votre configuration de réplication, ajoutez l'ID de la clé symétrique gérée par le AWS KMS client que vous souhaitez qu'Amazon S3 utilise pour chiffrer les répliques d'objets, comme illustré dans l'exemple de configuration de réplication suivant. 
+ Inscrivez-vous explicitement en activant la réplication d'objets chiffrés à l'aide de clés KMS (SSE-KMS ou DSSE-KMS). Pour valider, ajoutez l’élément `SourceSelectionCriteria`, comme illustré dans l’exemple de configuration de réplication suivant.

 

```
<ReplicationConfiguration>
   <Rule>
      ...
      <SourceSelectionCriteria>
         <SseKmsEncryptedObjects>
           <Status>Enabled</Status>
         </SseKmsEncryptedObjects>
      </SourceSelectionCriteria>

      <Destination>
          ...
          <EncryptionConfiguration>
             <ReplicaKmsKeyID>{{AWS KMS key ARN or Key Alias ARN that's in the same Région AWS as the destination bucket.}}</ReplicaKmsKeyID>
          </EncryptionConfiguration>
       </Destination>
      ...
   </Rule>
</ReplicationConfiguration>
```

**Important**  
La clé KMS doit avoir été créée dans le même compartiment Région AWS que le compartiment de destination. 
La clé KMS *doit* être valide. L’opération d’API `PutBucketReplication` ne vérifie pas la validité des clés KMS. Si vous utilisez une clé KMS non valide, vous recevez le code de statut HTTP `200 OK` en réponse, mais la réplication échoue.

L’exemple suivant montre une configuration de réplication qui inclut des éléments de configuration facultatifs. Cette configuration de réplication a une règle. Cette règle s’applique aux objets dotés du préfixe de clé `{{Tax}}`. Amazon S3 utilise l' AWS KMS key ID spécifié pour chiffrer ces répliques d'objets.

```
<?xml version="1.0" encoding="UTF-8"?>
<ReplicationConfiguration>
   <Role>arn:aws:iam::{{account-id}}:role/{{role-name}}</Role>
   <Rule>
      <ID>{{Rule-1}}</ID>
      <Priority>1</Priority>
      <Status>Enabled</Status>
      <DeleteMarkerReplication>
         <Status>Disabled</Status>
      </DeleteMarkerReplication>
      <Filter>
         <Prefix>Tax</Prefix>
      </Filter>
      <Destination>
         <Bucket>arn:aws:s3:::{{{{amzn-s3-demo-destination-bucket}}}}</Bucket>
         <EncryptionConfiguration>
            <ReplicaKmsKeyID>{{AWS KMS key ARN or Key Alias ARN that's in the same Région AWS as the destination bucket.}}</ReplicaKmsKeyID>
         </EncryptionConfiguration>
      </Destination>
      <SourceSelectionCriteria>
         <SseKmsEncryptedObjects>
            <Status>Enabled</Status>
         </SseKmsEncryptedObjects>
      </SourceSelectionCriteria>
   </Rule>
</ReplicationConfiguration>
```

### Octroi d’autorisations supplémentaires pour le rôle IAM
<a name="replication-kms-permissions"></a>

Répliquer des objets chiffrés au repos en utilisant SSE-S3 ou en accordant DSSE-KMS les autorisations supplémentaires suivantes au rôle Gestion des identités et des accès AWS (IAM) que vous spécifiez dans la configuration de réplication. SSE-KMS Vous octroyez ces autorisations en mettant à jour la stratégie d’autorisations associée au rôle IAM. 
+ **`s3:GetObjectVersionForReplication`action pour les objets source** — Cette action permet à Amazon S3 de répliquer à la fois des objets non chiffrés et des objets créés avec le chiffrement côté serveur en utilisant SSE-S3, ou. SSE-KMS DSSE-KMS
**Note**  
Nous vous recommandons d’utiliser l’action `s3:GetObjectVersionForReplication` à la place de l’action `s3:GetObjectVersion`, car `s3:GetObjectVersionForReplication` fournit uniquement à Amazon S3 le minimum d’autorisations nécessaires pour la réplication. En outre, l'`s3:GetObjectVersion`action permet la réplication d' SSE-S3-encrypted objets non chiffrés, mais pas d'objets chiffrés à l'aide de clés KMS (SSE-KMS ou DSSE-KMS). 
+ **`kms:Decrypt`et `kms:Encrypt` AWS KMS actions pour les clés KMS**
  + Vous devez accorder des autorisations `kms:Decrypt` pour l’ AWS KMS key utilisée pour déchiffrer l’objet source.
  + Vous devez accorder des autorisations `kms:Encrypt` pour la AWS KMS key utilisée pour chiffrer le réplica source.
+ **`kms:GenerateDataKey`action pour la réplication d'objets en texte brut** : si vous répliquez des objets en texte clair vers un compartiment dont SSE-KMS le DSSE-KMS chiffrement est activé par défaut, vous devez inclure l'`kms:GenerateDataKey`autorisation pour le contexte de chiffrement de destination et la clé KMS dans la politique IAM.

**Important**  
Si vous utilisez S3 Batch Replication pour répliquer des ensembles de données entre régions et que le type de chiffrement côté serveur de vos objets a déjà été mis à jour de SSE-S3 à SSE-KMS, vous aurez peut-être besoin d'autorisations supplémentaires. Dans le compartiment de la région source, vous devez disposer `kms:decrypt` d'autorisations. Ensuite, vous aurez besoin des `kms:encrypt` autorisations `kms:decrypt` et pour le compartiment dans la région de destination. 

Nous vous recommandons de limiter ces autorisations uniquement aux compartiments et objets de destination en utilisant des clés de AWS KMS condition. Le Compte AWS titulaire du rôle IAM doit disposer d'autorisations `kms:Encrypt` et d'`kms:Decrypt`actions pour les clés KMS répertoriées dans la politique. Si les clés KMS appartiennent à une autre personne Compte AWS, le propriétaire des clés KMS doit accorder ces autorisations au Compte AWS titulaire du rôle IAM. Pour plus d'informations sur la gestion de l'accès à ces clés KMS, consultez la section [Utilisation des politiques IAM AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) dans le *Guide du AWS Key Management Service développeur*.

### Clés de compartiment S3 et réplication
<a name="bk-replication"></a>

Pour utiliser la réplication avec une clé de compartiment S3, la AWS KMS key politique relative à la clé KMS utilisée pour chiffrer la réplique de l'objet doit inclure l'`kms:Decrypt`autorisation du principal appelant. L’appel à `kms:Decrypt` vérifie l’intégrité de la clé de compartiment S3 avant de l’utiliser. Pour plus d’informations, consultez [Utilisation d’une clé de compartiment S3 avec réplication](bucket-key.md#bucket-key-replication).

Lorsqu’une clé de compartiment S3 est activée pour le compartiment source ou de destination, le contexte de chiffrement est l’Amazon Resource Name (ARN) du compartiment et non l’ARN de l’objet (par exemple, `arn:aws:s3:::{{bucket_ARN}}`). Vous devez mettre à jour vos politiques IAM pour utiliser l’ARN du compartiment pour le contexte de chiffrement :

```
"kms:EncryptionContext:aws:s3:arn": [
"arn:aws:s3:::{{bucket_ARN}}"
]
```

Pour plus d’informations, consultez [Contexte de chiffrement (`x-amz-server-side-encryption-context`)](specifying-kms-encryption.md#s3-kms-encryption-context) (dans la section « Utilisation de l’API REST ») et [Modifications à prendre en compte avant d’activer une clé de compartiment S3](bucket-key.md#bucket-key-changes).

### Exemples de politiques : utilisation SSE-S3 et utilisation SSE-KMS de la réplication
<a name="kms-replication-examples"></a>

Les exemples de politiques IAM suivants présentent des instructions relatives à l'utilisation SSE-S3 et SSE-KMS à la réplication.

**Example — Utilisation SSE-KMS avec des compartiments de destination séparés**  
L'exemple de politique suivant montre des instructions à utiliser SSE-KMS avec des compartiments de destination distincts. 

**Example — Réplication d'objets créés avec et SSE-S3 SSE-KMS**  
Voici une politique IAM complète qui accorde les autorisations nécessaires pour répliquer des objets non chiffrés, des objets créés avec et des objets créés avec SSE-S3. SSE-KMS    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetReplicationConfiguration",
            "s3:ListBucket"
         ],
         "Resource":[
            "arn:aws:s3:::{{amzn-s3-demo-source-bucket}}"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetObjectVersionForReplication",
            "s3:GetObjectVersionAcl"
         ],
         "Resource":[
            "arn:aws:s3:::{{amzn-s3-demo-source-bucket}}/{{key-prefix1}}*"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:ReplicateObject",
            "s3:ReplicateDelete"
         ],
         "Resource":"arn:aws:s3:::{{amzn-s3-demo-destination-bucket}}/{{key-prefix1}}*"
      },
      {
         "Action":[
            "kms:Decrypt"
         ],
         "Effect":"Allow",
         "Condition":{
            "StringLike":{
               "kms:ViaService":"s3.{{us-east-1}}.amazonaws.com",
               "kms:EncryptionContext:aws:s3:arn":[
                  "arn:aws:s3:::{{amzn-s3-demo-source-bucket}}/{{key-prefix1}}*"
               ]
            }
         },
         "Resource":[
           "arn:aws:kms:{{us-east-1}}:{{111122223333}}:key/{{key-id}}"
         ]
      },
      {
         "Action":[
            "kms:Encrypt"
         ],
         "Effect":"Allow",
         "Condition":{
            "StringLike":{
               "kms:ViaService":"s3.{{us-east-1}}.amazonaws.com",
               "kms:EncryptionContext:aws:s3:arn":[
                  "arn:aws:s3:::{{amzn-s3-demo-destination-bucket}}/{{prefix1}}*"
               ]
            }
         },
         "Resource":[
            "arn:aws:kms:{{us-east-1}}:{{111122223333}}:key/{{key-id}}"
         ]
      }
   ]
}
```

**Example : réplication d’objets avec des clés de compartiment S3**  
Voici une politique IAM complète qui accorde les autorisations nécessaires pour répliquer des objets avec des clés de compartiment S3.    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetReplicationConfiguration",
            "s3:ListBucket"
         ],
         "Resource":[
            "arn:aws:s3:::{{amzn-s3-demo-source-bucket}}"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:GetObjectVersionForReplication",
            "s3:GetObjectVersionAcl"
         ],
         "Resource":[
            "arn:aws:s3:::{{amzn-s3-demo-source-bucket}}/{{key-prefix1}}*"
         ]
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:ReplicateObject",
            "s3:ReplicateDelete"
         ],
         "Resource":"arn:aws:s3:::{{amzn-s3-demo-destination-bucket}}/{{key-prefix1}}*"
      },
      {
         "Action":[
            "kms:Decrypt"
         ],
         "Effect":"Allow",
         "Condition":{
            "StringLike":{
               "kms:ViaService":"s3.us-east-1.amazonaws.com",
               "kms:EncryptionContext:aws:s3:arn":[
                  "arn:aws:s3:::{{amzn-s3-demo-source-bucket}}"
               ]
            }
         },
         "Resource":[
           "arn:aws:kms:us-east-1:111122223333:key/{{key-id}}"
         ]
      },
      {
         "Action":[
            "kms:Encrypt"
         ],
         "Effect":"Allow",
         "Condition":{
            "StringLike":{
               "kms:ViaService":"s3.us-east-1.amazonaws.com",
               "kms:EncryptionContext:aws:s3:arn":[
                  "arn:aws:s3:::{{amzn-s3-demo-destination-bucket}}"
               ]
            }
         },
         "Resource":[
            "arn:aws:kms:us-east-1:111122223333:key/{{key-id}}"
         ]
      }
   ]
}
```

### Octroi d’autorisations supplémentaires pour les scénarios à plusieurs comptes
<a name="replication-kms-cross-acct-scenario"></a>

Dans un scénario entre comptes, où les compartiments source et destination sont détenus par des entités différentes Comptes AWS, vous pouvez utiliser une clé KMS pour chiffrer les répliques d'objets. Le propriétaire de la clé KMS doit accorder au propriétaire du compartiment source l’autorisation d’utiliser la clé KMS. 

**Note**  
Si vous devez répliquer SSE-KMS des données entre comptes, votre règle de réplication doit spécifier une [clé gérée par le client](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) AWS KMS pour le compte de destination. [Clés gérées par AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)n'autorisent pas l'utilisation entre comptes et ne peuvent donc pas être utilisés pour effectuer une réplication entre comptes.<a name="cross-acct-kms-key-permission"></a>

**Pour autoriser le propriétaire du compartiment source à utiliser la clé KMS (AWS KMS console)**

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

1. Pour modifier le Région AWS, utilisez le sélecteur de région dans le coin supérieur droit de la page.

1. Pour afficher les clés de votre compte que vous créez et gérez vous-même, dans le volet de navigation, choisissez **Clés gérées par le client**.

1. Sélectionnez la clé KMS.

1. Sous la section **Configuration générale**, choisissez l’onglet **Stratégie de clé**.

1. Faites défiler la page vers le bas jusqu'à **Autre Comptes AWS**.

1. Choisissez **Ajouter un autre Comptes AWS**. 

   La boîte de dialogue **Autres Comptes AWS** s’affiche. 

1. Dans la boîte de dialogue, choisissez **Ajouter un autre Compte AWS**. Pour **arn:aws:iam::**, saisissez l’ID de compte du compartiment source.

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

**Pour autoriser le propriétaire du compartiment source à utiliser la clé KMS (AWS CLI)**
+ Pour plus d'informations sur la commande `put-key-policy` AWS Command Line Interface (AWS CLI), reportez-vous [https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html](https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html)à la *référence des AWS CLI commandes*. Pour plus d’informations sur l’opération d’API `PutKeyPolicy` sous-jacente, consultez [https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) dans la [Référence d’API AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/APIReference/).

### AWS KMS considérations relatives aux quotas de transactions
<a name="crr-kms-considerations"></a>

Lorsque vous ajoutez de nombreux nouveaux objets AWS KMS chiffrés après avoir activé Cross-Region la réplication (CRR), vous pouvez rencontrer un ralentissement (erreurs HTTP`503 Service Unavailable`). La limitation survient lorsque le nombre de transactions AWS KMS par seconde dépasse le quota actuel. Pour plus d’informations, consultez [Quotas](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) dans le *Guide du développeur AWS Key Management Service *.

Pour demander l’augmentation d’un quota, utilisez Service Quotas. Pour plus d’informations, consultez [Demande d’augmentation de quota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html). Si le Service Quotas n'est pas pris en charge dans votre région, [ouvrez un AWS Support dossier](https://console.aws.amazon.com/support/home#/). 

## Activation de la réplication pour les objets chiffrés
<a name="replication-walkthrough-4"></a>

Par défaut, Amazon S3 ne réplique pas les objets chiffrés à l'aide d'un chiffrement côté serveur avec AWS Key Management Service (AWS KMS) keys (SSE-KMS) ou d'un chiffrement double couche côté serveur avec keys (). AWS KMS DSSE-KMS Pour répliquer des objets chiffrés avec SSE-KMS ou DSS-KMS, vous devez modifier la configuration de réplication du compartiment pour indiquer à Amazon S3 de répliquer ces objets. Cet exemple explique comment utiliser la console Amazon S3 et le AWS Command Line Interface (AWS CLI) pour modifier la configuration de réplication du compartiment afin de permettre la réplication d'objets chiffrés.

**Note**  
Lorsqu’une clé de compartiment S3 est activée pour le compartiment source ou de destination, le contexte de chiffrement est l’Amazon Resource Name (ARN) du compartiment et non l’ARN de l’objet. Vous devez mettre à jour vos politiques IAM pour utiliser l’ARN du compartiment pour le contexte de chiffrement. Pour de plus amples informations, veuillez consulter [Clés de compartiment S3 et réplication](#bk-replication).

**Note**  
Vous pouvez utiliser plusieurs régions AWS KMS keys dans Amazon S3. Cependant, Amazon S3 traite actuellement les clés multi-régions comme s’il s’agissait de clés à région unique et n’utilise pas les fonctions multi-régions de la clé. Pour plus d’informations, consultez [Utilisation des clés multi-régions](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) dans le *Guide du développeur AWS Key Management Service *.

### Utiliser la console S3.
<a name="replication-ex4-console"></a>

Pour obtenir des instructions détaillées, consultez [Configuration d’une réplication pour des compartiments dans le même compte](replication-walkthrough1.md). Cette rubrique fournit des instructions pour définir une configuration de réplication lorsque les compartiments source et de destination sont détenus de manière identique et différente Comptes AWS.

### Utilisation de AWS CLI
<a name="replication-ex4-cli"></a>

Pour répliquer des objets chiffrés avec le AWS CLI, procédez comme suit : 
+ Créez les compartiments source et de destination et activez la gestion des versions pour ces mêmes compartiments. 
+ Créez un rôle de service Gestion des identités et des accès AWS (IAM) qui autorise Amazon S3 à répliquer des objets. Les autorisations accordées au rôle IAM incluent les autorisations nécessaires à la réplication des objets chiffrés.
+ Ajoutez une configuration de réplication au compartiment source. La configuration de réplication fournit des informations sur la réplication des objets chiffrés à l’aide de clés KMS.
+ Ajoutez des objets chiffrés au compartiment source. 
+ Testez la configuration pour vérifier que vos objets chiffrés sont répliqués dans le compartiment de destination.

Les procédures suivantes vous guident tout au long de ce processus. 

**Pour répliquer des objets chiffrés côté serveur (AWS CLI)**

Pour utiliser les exemples de cette procédure, remplacez les `{{user input placeholders}}` par vos propres informations.

1. Dans cet exemple, vous créez à la fois les compartiments source ({{`{{amzn-s3-demo-source-bucket}}`}}) et de destination ({{`{{amzn-s3-demo-destination-bucket}}`}}) dans le même Compte AWS. Vous allez également définir un profil d’informations d’identification pour l’ AWS CLI. Cet exemple utilise le nom de profil `{{acctA}}`. 

   Pour obtenir des informations sur la définition des profils d’informations d’identification et l’utilisation de profils nommés, consultez [Paramètres des fichiers de configuration et d’informations d’identification](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) dans le *Guide de l’utilisateur AWS Command Line Interface *. 

1. Utilisez les commandes suivantes pour créer le compartiment `{{amzn-s3-demo-source-bucket}}` et activer la gestion des versions sur celui-ci. Les commandes de l’exemple suivant créent le compartiment `{{amzn-s3-demo-source-bucket}}` dans la région USA Est (Virginie du Nord) (`us-east-1`).

   ```
   aws s3api create-bucket \
   --bucket {{amzn-s3-demo-source-bucket}} \
   --region {{us-east-1}} \
   --profile {{acctA}}
   ```

   ```
   aws s3api put-bucket-versioning \
   --bucket {{amzn-s3-demo-source-bucket}} \
   --versioning-configuration Status=Enabled \
   --profile {{acctA}}
   ```

1. Utilisez les commandes suivantes pour créer le compartiment `{{amzn-s3-demo-destination-bucket}}` et activer la gestion des versions sur celui-ci. Les commandes de l’exemple suivant créent le compartiment `{{amzn-s3-demo-destination-bucket}}` dans la région USA Ouest (Oregon) (`us-west-2`). 
**Note**  
Pour définir une configuration de réplication lorsque les compartiments `{{amzn-s3-demo-source-bucket}}` et `{{amzn-s3-demo-destination-bucket}}` se trouvent dans le même Compte AWS, utilisez le même profil. Cet exemple utilise `{{acctA}}`. Pour configurer la réplication lorsque les buckets appartiennent à des propriétaires différents Comptes AWS, vous devez spécifier des profils différents pour chacun d'entre eux. 

   

   ```
   aws s3api create-bucket \
   --bucket {{amzn-s3-demo-destination-bucket}} \
   --region {{us-west-2}} \
   --create-bucket-configuration LocationConstraint={{us-west-2}} \
   --profile {{acctA}}
   ```

   ```
   aws s3api put-bucket-versioning \
   --bucket {{amzn-s3-demo-destination-bucket}} \
   --versioning-configuration Status=Enabled \
   --profile {{acctA}}
   ```

1. Ensuite, créez un rôle de service IAM. Vous allez spécifier ce rôle dans la configuration de réplication que vous ajouterez ultérieurement au compartiment `{{amzn-s3-demo-source-bucket}}`. Amazon S3 endosse ce rôle pour répliquer des objets en votre nom. Vous créez un rôle IAM en deux étapes.
   + Créez un rôle de service.
   + Attachez une stratégie d’autorisation au rôle.

   1. Pour créer un rôle de service IAM, procédez comme suit :

      1. Copiez la stratégie d’approbation suivante et enregistrez-la dans un fichier nommé `{{s3-role-trust-policy-kmsobj}}.json` dans le répertoire actif sur votre ordinateur local. Cette politique accorde au principal de service Amazon S3 les autorisations nécessaires pour endosser le rôle et permettre ainsi à Amazon S3 d’effectuer des tâches en votre nom.

------
#### [ JSON ]

****  

         ```
         {
            "Version":"2012-10-17",		 	 	 
            "Statement":[
               {
                  "Effect":"Allow",
                  "Principal":{
                     "Service":"s3.amazonaws.com"
                  },
                  "Action":"sts:AssumeRole"
               }
            ]
         }
         ```

------

      1. Utilisez la commande suivante pour créer le rôle :

         ```
         $ aws iam create-role \
         --role-name {{replicationRolekmsobj}} \
         --assume-role-policy-document file://{{s3-role-trust-policy-kmsobj}}.json  \
         --profile {{acctA}}
         ```

   1. Ensuite, attachez une stratégie d’autorisation au rôle. Cette stratégie accorde des autorisations pour diverses actions sur les compartiments et les objets Amazon S3. 

      1. Copiez la politique d'autorisations suivante et enregistrez-la dans un fichier nommé `{{s3-role-permissions-policykmsobj}}.json` dans le répertoire actuel de votre ordinateur local. Vous allez créer un rôle IAM et attacherez par la suite la stratégie à celui-ci. 
**Important**  
Dans la politique d'autorisation, vous spécifiez les identifiants de AWS KMS clé qui seront utilisés pour le chiffrement des `{{amzn-s3-demo-destination-bucket}}` compartiments `{{amzn-s3-demo-source-bucket}}` et. Vous devez créer deux clés KMS distinctes pour les `{{amzn-s3-demo-destination-bucket}}` compartiments `{{amzn-s3-demo-source-bucket}}` et. AWS KMS keys ne sont pas partagés en dehors de Région AWS celui dans lequel ils ont été créés. 

------
#### [ JSON ]

****  

         ```
         {
            "Version":"2012-10-17",		 	 	 
            "Statement":[
               {
                  "Action":[
                     "s3:ListBucket",
                     "s3:GetReplicationConfiguration",
                     "s3:GetObjectVersionForReplication",
                     "s3:GetObjectVersionAcl",
                     "s3:GetObjectVersionTagging"
                  ],
                  "Effect":"Allow",
                  "Resource":[
                     "arn:aws:s3:::{{amzn-s3-demo-source-bucket}}",
                     "arn:aws:s3:::{{amzn-s3-demo-source-bucket}}/*"
                  ]
               },
               {
                  "Action":[
                     "s3:ReplicateObject",
                     "s3:ReplicateDelete",
                     "s3:ReplicateTags"
                  ],
                  "Effect":"Allow",
                  "Condition":{
                     "StringLikeIfExists":{
                        "s3:x-amz-server-side-encryption":[
                           "aws:kms",
                           "AES256",
                           "aws:kms:dsse"
                        ],
                        "s3:x-amz-server-side-encryption-aws-kms-key-id":[
                           "{{AWS KMS key IDs(in ARN format) to use for encrypting object replicas}}"  
                        ]
                     }
                  },
                  "Resource":"arn:aws:s3:::{{amzn-s3-demo-destination-bucket}}/*"
               },
               {
                  "Action":[
                     "kms:Decrypt"
                  ],
                  "Effect":"Allow",
                  "Condition":{
                     "StringLike":{
                        "kms:ViaService":"s3.{{us-east-1}}.amazonaws.com",
                        "kms:EncryptionContext:aws:s3:arn":[
                           "arn:aws:s3:::{{amzn-s3-demo-source-bucket}}/*"
                        ]
                     }
                  },
                  "Resource":[
                     "arn:aws:kms:{{us-east-1}}:{{111122223333}}:key/{{key-id}}" 
                  ]
               },
               {
                  "Action":[
                     "kms:Encrypt"
                  ],
                  "Effect":"Allow",
                  "Condition":{
                     "StringLike":{
                        "kms:ViaService":"s3.{{us-west-2}}.amazonaws.com",
                        "kms:EncryptionContext:aws:s3:arn":[
                           "arn:aws:s3:::{{amzn-s3-demo-destination-bucket}}/*"
                        ]
                     }
                  },
                  "Resource":[
                     "arn:aws:kms:{{us-west-2}}:{{111122223333}}:key/{{key-id}}" 
                  ]
               }
            ]
         }
         ```

------

      1. Créez une politique et attachez-la au rôle.

         ```
         $ aws iam put-role-policy \
         --role-name {{replicationRolekmsobj}} \
         --policy-document file://{{s3-role-permissions-policykmsobj}}.json \
         --policy-name {{replicationRolechangeownerPolicy}} \
         --profile {{acctA}}
         ```

1. Ensuite, ajoutez la configuration de réplication suivante au compartiment `{{{{amzn-s3-demo-source-bucket}}}}`. Elle demande à Amazon S3 de répliquer les objets dotés du préfixe `{{Tax/}}` dans le compartiment `{{{{amzn-s3-demo-destination-bucket}}}}`. 
**Important**  
Dans la configuration de réplication, spécifiez le rôle IAM qu’Amazon S3 peut endosser. Vous ne pouvez effectuer cette tâche que si vous disposez de l’autorisation `iam:PassRole`. Le profil que vous spécifiez dans la commande CLI doit disposer de cette autorisation. Pour plus d’informations, consultez [Octroi d’autorisations à un utilisateur pour transférer un rôle à un Service AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) dans le *Guide de l’utilisateur IAM*.

   ```
    <ReplicationConfiguration>
     <Role>{{IAM-Role-ARN}}</Role>
     <Rule>
       <Priority>1</Priority>
       <DeleteMarkerReplication>
          <Status>Disabled</Status>
       </DeleteMarkerReplication>
       <Filter>
          <Prefix>Tax</Prefix>
       </Filter>
       <Status>Enabled</Status>
       <SourceSelectionCriteria>
         <SseKmsEncryptedObjects>
           <Status>Enabled</Status>
         </SseKmsEncryptedObjects>
       </SourceSelectionCriteria>
       <Destination>
         <Bucket>arn:aws:s3:::{{{{amzn-s3-demo-destination-bucket}}}}</Bucket>
         <EncryptionConfiguration>
           <ReplicaKmsKeyID>{{AWS KMS key IDs to use for encrypting object replicas}}</ReplicaKmsKeyID>
         </EncryptionConfiguration>
       </Destination>
     </Rule>
   </ReplicationConfiguration>
   ```

   Pour ajouter une configuration de réplication au compartiment `{{{{amzn-s3-demo-source-bucket}}}}`, procédez comme suit :

   1. Vous AWS CLI devez spécifier la configuration de réplication au format JSON. Enregistrez la configuration JSON suivante dans un fichier (`{{replication}}.json`) dans le répertoire actuel sur votre ordinateur local. 

      ```
      {
         "Role":"{{IAM-Role-ARN}}",
         "Rules":[
            {
               "Status":"Enabled",
               "Priority":1,
               "DeleteMarkerReplication":{
                  "Status":"Disabled"
               },
               "Filter":{
                  "Prefix":"{{Tax}}"
               },
               "Destination":{
                  "Bucket":"arn:aws:s3:::{{{{amzn-s3-demo-destination-bucket}}}}",
                  "EncryptionConfiguration":{
                     "ReplicaKmsKeyID":"{{AWS KMS key IDs (in ARN format) to use for encrypting object replicas}}"
                  }
               },
               "SourceSelectionCriteria":{
                  "SseKmsEncryptedObjects":{
                     "Status":"Enabled"
                  }
               }
            }
         ]
      }
      ```

   1. Modifiez le JSON pour indiquer les valeurs du compartiment `{{{{amzn-s3-demo-destination-bucket}}}}`, des `{{AWS KMS key IDs (in ARN format)}}` et de l’`{{IAM-role-ARN}}`. Enregistrez les Modifications.

   1. Utilisez la commande suivante pour ajouter la configuration de réplication à votre compartiment `{{{{amzn-s3-demo-source-bucket}}}}`. Veillez à saisir le nom du compartiment `{{{{amzn-s3-demo-source-bucket}}}}`.

      ```
      $ aws s3api put-bucket-replication \
      --replication-configuration file://{{replication}}.json \
      --bucket {{{{amzn-s3-demo-source-bucket}}}} \
      --profile {{acctA}}
      ```

1. Testez la configuration pour vérifier que les objets chiffrés ont été répliqués. Dans la console Amazon S3, procédez comme suit :

   1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

   1. Dans le compartiment `{{{{amzn-s3-demo-source-bucket}}}}`, créez un dossier nommé `{{Tax}}`. 

   1. Ajoutez des exemples d’objet au dossier. Assurez-vous de choisir l’option de chiffrement et de spécifier votre clé KMS pour chiffrer les objets. 

   1. Vérifiez que le compartiment `{{{{amzn-s3-demo-destination-bucket}}}}` contient les réplicas d’objets et qu’ils ont été chiffrés avec la clé KMS que vous avez spécifiée dans la configuration. Pour de plus amples informations, veuillez consulter [Obtention d’informations sur le statut de la réplication](replication-status.md).

### Utilisation de AWS Kits SDK
<a name="replication-ex4-sdk"></a>

Pour obtenir un exemple de code montrant comment ajouter une configuration de réplication, consultez [Utilisation de AWS Kits SDK](replication-walkthrough1.md#replication-ex1-sdk). Vous devez modifier la configuration de réplication en conséquence. 

 