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

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

Autorisations

Pour charger ou télécharger un objet chiffré AWS KMS key à destination ou en provenance d'Amazon S3, vous avez besoin kms:GenerateDataKey d'kms:Decryptautorisations sur la clé. Pour plus d’informations, consultez Permettre aux utilisateurs de clés d’utiliser une clé KMS pour les opérations de chiffrement dans le Guide de l’utilisateur AWS Key Management Service . Pour plus d'informations sur les AWS KMS autorisations requises pour les téléchargements partitionnés, consultez. API de chargement partitionné et autorisations

Pour plus d’informations sur les clés KMS pour SSE-KMS, consultez Spécification du chiffrement côté serveur avec AWS KMS (SSE-KMS).

AWS KMS keys

Votre configuration SSE-KMS ne peut prendre en charge qu’une seule clé gérée par le client par compartiment de répertoires pendant toute la durée de vie du compartiment. La Clé gérée par AWS (aws/s3) n’est pas prise en charge. De même, après avoir 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 configuration SSE-KMS du compartiment.

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

  • Effectuez une demande d’opération d’API HeadObject pour trouver la valeur de x-amz-server-side-encryption-aws-kms-key-id dans la 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épertoires avec une nouvelle clé gérée par le client.

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

Pour plus d’informations sur les clés KMS pour SSE-KMS, consultez AWS KMS keys.

Utilisation de SSE-KMS pour les opérations intercomptes

Lors de l’utilisation du chiffrement pour les opérations intercomptes, tenez compte des éléments suivants :

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

  • Pour spécifier une clé gérée par le client, vous devez utiliser un ARN de clé KMS complet.

Clés de compartiment Amazon S3

Les clés de compartiment S3 sont toujours activées pour les opérations GET et PUT dans un compartiment de répertoires et ne peuvent pas être désactivées. Les clés de compartiment S3 ne sont pas prises en charge lorsque vous copiez des objets chiffrés avec SSE-KMS depuis des compartiments à usage général vers des compartiments de répertoires, depuis des compartiments de répertoires vers des compartiments à usage général ou entre des compartiments de répertoires, par le biais de CopyObject, d’UploadPartCopy, de l’opération Copy dans les opérations par lot ou des tâches import. Dans ce cas, Amazon S3 effectue un appel à AWS KMS chaque fois qu'une demande de copie est faite pour un objet chiffré par KMS.

Pour les opérations d'API du point de terminaison zonal (au niveau de l'objet), à l'exception de CopyObjectet UploadPartCopy, vous authentifiez et autorisez les demandes pour une faible latence. CreateSession 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 demandes CreateSession ni dans vos demandes d’objets PUT. Les nouveaux objets seront ensuite automatiquement chiffrés avec les paramètres de chiffrement souhaités. Pour chiffrer de nouveaux objets dans un compartiment de répertoires avec SSE-KMS, vous devez spécifier SSE-KMS comme configuration de chiffrement par défaut de ce compartiment avec une clé KMS (plus spécifiquement, une clé gérée par le client). Ensuite, lorsqu’une session sera créée pour les opérations de l’API de point de terminaison zonal, les nouveaux objets seront automatiquement chiffrés et déchiffrés avec les clés SSE-KMS et les clés de compartiment S3 pendant la session. Pour plus d'informations sur les comportements de remplacement du chiffrement dans les compartiments de répertoire, voir Spécifier le chiffrement côté serveur avec AWS KMS pour les téléchargements 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 de faire des demandes AWS KMS pour effectuer des opérations de chiffrement. Pour plus d’informations sur l’utilisation des clés de compartiment S3, consultez Clés de compartiment Amazon S3 et Réduction du coût du SSE-KMS avec les clés de compartiment Amazon S3.

Chiffrement SSE-KMS requis

