Réplication d’objets chiffrés (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C) - Amazon Simple Storage Service

Réplication d’objets chiffrés (SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)

Important

Amazon S3 applique désormais le chiffrement côté serveur avec les clés gérées par Amazon S3 (SSE-S3) comme niveau de base du chiffrement 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. Le statut de chiffrement automatique pour la configuration de chiffrement par défaut du compartiment S3 et pour les nouveaux chargements d’objets est disponible dans les journaux AWS CloudTrail, S3 Inventory, S3 Storage Lens, dans la console Amazon S3, et en tant qu’en-tête de réponse supplémentaire de l’API Amazon S3 dans l’AWS Command Line Interface et les kits AWS SDK. Pour plus d’informations, consultez la FAQ sur le chiffrement par défaut.

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 :

  • Chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3)

  • Chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS)

  • Chiffrement double couche côté serveur avec des clés AWS KMS (DSSE-KMS)

  • Chiffrement côté serveur avec 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.

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 AWS Identity and Access Management (IAM) qui accordent les autorisations nécessaires à la réplication d’objets chiffrés.

Pour découvrir un exemple avec des instructions pas à pas, consultez Activation de la réplication pour les objets chiffrés. 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.

Note

Vous pouvez utiliser une clé AWS KMS keys multi-régions 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 dans le Guide du développeur AWS Key Management Service.

Comment le chiffrement par défaut du compartiment a un impact sur la réplication

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 des objets du compartiment source sont chiffrés en utilisant le chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3), le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS) ou le chiffrement double couche côté serveur avec des clés AWS KMS (DSSE-KMS), les objets réplica du compartiment de destination utilisent le même type de chiffrement que les objets sources. 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

Vous pouvez gérer vos propres clés propriétaires de chiffrement en utilisant un chiffrement côté serveur avec des clés fournies par le client (SSE-C). Avec le 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 plus d’informations, consultez Utilisation du chiffrement côté serveur avec les clés fournies par le client (SSE-C).

La réplication S3 prend en charge les objets chiffrés avec le SSE-C. Vous pouvez configurer la réplication d’objets SSE-C dans la console Amazon S3 ou à l’aide des kits 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’autorisations SSE-C supplémentaires au-delà de celles actuellement requises pour la réplication.

La réplication S3 réplique automatiquement les objets chiffrés par SSE-C nouvellement chargés s’ils sont éligibles, conformément à 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 et Réplication d’objets existants via la réplication par lot.

La réplication d’objets SSE-C n’entraîne pas de frais supplémentaires. Pour en savoir plus sur la tarification de la réplication, consultez Tarification Amazon S3.

Réplication d’objets chiffrés avec SSE-S3, SSE-KMS ou DSSE-KMS

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. 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.

Spécification d’informations supplémentaires dans la configuration de la réplication

Dans la configuration de réplication, procédez comme suit :

  • Dans l’élément Destination de votre configuration de réplication, ajoutez l’ID de la clé symétrique gérée par le client AWS KMS que vous voulez qu’Amazon S3 utilise pour chiffrer des réplicas d’objets, comme illustré dans l’exemple de configuration de réplication suivant.

  • Validez explicitement votre choix en activant la réplication d’objets chiffrés avec des 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 la même 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’ID AWS KMS key spécifié pour chiffrer ces réplicas 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

Pour répliquer des objets chiffrés au repos avec SSE-S3, SSE-KMS ou DSSE-KMS, accordez les autorisations supplémentaires suivantes au rôle AWS Identity and Access Management (IAM) que vous spécifiez dans la configuration de réplication. Vous octroyez ces autorisations en mettant à jour la stratégie d’autorisations associée au rôle IAM.

  • Action s3:GetObjectVersionForReplication pour les objets sources – Cette action permet à Amazon S3 de répliquer les objets non chiffrés et les objets créés avec un chiffrement côté serveur en utilisant une clé SSE-S3, SSE-KMS ou 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. De plus, l’action s3:GetObjectVersion permet la réplication des objets non chiffrés et des objets chiffrés avec SSE-S3, mais pas la réplication des objets chiffrés avec des clés KMS (SSE-KMS ou DSSE-KMS).

  • Action AWS KMS kms:Decrypt et kms:Encrypt 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.

  • Action kms:GenerateDataKey pour la réplication d’objets en texte brut – Si vous répliquez des objets en texte brut dans un compartiment avec le chiffrement SSE-KMS ou DSSE-KMS activé par défaut, vous devez inclure l’autorisation kms:GenerateDataKey pour le contexte de chiffrement de destination et la clé KMS dans la politique IAM.

Nous vous recommandons de restreindre ces autorisations uniquement aux compartiments et aux objets de destination à l’aide des clés de condition AWS KMS. Le Compte AWS qui possède le rôle IAM doit avoir des autorisations pour les actions kms:Encrypt et kms:Decrypt pour les clés KMS répertoriées dans la politique. Si les clés KMS sont détenues par un autre compte Compte AWS, le propriétaire des clés KMS devra accorder ces autorisations au Compte AWS qui possède le rôle IAM. Pour plus d’informations sur la gestion de l’accès à ces clés KMS, consultez Utilisation des politiques IAM avec AWS KMS dans le Guide du développeur AWS Key Management Service.

Clés de compartiment S3 et réplication

