Utilisation du chiffrement côté serveur avec AWS KMS clés (SSE-KMS) dans les compartiments de répertoires - 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.

Utilisation du chiffrement côté serveur avec AWS KMS clés (SSE-KMS) dans les compartiments de répertoires

Les contrôles de sécurité dans AWS KMS peut vous aider à respecter les exigences de conformité liées au chiffrement. Vous pouvez choisir de configurer des compartiments de répertoire pour utiliser le chiffrement côté serveur avec AWS Key Management Service (AWS KMS) clés (SSE-KMS) et utilisez ces KMS clés pour protéger vos données dans les compartiments de répertoire Amazon S3. Pour plus d'informations sur SSE -KMS, consultezUtilisation du chiffrement côté serveur avec AWS KMS clés (SSE-KMS).

Autorisations

Pour charger ou télécharger un objet chiffré à l'aide d'un AWS KMS key vers ou depuis Amazon S3, vous avez besoin kms:GenerateDataKey d'kms:Decryptautorisations sur la clé. Pour plus d'informations, voir Autoriser les utilisateurs de clés à utiliser une KMS clé pour des opérations cryptographiques dans le AWS Key Management Service Guide du développeur. Pour plus d'informations sur le AWS KMS autorisations requises pour les téléchargements partitionnés, voir. Téléchargement en plusieurs parties API et autorisations

Pour plus d'informations sur KMS les touches pour SSE -KMS, consultezSpécification du chiffrement côté serveur avec AWS KMS (SSE-KMS).

AWS KMS keys

Votre SSE KMS configuration ne peut prendre en charge qu'une seule clé gérée par le client par compartiment de répertoire pendant toute la durée de vie du compartiment. Clé gérée par AWS(aws/s3) n'est pas pris en charge. En outre, une fois que vous avez spécifié une clé gérée par le client pour SSE -KMS, vous ne pouvez pas remplacer la clé gérée par le client pour la KMS configuration du SSE compartiment.

Vous pouvez identifier la clé gérée par le client que vous avez spécifiée pour la KMS configuration du SSE compartiment, de la manière suivante :

  • Vous faites une demande d'HeadObjectAPIopération pour trouver la valeur de x-amz-server-side-encryption-aws-kms-key-id dans votre réponse.

Pour utiliser une nouvelle clé gérée par le client pour vos données, nous vous recommandons de copier vos objets existants dans un nouveau compartiment de répertoire avec une nouvelle clé gérée par le client.

Lorsque vous spécifiez un AWS KMS clé gérée par le client pour le chiffrement dans votre compartiment d'annuaire, utilisez uniquement l'identifiant ou la cléARN. Le format d'alias de clé de la KMS clé n'est pas pris en charge.

Pour plus d'informations sur KMS les touches pour SSE -KMS, consultezAWS KMS keys.

Utilisation de SSE - KMS pour les opérations entre comptes

Lorsque vous utilisez le chiffrement pour des opérations entre comptes dans des compartiments d'annuaire, tenez compte des points suivants :

  • Si vous souhaitez accorder un accès entre comptes à vos objets S3, configurez une politique de clé gérée par le client pour autoriser l'accès depuis un autre compte.

  • Pour spécifier une clé gérée par le client, vous devez utiliser une KMS clé entièrement qualifiéeARN.

Clés de compartiment Amazon S3

Les clés de compartiment S3 sont toujours activées pour GET les PUT opérations dans un compartiment de répertoire et ne peuvent pas être désactivées. Les clés de compartiment S3 ne sont pas prises en charge lorsque vous copiez SSE des objets KMS chiffrés depuis des compartiments à usage général vers des compartiments de répertoire, des compartiments de répertoire vers des compartiments à usage général, ou entre des compartiments de répertoire, via CopyObject, UploadPartCopy, le Copy opération dans Batch Operations, ou import emplois. Dans ce cas, Amazon S3 appelle AWS KMS chaque fois qu'une demande de copie est faite pour un objet KMS chiffré.

