View a markdown version of this page

Chiffrement des données au repos pour les clusters élastiques Amazon DocumentDB - Amazon DocumentDB

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.

Chiffrement des données au repos pour les clusters élastiques Amazon DocumentDB

Les rubriques suivantes vous aident à découvrir, créer et surveiller les clés de AWS Key Management Service chiffrement pour les clusters élastiques Amazon DocumentDB :

Les clusters élastiques Amazon DocumentDB s'intègrent automatiquement à AWS Key Management Service (AWS KMS) pour la gestion des clés et utilisent une méthode appelée chiffrement par enveloppe pour protéger vos données. Pour plus d’informations sur le chiffrement d’enveloppe, consultez Chiffrement d’enveloppe dans le Guide du développeur AWS Key Management Service .

An AWS KMS key est une représentation logique d'une clé. La clé KMS inclut des métadonnées, telles que l'ID de clé, la date de création, la description et l'état de la clé. La clé KMS contient également les éléments de clé utilisés pour chiffrer et déchiffrer les données. Pour plus d'informations sur les clés KMS, consultez AWS KMS keys dans le Guide du développeur AWS Key Management Service .

Les clusters élastiques Amazon DocumentDB prennent en charge le chiffrement à l'aide de deux types de clés :

  • AWS clés détenues : les clusters élastiques Amazon DocumentDB utilisent ces clés par défaut pour chiffrer automatiquement les données personnelles identifiables. Vous ne pouvez pas afficher, gérer ou utiliser les clés AWS dont vous êtes propriétaire, ni auditer leur utilisation. Toutefois, vous n'avez pas besoin de prendre de mesure ou de modifier les programmes pour protéger les clés qui chiffrent vos données. Pour plus d’informations, consultez Clés détenues par AWS dans le Guide du développeur AWS Key Management Service .

  • Customer-managed clés : symétriques AWS KMS keys que vous créez, possédez et gérez. Étant donné que vous avez le contrôle total de cette couche de chiffrement, vous pouvez effectuer les tâches suivantes :

    • Établissement et gestion des stratégies de clé

    • Établissement et gestion des politiques IAM et des octrois

    • Activation et désactivation des stratégies de clé

    • Rotation des matériaux de chiffrement de clé

    • Ajout de balises

    • Création d’alias de clé

    • Planification des clés pour la suppression

    Pour plus d’informations, consultez Clés gérées par le client dans le Guide du développeur AWS Key Management Service .

Important

Vous devez utiliser une clé KMS de chiffrement symétrique pour chiffrer votre cluster car Amazon DocumentDB ne prend en charge que les clés KMS de chiffrement symétrique. N'utilisez pas de clé KMS asymétrique pour tenter de chiffrer les données de vos clusters élastiques Amazon DocumentDB. Pour plus d'informations, consultez la section Clés asymétriques AWS KMS dans le Guide du AWS Key Management Service développeur.

Si Amazon DocumentDB ne parvient plus à accéder à la clé de chiffrement d'un cluster, par exemple, lorsque l'accès à une clé est révoqué, le cluster chiffré passe en état de terminal. Dans ce cas, vous pouvez uniquement restaurer le cluster à partir d'une sauvegarde. Pour Amazon DocumentDB, les sauvegardes sont toujours activées pendant 1 jour. En outre, si vous désactivez la clé d'un cluster Amazon DocumentDB chiffré, vous perdrez éventuellement l'accès en lecture et en écriture à ce cluster. Lorsqu'Amazon DocumentDB rencontre un cluster chiffré par une clé à laquelle il n'a pas accès, il met le cluster en état de terminal. Dans cet état, le cluster n'est plus disponible et l'état actuel de la base de données ne peut pas être récupéré. Pour restaurer le cluster, vous devez réactiver l'accès à la clé de chiffrement pour Amazon DocumentDB, puis restaurer le cluster à partir d'une sauvegarde.

Important

Vous ne pouvez pas modifier la clé KMS d'un cluster chiffré après l'avoir créé. Assurez-vous de déterminer vos exigences en matière de clé de chiffrement avant de créer votre cluster élastique chiffré.

Comment les clusters élastiques Amazon DocumentDB utilisent les subventions dans AWS KMS

Les clusters élastiques Amazon DocumentDB nécessitent une subvention pour utiliser votre clé gérée par le client.

Lorsque vous créez un cluster chiffré avec une clé gérée par le client, les clusters élastiques Amazon DocumentDB créent une subvention en votre nom en envoyant une CreateGrant demande à AWS KMS. AWS KMS Les autorisations sont utilisées pour permettre aux clusters élastiques Amazon DocumentDB d'accéder à une clé KMS dans un compte client.

Les clusters élastiques Amazon DocumentDB nécessitent l'autorisation d'utiliser votre clé gérée par le client pour les opérations internes suivantes :

  • Envoyez DescribeKey des demandes AWS KMS à pour vérifier que l'ID de clé symétrique géré par le client, saisi lors de la création d'un cluster élastique, est valide.

  • Envoyez GenerateDataKey des demandes AWS KMS à pour générer des clés de données chiffrées par la clé gérée par votre client.

  • Envoyez Decrypt des demandes AWS KMS à pour déchiffrer les clés de données cryptées afin qu'elles puissent être utilisées pour crypter vos données.

  • Vous pouvez révoquer l’accès à l’octroi ou supprimer l’accès du service à la clé gérée par le client à tout moment. Dans ce cas, les clusters élastiques Amazon DocumentDB ne pourront accéder à aucune des données chiffrées par la clé gérée par le client, ce qui affectera les opérations qui dépendent de ces données.

