Réplication d'objets créés avec le chiffrement côté serveur (SSE-C, SSE-S3, SSE-KMS, DSSE-KMS) - Amazon Simple Storage Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Réplication d'objets créés avec le chiffrement côté serveur (SSE-C, SSE-S3, SSE-KMS, DSSE-KMS)

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. 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 AWS 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 Command Line Interface et. 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 clés AWS Key Management Service (AWS KMS) (SSE-KMS)

  • Chiffrement double couche côté serveur avec AWS KMS clés (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 pour répliquer des objets chiffrés.

Pour un exemple avec des step-by-step instructions, voirRéplication d'objets chiffrés. Pour obtenir des informations sur la création d'une configuration de réplication, veuillez consulter Réplication d'objets.

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 en savoir plus, consultez la section 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 les objets du compartiment source sont chiffrés à l'aide d'un chiffrement côté serveur avec des clés gérées 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 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

Vous pouvez gérer les 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).

S3 Replication prend en charge les objets chiffrés avec SSE-C. Vous pouvez configurer la réplication d'objets SSE-C 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'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 Configuration de la réplication et Réplication d'objets existants via la réplication par lot S3.

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 la page de tarification d'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 un exemple avec des step-by-step instructions, voirRéplication d'objets chiffrés. Pour obtenir des informations sur la création d'une configuration de réplication, veuillez consulter Réplication d'objets.

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

  • 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 au même endroit Région AWS que les compartiments 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:::DOC-EXAMPLE-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. (S3 uses this key to encrypt object replicas.)</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 à l'aide de 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).

  • kms:Decryptet 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.

  • 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 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:Decryptactions 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 dans le Guide du AWS Key Management Service développeur.

Clés de compartiment S3 et réplication

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

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 du SSE-S3 et du 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.

{ "Version":"2012-10-17", "Statement":[ { "Action": ["kms:Decrypt"], "Effect": "Allow", "Condition": { "StringLike": { "kms:ViaService": "s3.source-bucket-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET/key-prefix1*" ] } }, "Resource": [ "List of AWS KMS key ARNs that are used to encrypt source objects." ] }, { "Action": ["kms:Encrypt"], "Effect": "Allow", "Condition": { "StringLike": { "kms:ViaService": "s3.destination-bucket-1-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET1/key-prefix1*" ] } }, "Resource": [ "AWS KMS key ARNs (in the same Région AWS as destination bucket 1). Used to encrypt object replicas created in destination bucket 1." ] }, { "Action": ["kms:Encrypt"], "Effect": "Allow", "Condition": { "StringLike": { "kms:ViaService": "s3.destination-bucket-2-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": [ "arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET2/key-prefix1*" ] } }, "Resource": [ "AWS KMS key ARNs (in the same Région AWS as destination bucket 2). Used to encrypt object replicas created in destination bucket 2." ] } ] }
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.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET" ] }, { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl" ], "Resource":[ "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET/key-prefix1*" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete" ], "Resource":"arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET/key-prefix1*" }, { "Action":[ "kms:Decrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.source-bucket-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET/key-prefix1*" ] } }, "Resource":[ "List of the AWS KMS key ARNs that are used to encrypt source objects." ] }, { "Action":[ "kms:Encrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.destination-bucket-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET/prefix1*" ] } }, "Resource":[ "AWS KMS key ARNs (in the same Région AWS as the destination bucket) to use for encrypting object replicas" ] } ] }
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.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetReplicationConfiguration", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET" ] }, { "Effect":"Allow", "Action":[ "s3:GetObjectVersionForReplication", "s3:GetObjectVersionAcl" ], "Resource":[ "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET/key-prefix1*" ] }, { "Effect":"Allow", "Action":[ "s3:ReplicateObject", "s3:ReplicateDelete" ], "Resource":"arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET/key-prefix1*" }, { "Action":[ "kms:Decrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.source-bucket-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::DOC-EXAMPLE-SOURCE-BUCKET" ] } }, "Resource":[ "List of the AWS KMS key ARNs that are used to encrypt source objects." ] }, { "Action":[ "kms:Encrypt" ], "Effect":"Allow", "Condition":{ "StringLike":{ "kms:ViaService":"s3.destination-bucket-region.amazonaws.com", "kms:EncryptionContext:aws:s3:arn":[ "arn:aws:s3:::DOC-EXAMPLE-DESTINATION-BUCKET" ] } }, "Resource":[ "AWS KMS key ARNs (in the same Région AWS as the destination bucket) to use for encrypting object replicas" ] } ] }

Octroi d'autorisations supplémentaires pour les scénarios à plusieurs comptes

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

Les objets chiffrés via Clés gérées par AWS ne peuvent pas être partagés entre comptes car vous ne pouvez pas modifier les stratégies de clé. Si vous devez répliquer des données SSE-KMS entre comptes, vous devez utiliser une clé gérée par le client provenant de. AWS KMS

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

  2. Pour modifier le Région AWS, utilisez le sélecteur de région dans le coin 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 vers le bas jusqu'à Autre Comptes AWS.

  7. Choisissez Ajouter un autre Comptes AWS.

    La boîte Comptes AWS de dialogue Autre apparaît.

  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 Enregistrer les modifications.

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

AWS KMS considérations relatives aux quotas de transactions

Lorsque vous ajoutez de nombreux nouveaux objets AWS KMS chiffrés après avoir activé la réplication entre régions (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 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 le Service Quotas n'est pas pris en charge dans votre région, ouvrez un AWS Support dossier.