Réduction du coût du SSE-KMS avec les clés de compartiment Amazon S3
Les clés de compartiment Amazon S3 réduisent le coût du chiffrement côté serveur Amazon S3 à l'aide de AWS Key Management Service (SSE-KMS). Cette nouvelle clé de niveau compartiment pour SSE peut réduire les coûts des demandes AWS KMS jusqu'à 99 % en diminuant le trafic de demandes d'Amazon S3 vers AWS KMS. En quelques clics dans AWS Management Console et sans modifier vos applications clients, vous pouvez configurer votre compartiment de sorte qu'il utilise une clé de compartiment S3 pour le chiffrement basé sur AWS KMS pour les nouveaux objets.
Clés de compartiment S3 pour SSE-KMS
Les charges de travail qui ont accès à des millions, voire des milliards d'objets chiffrés avec SSE-KMS peuvent générer d'importants volumes de demandes vers AWS KMS. Lorsque vous utilisez SSE-KMS pour protéger vos données sans clé de compartiment S3, Amazon S3 utilise une clé de données AWS KMS individuelle pour chaque objet. Un appel est en outre envoyé à AWS KMS chaque fois qu'une demande est faite par rapport à un objet chiffré KMS. Pour plus d'informations sur le fonctionnement de SSE-KMS, consultez Utilisation du chiffrement côté serveur avec AWS Key Management Service (SSE-KMS).
Lorsque vous configurez votre compartiment pour utiliser une clé de compartiment S3 pour SSE-KMS, AWS génère une clé de niveau compartiment à courte durée de vie à partir de AWS KMS, puis la conserve temporairement dans S3. Cette clé de niveau compartiment créera des clés de données pour les nouveaux objets au cours de son cycle de vie. Les clés de compartiment S3 sont utilisées pendant une période limitée au sein d'Amazon S3, ce qui réduit la nécessité pour S3 d'effectuer des requêtes à AWS KMS pour effectuer des opérations de chiffrement. Cela réduit le trafic de S3 vers AWS KMS, ce qui vous permet d'accéder aux objets chiffrés AWS KMS dans Amazon S3 à une fraction du coût précédent.
Une clé unique au niveau du compartiment est générée pour chaque demandeur afin de garantir qu'un événement CloudTrail AWS KMS capture le demandeur. Si deux rôles IAM différents placent chacun des objets dans le même compartiment au cours de la même période, cela génère deux clés de niveau compartiment puisque chaque rôle IAM AWS est considéré comme un demandeur différent. En outre, le même rôle, provenant d'une session IAM différente, sera toujours reconnu comme un demandeur différent. Par exemple, un cluster Amazon EMR composé de dix instances Amazon EC2, aura dix sessions IAM différentes même si chaque session assume le même rôle. Dans ce scénario, la tâche Amazon EMR utilisera au moins dix clés de niveau compartiment à un moment donné. Les économies réalisées sur les requêtes AWS KMS reflètent le nombre de demandeurs, les modèles de requête et l'âge relatif des objets demandés. Par exemple, un nombre réduit de demandeurs, sollicitant plusieurs objets dans une fenêtre de temps limitée, et chiffrés avec la même clé au niveau du compartiment, permettra quand même de réaliser des économies plus importantes.
Lorsque vous configurez une clé de compartiment S3, les objets qui se trouvent déjà dans le compartiment n'utilisent pas la clé de compartiment S3. Pour configurer une clé de compartiment S3 pour des objets existants, vous pouvez utiliser une opération COPY. Pour de plus amples informations, veuillez consulter Configuration d'une clé de compartiment S3 au niveau de l'objet à l'aide d'opérations par lot, de l'API REST, des kits SDK AWS ou d'AWS CLI.
Amazon S3 partage une clé de compartiment S3 uniquement pour les objets chiffrés avec la même AWS KMS key.