Création d’une clé gérée par le client

Vous pouvez créer une clé symétrique gérée par le client à l'aide de l'API Console de gestion AWS ou de l' AWS KMS API.

Création de clés symétriques gérées par le client

Suivez les étapes décrites dans le Guide du AWS Key Management Service développeur pour créer une clé symétrique gérée par le client.

Stratégie de clé

Les stratégies de clé contrôlent l’accès à votre clé gérée par le client. Chaque clé gérée par le client doit avoir exactement une stratégie de clé, qui contient des instructions qui déterminent les personnes pouvant utiliser la clé et comment elles peuvent l’utiliser. Lorsque vous créez votre clé gérée par le client, vous pouvez spécifier une stratégie de clé. Pour plus d'informations, consultez les informations d'accès à la clé KMS situées dans la AWS Key Management Service présentation du Guide du AWS Key Management Service développeur.

Pour utiliser votre clé gérée par le client avec les ressources du cluster élastique Amazon DocumentDB, les opérations d'API suivantes doivent être autorisées dans la politique de clé :

  • kms:CreateGrant : ajoute une attribution à une clé gérée par le client. Les autorisations contrôlent l'accès à une clé KMS spécifiée, ce qui permet d'accéder aux opérations d'autorisation requises par les clusters élastiques Amazon DocumentDB. Pour plus d'informations sur l'utilisation des subventions, consultez la section Grants AWS KMS in dans le Guide du AWS Key Management Service développeur.

  • kms:DescribeKey— Fournit les informations relatives à la clé gérée par le client afin de permettre aux clusters élastiques Amazon DocumentDB de valider la clé.

  • kms:Decrypt— Permet aux clusters élastiques Amazon DocumentDB d'utiliser la clé de données chiffrée stockée pour accéder aux données chiffrées.

  • kms:GenerateDataKey— Permet aux clusters élastiques Amazon DocumentDB de générer une clé de données chiffrée et de la stocker car la clé de données n'est pas immédiatement utilisée pour chiffrer.

Pour plus d'informations, consultez les sections Autorisations pour les AWS services dans les politiques clés et Résolution des problèmes d'accès aux clés dans le Guide du AWS Key Management Service développeur.

Restreindre l'accès aux clés gérées par le client via des politiques IAM

Outre les politiques relatives aux clés KMS, vous pouvez également restreindre les autorisations relatives aux clés KMS dans une stratégie IAM.

Vous pouvez renforcer la politique IAM de différentes manières. Par exemple, pour autoriser l'utilisation de la clé gérée par le client uniquement pour les demandes provenant de clusters élastiques Amazon DocumentDB, vous pouvez utiliser la clé de kms:ViaService condition avec la docdb-elastic.<region-name>.amazonaws.com valeur.

Pour plus d’informations, consultez Autoriser des utilisateurs d’autres comptes à utiliser une clé KMS dans le Guide du développeur AWS Key Management Service .

Surveillance de vos clés de chiffrement pour les clusters élastiques Amazon DocumentDB

Lorsque vous utilisez une clé gérée par le client avec vos ressources de cluster élastique Amazon DocumentDB, vous pouvez utiliser AWS CloudTrail Amazon CloudWatch Logs pour suivre les demandes envoyées par les clusters élastiques Amazon DocumentDB. AWS KMS

Les exemples suivants concernent des AWS CloudTrail événements destinés àCreateGrant, GenerateDataKeyWithoutPlainTextDecrypt, et DescribeKey à surveiller les AWS KMS key opérations appelées par les clusters élastiques Amazon DocumentDB pour accéder aux données chiffrées par la clé gérée par votre client :

CreateGrant
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Sampleuser01" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-05-09T23:04:20Z", "mfaAuthenticated": "false" } }, "invokedBy": "docdb-elastic.amazonaws.com" }, "eventTime": "2023-05-09T23:55:48Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-east-1", "sourceIPAddress": "docdb-elastic.amazonaws.com", "userAgent": "docdb-elastic.amazonaws.com", "requestParameters": { "retiringPrincipal": "docdb-elastic.us-east-1.amazonaws.com", "granteePrincipal": "docdb-elastic.us-east-1.amazonaws.com", "operations": [ "Decrypt", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "CreateGrant", "RetireGrant", "DescribeKey" ], "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
GenerateDataKey
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Sampleuser01" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-05-10T18:02:59Z", "mfaAuthenticated": "false" } }, "invokedBy": "docdb-elastic.amazonaws.com" }, "eventTime": "2023-05-10T18:03:25Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-east-1", "sourceIPAddress": "docdb-elastic.amazonaws.com", "userAgent": "docdb-elastic.amazonaws.com", "requestParameters": { "keySpec": "AES_256", "keyId": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
Decrypt
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Sampleuser01" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-05-10T18:05:49Z", "mfaAuthenticated": "false" } }, "invokedBy": "docdb-elastic.amazonaws.com" }, "eventTime": "2023-05-10T18:06:19Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "docdb-elastic.amazonaws.com", "userAgent": "docdb-elastic.amazonaws.com", "requestParameters": { "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
DescribeKey
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Sampleuser01" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-05-09T23:04:20Z", "mfaAuthenticated": "false" } }, "invokedBy": "docdb-elastic.amazonaws.com" }, "eventTime": "2023-05-09T23:55:48Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-east-1", "sourceIPAddress": "docdb-elastic.amazonaws.com", "userAgent": "docdb-elastic.amazonaws.com", "requestParameters": { "keyId": "alias/SampleKmsKey" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }

En savoir plus

Les ressources suivantes fournissent des informations supplémentaires sur le chiffrement des données au repos :