View a markdown version of this page

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

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 des compartiments de répertoires pour utiliser le chiffrement côté serveur avec AWS Key Management Service (AWS KMS) keys (SSE-KMS) et utiliser ces clés KMS pour protéger vos données dans les compartiments d'annuaire Amazon S3. Pour plus d'informations sur SSE-KMS, consultezUtilisation du chiffrement côté serveur avec AWS KMS clés (SSE-KMS).

Permissions

Pour charger ou télécharger un objet chiffré AWS KMS key à destination ou en provenance d'Amazon S3, vous devez disposer d'kms:Decryptautorisations kms:GenerateDataKey et d'autorisations 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 chargements partitionnés, consultez. API de chargement partitionné et autorisations

Pour plus d'informations sur les clés KMS pour SSE-KMS, consultezSpécifier le 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 d'annuaire 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 plus, 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 SSE-KMS configuration du bucket.

Vous pouvez identifier la clé gérée par le client que vous avez spécifiée pour la SSE-KMS configuration du bucket 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, consultezAWS KMS keys.

Utilisation SSE-KMS pour les opérations entre comptes

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 SSE-KMS chiffrés depuis des compartiments à usage général vers des compartiments de répertoires, des compartiments de répertoires vers des compartiments à usage général, ou entre des compartiments de répertoires CopyObject UploadPartCopy, par le biais de l'Copyopération dans Batch Operations ou des jobs. import Dans ce cas, Amazon S3 lance un appel AWS KMS chaque fois qu'une demande de copie est faite pour un KMS-encrypted objet.

Pour les opérations d'API Zonal Endpoint (au niveau de l'objet), à l'exception de CopyObject et UploadPartCopy, vous authentifiez et autorisez les demandes via CreateSession 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 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 du compartiment d'annuaire une clé KMS (en particulier, une clé gérée par le client). Ensuite, lorsqu'une session est créée pour les opérations de l'API Zonal Endpoint, les nouveaux objets sont automatiquement chiffrés et déchiffrés avec SSE-KMS des clés de compartiment S3 pendant la session. Pour plus d'informations sur les comportements de remplacement du chiffrement dans les compartiments de répertoires, voir Spécifier le chiffrement côté serveur avec AWS KMS pour le chargement de nouveaux objets.

Les clés de compartiment S3 sont utilisées pendant une période limitée dans Amazon S3, ce qui réduit encore la nécessité pour Amazon S3 d'effectuer des demandes pour AWS KMS 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éduire les coûts SSE-KMS grâce à Amazon S3 Bucket Keys.

Nécessitant SSE-KMS

Pour exiger SSE-KMS tous les objets d'un compartiment de répertoire particulier, vous pouvez utiliser une politique de compartiment. Par exemple, lorsque vous utilisez l'opération d'CreateSessionAPI pour autoriser le chargement d'un nouvel objet (PutObject, etCreateMultipartUpload)CopyObject, la politique de compartiment suivante refuse l'autorisation de téléchargement d'un 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 qui demande SSE-KMS.

JSON
{ "Version":"2012-10-17", "Id":"UploadObjectPolicy", "Statement":[{ "Sid":"DenyObjectsThatAreNotSSEKMS", "Effect":"Deny", "Principal":"*", "Action":"s3express:CreateSession", "Resource":"arn:aws:s3express:us-east-1:111122223333:bucket/amzn-s3-demo-bucket--usw2-az1--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 bucket, 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 approprié. Gestion des identités et des accès AWS ne valide pas si la chaîne for s3express:x-amz-server-side-encryption-aws-kms-key-id existe. L'ID de AWS KMS clé qu'Amazon S3 utilise 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 SSE-KMS pour le chargement de nouveaux objets, consultezSpécifier le chiffrement côté serveur avec AWS KMS (SSE-KMS) pour le téléchargement 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 l'utilisez SSE-KMS sur un compartiment de répertoire, Amazon S3 utilise le compartiment Amazon Resource Name (ARN) comme paire de contextes 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 Zonal Endpoint, telle que CreateSession. La valeur de cet en-tête est une Base64-encoded chaîne d'un UTF-8 code JSON codé, 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 l'utilisez SSE-KMS sur un compartiment de répertoire, la valeur du contexte de chiffrement est l'ARN du compartiment.

"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 SSE-KMS dans un bucket d'annuaire, vos AWS KMS CloudTrail événements enregistrent l'ARN de votre bucket au lieu de l'ARN de votre objet.

Envoi de demandes pour AWS KMS objets chiffrés

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

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

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

Pour vérifier l'utilisation de vos AWS KMS clés pour vos données SSE-KMS cryptées, vous pouvez utiliser AWS CloudTrail des 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'attributs pour filtrer votre recherche, notamment le nom de l'événement, le nom d'utilisateur et la source de l'événement.