Configuration de clés de compartiment S3
Vous pouvez configurer votre compartiment de sorte qu'il utilise une clé de compartiment S3 pour SSE-KMS sur de nouveaux objets via la console Amazon S3, les kits SDK AWS, AWS CLI ou l'API REST. Lorsque l'option « S3 Bucket Keys » (Clés du compartiment S3) est activée sur votre compartiment, les objets chargés avec une autre clé SSE-KMS spécifiée utiliseront leur propres clés du compartiment S3. Quel que soit votre paramètre de clé de compartiment S3, vous pouvez inclure l'en-tête x-amz-server-side-encryption-bucket-key-enabled
avec une valeur true
ou false
dans votre requête, afin de remplacer le paramètre de compartiment.
Avant de configurer votre compartiment de sorte qu'il utilise une clé de compartiment S3, consultez Modifications à prendre en compte avant d'activer une clé de compartiment S3.
Configuration d'une clé de compartiment S3 à l'aide de la console Amazon S3
Lorsque vous créez un nouveau compartiment, vous pouvez configurer votre compartiment de sorte qu'il utilise une clé de compartiment S3 pour SSE-KMS sur de nouveaux objets. Vous pouvez également configurer un compartiment existant de sorte qu'il utilise une clé de compartiment S3 pour SSE-KMS sur de nouveaux objets en mettant à jour vos propriétés de compartiment.
Pour de plus amples informations, veuillez consulter Configuration de votre compartiment de sorte qu'il utilise une clé de compartiment S3 avec SSE-KMS pour de nouveaux objets.
Prise en charge de l'API REST, d'AWS CLI et du kit SDK AWS pour les clés de compartiment S3
Vous pouvez utiliser l'API REST, AWS CLI ou le kit SDK AWS pour configurer votre compartiment de sorte qu'il utilise une clé de compartiment S3 pour SSE-KMS sur de nouveaux objets. Vous pouvez également activer une clé de compartiment S3 au niveau de l'objet.
Pour de plus amples informations, consultez les ressources suivantes :
Les API suivantes prennent en charge les clés de compartiment S3 pour SSE-KMS :
-
-
ServerSideEncryptionRule
accepte leBucketKeyEnabled
paramètre permettant d'activer et de désactiver une clé de compartiment S3.
-
-
-
ServerSideEncryptionRule
renvoie les paramètres deBucketKeyEnabled
.
-
-
PutObject, CopyObject, CreateMutlipartUpload et PostObject
-
l'en-tête de demande
x-amz-server-side-encryption-bucket-key-enabled
active ou désactive une clé de compartiment S3 au niveau de l'objet.
-
-
HeadObject, GetObject, UploadPartCopy, UploadPart et CompleteUltiPartupload
-
l'en-tête de réponse
x-amz-server-side-encryption-bucket-key-enabled
indique si une clé de compartiment S3 est activée ou désactivée pour un objet.
-
Utilisation des AWS CloudFormation
Dans AWS CloudFormation, la ressource AWS::S3::Bucket
inclut une propriété de chiffrement appelée BucketKeyEnabled
que vous pouvez utiliser pour activer ou désactiver une clé de compartiment S3.
Pour de plus amples informations, veuillez consulter Utiliser AWS CloudFormation.
Modifications à prendre en compte avant d'activer une clé de compartiment S3
Avant d'activer une clé de compartiment S3, veuillez noter les modifications suivantes :
Politiques de clé IAM ou KMS
Si vos politiques IAM ou vos politiques de clé AWS KMS existantes utilisent l'Amazon Resource Name (ARN) de votre objet comme contexte de chiffrement pour affiner ou limiter l'accès à votre clé KMS, ces politiques ne fonctionneront pas avec une clé de compartiment S3. Les clés de compartiment S3 utilisent l'ARN du compartiment comme contexte de chiffrement. Avant d'activer une clé de compartiment S3, mettez à jour vos stratégies IAM ou vos stratégies de clé AWS KMS de sorte à utiliser l'ARN de votre compartiment comme contexte de chiffrement.
Pour plus d'informations sur le contexte de chiffrement et les clés de compartiment S3, consultez Contexte de chiffrement.
Événements AWS KMS CloudTrail
Après avoir activé une clé de compartiment S3, vos événements AWS KMS CloudTrail enregistrent l'ARN de votre compartiment au lieu de l'ARN de votre objet. En outre, vos journaux affichent moins d'événements KMS CloudTrail pour les objets SSE-KMS. Étant donné que l'élément de clé est limité dans le temps dans Amazon S3, les demandes adressées à AWS KMS sont moins nombreuses.
Utilisation d'une clé de compartiment S3 avec réplication
Vous pouvez utiliser des clés de compartiment S3 avec la réplication dans la même Région (SRR) et la réplication entre Régions (CRR).
Lorsqu'Amazon S3 réplique un objet chiffré, il conserve généralement les paramètres de chiffrement de l'objet réplica dans le compartiment de destination. Toutefois, si l'objet source n'est pas chiffré et que votre compartiment de destination utilise un chiffrement par défaut ou une clé de compartiment S3, Amazon S3 chiffre l'objet avec la configuration du compartiment de destination.
Les exemples suivants illustrent le fonctionnement d'une clé de compartiment S3 avec la réplication. Pour de plus amples informations, veuillez consulter Réplication d'objets créés avec le chiffrement côté serveur (SSE-C, SSE-S3, SSE-KMS).
Exemple 1 — L'objet source utilise des clés de compartiment S3, le compartiment de destination utilise le chiffrement par défaut
Si votre objet source utilise une clé de compartiment S3 mais que votre compartiment de destination utilise le chiffrement par défaut avec SSE-KMS, l'objet réplica conserve ses paramètres de chiffrement de clé de compartiment S3 dans le compartiment de destination. Le compartiment de destination utilise toujours le chiffrement par défaut avec SSE-KMS.
Exemple 2 — L'objet source n'est pas chiffré, le compartiment de destination utilise une clé de compartiment S3 avec SSE-KMS
Si votre objet source n'est pas chiffré et que le compartiment de destination utilise une clé de compartiment S3 avec SSE-KMS, l'objet source est chiffré avec une clé de compartiment S3 utilisant SSE-KMS dans le compartiment de destination. Cela produit un ETag
de l'objet source différent de l'ETag
de l'objet réplica. Vous devez mettre à jour les applications qui utilisent le ETag
pour compenser cette différence.
Utilisation des clés de compartiment S3
Pour plus d'informations sur l'activation et l'utilisation des clés de compartiment S3, consultez les sections suivantes :