Pour les APIopérations du point de terminaison zonal (au niveau de l'objet), à l'exception de CopyObjectet UploadPartCopy, vous authentifiez et autorisez les demandes via CreateSessionpour une faible latence. Nous recommandons que le chiffrement par défaut du compartiment utilise la configuration de chiffrement souhaitée et que vous ne remplaciez pas le chiffrement par défaut du compartiment dans vos CreateSession demandes ou demandes PUT d'objets. Les nouveaux objets sont ensuite automatiquement chiffrés avec les paramètres de chiffrement souhaités. Pour chiffrer de nouveaux objets dans un compartiment de répertoire avec SSE -KMS, vous devez spécifier SSE - KMS comme configuration de chiffrement par défaut du compartiment d'annuaire avec une KMS clé (en particulier, une clé gérée par le client). Ensuite, lorsqu'une session est créée pour les API opérations de point de terminaison Zonal, les nouveaux objets sont automatiquement chiffrés et déchiffrés avec des SSE clés de compartiment S3 pendant la session. KMS Pour plus d'informations sur les comportements de remplacement du chiffrement dans les compartiments d'annuaire, consultez la section Spécification du chiffrement côté serveur avec AWS KMS pour le téléchargement de nouveaux objets.

Les clés de compartiment S3 sont utilisées pendant une période limitée dans le temps dans Amazon S3, ce qui réduit encore la nécessité pour Amazon S3 d'envoyer des demandes à AWS KMS pour terminer les opérations de chiffrement. Pour plus d'informations sur l'utilisation des clés de compartiment S3, consultez Clés de compartiment Amazon S3 etRéduction du coût de SSE : KMS avec les clés de compartiment Amazon S3.

Exiger SSE - KMS

Pour exiger SSE - KMS de tous les objets d'un compartiment de répertoire particulier, vous pouvez utiliser une politique de compartiment. Par exemple, lorsque vous utilisez l'CreateSessionAPIopération pour autoriser le téléchargement d'un nouvel objet (PutObject,, etCreateMultipartUpload)CopyObject, la politique de compartiment suivante refuse l'autorisation de téléchargement de l'objet (s3express:CreateSession) à tout le monde si la CreateSession demande n'inclut pas d'x-amz-server-side-encryption-aws-kms-key-iden-tête demandant SSE -KMS.

{ "Version":"2012-10-17", "Id":"UploadObjectPolicy", "Statement":[{ "Sid":"DenyObjectsThatAreNotSSEKMS", "Effect":"Deny", "Principal":"*", "Action":"s3express:CreateSession", "Resource":"arn:aws:s3express:region:account-id:bucket/bucket-base-name--azid--x-s3/*", "Condition":{ "Null":{ "s3express:x-amz-server-side-encryption-aws-kms-key-id":"true" } } } ] }

Pour exiger qu'un particulier AWS KMS key pour chiffrer les objets d'un compartiment, vous pouvez utiliser la clé de s3express:x-amz-server-side-encryption-aws-kms-key-id condition. Pour spécifier la KMS clé, vous devez utiliser une clé Amazon Resource Name (ARN) au arn:aws:kms:region:acct-id:key/key-id format. AWS Identity and Access Management ne valide pas si la chaîne pour s3express:x-amz-server-side-encryption-aws-kms-key-id existe. Le AWS KMS L'ID de clé utilisé par Amazon S3 pour le chiffrement des objets doit correspondre au AWS KMS ID de clé dans la politique, sinon Amazon S3 refuse la demande.

Pour plus d'informations sur l'utilisation de SSE - KMS pour le chargement de nouveaux objets, consultezSpécification du chiffrement côté serveur avec AWS KMS (SSE-KMS) pour le téléchargement de nouveaux objets dans des compartiments de répertoire.

Pour obtenir la liste complète des clés de condition spécifiques pour les compartiments de répertoire, consultezAWS Identity and Access Management (IAM) pour S3 Express One Zone.

Contexte de chiffrement

Pour les compartiments d'annuaire, un contexte de chiffrement est un ensemble de paires clé-valeur contenant des informations contextuelles sur les données. Aucune valeur de contexte de chiffrement supplémentaire n'est prise en charge. Pour plus d'informations sur le contexte de chiffrement, consultez la rubrique Contexte de chiffrement.

Par défaut, si vous utilisez SSE - KMS sur un bucket de répertoire, Amazon S3 utilise le bucket Amazon Resource Name (ARN) comme paire de contextes de chiffrement :

arn:aws:s3express:region:account-id:bucket/bucket-base-name--azid--x-s3

Assurez-vous que vos IAM politiques ou AWS KMS les politiques clés utilisent votre compartiment ARN comme contexte de chiffrement.

Vous pouvez éventuellement fournir une paire de contextes de chiffrement explicite en utilisant l'x-amz-server-side-encryption-contexten-tête d'une API demande de point de terminaison zonal, telle que CreateSession. La valeur de cet en-tête est une chaîne codée en Base64 codée en UTF -8JSON, qui contient le contexte de chiffrement sous forme de paires clé-valeur. Pour les compartiments d'annuaire, le contexte de chiffrement doit correspondre au contexte de chiffrement par défaut, à savoir le bucket Amazon Resource Name (ARN). De plus, comme le contexte de chiffrement n'est pas chiffré, assurez-vous qu'il ne contient pas d'informations sensibles.

Vous pouvez utiliser le contexte de chiffrement pour identifier et classer vos opérations cryptographiques par catégorie. Vous pouvez également utiliser la ARN valeur de contexte de chiffrement par défaut pour suivre les demandes pertinentes dans AWS CloudTrail en visualisant quel bucket de répertoire ARN a été utilisé avec quelle clé de chiffrement.

Dans le requestParameters champ d'un fichier CloudTrail journal, si vous utilisez SSE - KMS sur un bucket de répertoire, la valeur du contexte de chiffrement est ARN celle du bucket.

"encryptionContext": { "aws:s3express:arn": "arn:aws:s3:::arn:aws:s3express:region:account-id:bucket/bucket-base-name--azid--x-s3" }

De même, pour le chiffrement d'objets avec SSE - KMS dans un compartiment de répertoire, votre AWS KMS CloudTrail les événements enregistrent votre bucket ARN plutôt que votre objetARN.

Envoi de demandes pour AWS KMS objets chiffrés

Les compartiments de répertoire ne sont accessibles que via HTTPS (TLS). En outre, les compartiments d'annuaire signent les demandes en utilisant AWS Version 4 de la signature (SigV4). Pour plus d'informations sur l'envoi de demandes pour AWS KMS objets chiffrés, voirEnvoi de demandes pour AWS KMS objets chiffrés.

Si votre objet utilise SSE -KMS, n'envoyez pas d'en-têtes de demande de chiffrement pour les GET requêtes et les HEAD requêtes. Sinon, vous obtiendrez une erreur HTTP400 Bad Request.

Audit SSE : KMS chiffrement dans les compartiments de répertoires

Pour vérifier l'utilisation de votre AWS KMS clés pour vos SSE données KMS cryptées, vous pouvez utiliser AWS CloudTrail journaux. Vous pouvez obtenir un aperçu de vos opérations cryptographiques, telles que GenerateDataKey et Decrypt. CloudTrail prend en charge de nombreuses valeurs d'attribut pour filtrer votre recherche, notamment le nom de l'événement, le nom d'utilisateur et la source de l'événement.