Pour exiger le chiffrement SSE-C de tous les objets figurant dans un compartiment de répertoires particulier, vous pouvez utiliser une politique de compartiment. Par exemple, lorsque vous utilisez l’opération d’API CreateSession pour autoriser le chargement d’un nouvel objet (PutObject, CopyObject et CreateMultipartUpload), la politique de compartiment suivante refuse l’autorisation de chargement de l’objet (s3express:CreateSession) à tout le monde si la demande CreateSession ne contient pas d’en-tête x-amz-server-side-encryption-aws-kms-key-id demandant le chiffrement 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--zone-id--x-s3/*", "Condition":{ "Null":{ "s3express:x-amz-server-side-encryption-aws-kms-key-id":"true" } } } ] }

Pour exiger qu'une donnée AWS KMS key soit utilisée 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 clé KMS, vous devez utiliser une clé Amazon Resource Name (ARN) au arn:aws:kms:region:acct-id:key/key-id format suivant. AWS Identity and Access Management ne valide pas si la chaîne pour s3express:x-amz-server-side-encryption-aws-kms-key-id existe. L'ID de AWS KMS clé utilisé par Amazon S3 pour le chiffrement des objets doit correspondre à l'ID de AWS KMS clé indiqué dans la politique, sinon Amazon S3 refuse la demande.

Pour plus d’informations sur l’utilisation de SSE-KMS pour les chargements de nouveaux objets, consultez Spécification du chiffrement côté serveur avec AWS KMS (SSE-KMS) pour les chargements de nouveaux objets dans des compartiments de répertoires.

Pour obtenir la liste complète des clés de condition spécifiques aux compartiments de répertoires, consultez Autorisation des opérations d’API de point de terminaison régional avec IAM.

Contexte de chiffrement

Pour les compartiments de répertoires, un contexte de chiffrement est un ensemble de paires clé-valeur qui contient des informations contextuelles supplémentaires sur les données. Aucune valeur supplémentaire de contexte de chiffrement 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 compartiment de répertoires, Amazon S3 utilise l’Amazon Resource Name (ARN) de ce compartiment comme paire de contexte de chiffrement :

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

Assurez-vous que vos politiques IAM ou AWS KMS clés utilisent l'ARN de votre bucket 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 demande d'API de point de terminaison zonal, telle que CreateSession. La valeur de cet en-tête est une chaîne codée en base64 d’un fichier JSON codé en UTF-8, qui contient le contexte de chiffrement sous forme de paires clé-valeur. Pour les compartiments de répertoires, le contexte de chiffrement doit correspondre au contexte de chiffrement par défaut, à savoir l’Amazon Resource Name (ARN) du compartiment. De plus, étant donné que le contexte de chiffrement n’est pas chiffré, assurez-vous qu’il ne contienne 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 valeur ARN du contexte de chiffrement par défaut pour suivre les demandes pertinentes en AWS CloudTrail visualisant quel ARN de compartiment de répertoire 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 l'ARN du bucket.

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

En outre, pour le chiffrement d'objets avec SSE-KMS dans un bucket de répertoire, vos AWS KMS CloudTrail événements enregistrent l'ARN de votre bucket au lieu de celui de votre objet.

Envoi de demandes pour des objets AWS KMS chiffrés

Les compartiments de répertoires sont accessibles uniquement via HTTPS (TLS). En outre, les compartiments d'annuaire signent les demandes à l'aide de AWS Signature Version 4 (SigV4). Pour plus d'informations sur l'envoi de demandes d'objets AWS KMS chiffrés, consultezEnvoi de demandes pour des objets AWS KMS chiffrés.

Si votre objet utilise SSE-KMS, n’envoyez pas d’en-têtes de chiffrement pour les requêtes GET et HEAD. Sinon, vous obtiendrez une erreur HTTP 400 Bad Request (HTTP 400 Requête erronée).

Audit du chiffrement SSE-KMS dans les compartiments de répertoires

Pour vérifier l'utilisation de vos AWS KMS clés pour vos données cryptées SSE-KMS, vous pouvez utiliser AWS CloudTrail des journaux. Vous pouvez obtenir un aperçu de vos opérations cryptographiques, telles que GenerateDataKeyet 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.