Pour utiliser la réplication avec une clé de compartiment S3, la politique de AWS KMS key pour la clé KMS utilisée pour chiffrer le réplica d’objet doit inclure l’autorisation kms:Decrypt pour le principal qui appelle. 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.

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) (dans la section « Utilisation de l’API REST ») et Modifications à prendre en compte avant d’activer une clé de compartiment S3.

Exemples de politiques : utilisation de SSE-S3 et de SSE-KMS avec la réplication

L’exemple suivant de politiques IAM montre des instructions pour l’utilisation du SSE-S3 et du SSE-KMS avec la réplication.

Exemple : utilisation de SSE-KMS avec des compartiments de destination distincts

L’exemple suivant de politique présente des instructions pour l’utilisation du SSE-KMS avec des compartiments de destination distincts.

Exemple : réplication d’objets créés avec SSE-S3 et SSE-KMS

Vous trouverez ci-dessous une politique IAM complète qui accorde les autorisations nécessaires pour répliquer des objets non chiffrés, des objets créés avec le SSE-S3 et des objets créés avec le SSE-KMS.

JSON
{ "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" ] } ] }
Exemple : 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.

JSON
{ "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

Dans un scénario à plusieurs comptes où les compartiments source et de destination appartiennent à différents Comptes AWS, vous pouvez utiliser une clé KMS pour chiffrer les réplicas d’objet. 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 des données SSE-KMS entre comptes, votre règle de réplication doit spécifier une clé gérée par le client AWS KMS pour le compte de destination. Les Clés gérées par AWS n’autorisent pas une utilisation intercompte et ne peuvent donc pas être utilisées pour effectuer une réplication intercompte.

Pour accorder au propriétaire du compartiment source l’autorisation d’utiliser la clé KMS (console AWS KMS)
  1. Connectez-vous à la AWS Management Console et ouvrez la console AWS KMS à l’adresse https://console.aws.amazon.com/kms.

  2. Pour changer de Région AWS, utilisez le sélecteur de région dans l’angle supérieur droit de la page.

  3. 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.

  4. Sélectionnez la clé KMS.

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

  6. Faites défiler la page jusqu’à Autres Comptes AWS.

  7. Choisissez Ajouter d’autres Comptes AWS.

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

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

  9. Sélectionnez Save Changes.

Pour octroyer au propriétaire du compartiment source l’autorisation d’utiliser la clé KMS (AWS CLI)

Considérations relatives aux quotas de transactions AWS KMS

Lorsque vous ajoutez un grand nombre de nouveaux objets avec le chiffrement AWS KMS après avoir activé la réplication entre régions (CRR), vous pouvez rencontrer des limitations (erreurs 503 Service Unavailable HTTP). La limitation survient lorsque le nombre de transactions AWS KMS par seconde dépasse le quota actuel. Pour plus d’informations, consultez Quotas 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. Si les Service Quotas ne sont pas pris en charge dans votre Région, ouvrez un cas de AWS Support.

Activation de la réplication pour les objets chiffrés

Par défaut, Amazon S3 ne réplique pas les objets chiffrés en utilisant le chiffrement côté serveur avec des clés AWS Key Management Service (AWS KMS) (SSE-KMS) ou le chiffrement double couche côté serveur avec des clés 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 des compartiments de façon à demander à Amazon S3 de répliquer ces objets. Cet exemple décrit comment utiliser la console Amazon S3 et AWS Command Line Interface (AWS CLI) pour modifier la configuration de réplication de compartiment afin d’activer la réplication des 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 plus d’informations, consultez Clés de compartiment S3 et réplication.

Note

Vous pouvez utiliser une clé AWS KMS keys multi-régions 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 dans le Guide du développeur AWS Key Management Service.

Pour obtenir des instructions détaillées, consultez Configuration d’une réplication pour des compartiments dans le même compte. Cette rubrique fournit des instructions pour définir une configuration de réplication lorsque les compartiments source et de destination appartiennent au même compte ou à des Comptes AWS différents.

Pour répliquer des objets chiffrés avec l’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 une fonction du service AWS Identity and Access Management (IAM) qui accorde à Amazon S3 l’autorisation de 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 dans le Guide de l’utilisateur AWS Command Line Interface.

  2. 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
  3. 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 compartiments appartiennent à des Comptes AWS différents, spécifiez des profils différents pour chaque compte.

    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
  4. 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" } ] }
      2. 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
    2. 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 stratégie d’autorisation, précisez les ID de clé AWS KMS qui seront utilisés pour le chiffrement des compartiments amzn-s3-demo-source-bucket et amzn-s3-demo-destination-bucket. Vous devez créer deux clés KMS distinctes pour les compartiments amzn-s3-demo-source-bucket et amzn-s3-demo-destination-bucket. Les AWS KMS keys ne sont pas partagées hors de la Région AWS où elles ont été créées.

        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" ] } ] }
      2. 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
  5. 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 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. L’AWS CLI, exige de 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" } } } ] }
    2. 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.

    3. 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
  6. 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 AWS Management Console et ouvrez la console Amazon S3 à l’adresse https://console.aws.amazon.com/s3/.

    2. Dans le compartiment amzn-s3-demo-source-bucket, créez un dossier nommé Tax.

    3. 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.

    4. 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 plus d’informations, consultez Obtention d’informations sur le statut de la réplication.

Pour obtenir un exemple de code montrant comment ajouter une configuration de réplication, consultez Utilisation des kits AWS SDK. Vous devez modifier la configuration de réplication en conséquence.