Chiffrement des données au repos pour les clusters Amazon DocumentDB Elastic Cluster DB. - 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 Amazon DocumentDB Elastic Cluster DB.

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 connue sous le nom de cryptage d'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éveloppeurAWS Key Management Service.

Une 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 :

  • AWSclé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 appartenant à votre que vous possédez, ni vérifier leur utilisation. Vous n'avez toutefois aucune action ou modifier aucun programme pour protéger les clés qui chiffrent vos données. Pour plus d'informations, consultez la section AWSrelative aux clés détenues dans le Guide du AWS Key Management Service développeur.

  • Clés gérées par le client — Symétriques AWS KMS keys que vous créez, possédez et gérez. Comme vous avez le contrôle total de cette couche de chiffrement, vous pouvez effectuer des tâches telles que :

    • Établir et maintenir des politiques clés

    • Établir et maintenir des politiques et des subventions IAM

    • Activation et désactivation désactivation désactivation activation et désactivation

    • Rotation des éléments de clé clé éléments clé éléments clé

    • Ajout de balises

    • Création d'alias clés

    • Planification des clés pour la suppression

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

Important

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

Si Amazon DocumentDB ne peut plus accéder à la clé de chiffrement pour un cluster — par exemple, lorsque l'accès à une clé est révoqué — le cluster chiffré est placée dans un état de mise hors service. 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 finirez par perdre 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 l'accès à la sauvegarde.

Important

Vous ne pouvez pas modifier la clé KMS pour un cluster chiffré une fois que vous l'avez déjà créé. Vous devez prendre soin de déterminer vos besoins en termes de clés de chiffrement avant de créer votre cluster élastique chiffrées.

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

Les clusters Amazon DocumentDB Elastic 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 Amazon DocumentDB Elastic créent une subvention en votre nom en envoyant une CreateGrant requête àAWS KMS. Les octrois dans AWS KMS sont utilisés pour accorder aux clusters Amazon DocumentDB Elastic l'accès à une clé KMS dans un compte client.

Les clusters Amazon DocumentDB Elastic nécessitent une autorisation pour 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é KMS symétrique géré par le client, saisi lors de la création d'une collection de suivi ou de géofence, est valide.

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

  • Envoyez Decrypt des requêtes AWS KMS à pour déchiffrer les clés de données chiffrées afin qu'elles puissent être utilisées pour chiffrer 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 Amazon DocumentDB Elastic ne pourront accéder à aucune des données chiffrées par la clé gérée par le client, ce qui affecte les opérations qui dépendent de ces données.

Création d'une clé gérée par le client éléments de clé

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

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

Suivez les étapes relatives à la création d'une clé symétrique gérée par le client dans le Guide du AWS Key Management Service développeur.

Politique de clé

Les politiques de clés 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 politique 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 politique de clé. Pour plus d'informations, consultez les informations relatives à l'accès par clé KMS dans la AWS Key Management Servicevue d'ensemble du Guide du AWS Key Management Service développeur.

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

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

  • kms:DescribeKey— Fournit les détails de la clé gérée par le client pour permettre à Docdb Elastic de valider la clé.

  • kms:Decrypt— Permet à Docdb Elastic d'utiliser la clé de données cryptée stockée pour accéder aux données cryptées.

  • kms:GenerateDataKey— Permet à Docdb Elastic de générer une clé de données crypté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 par clé 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 de clé KMS, vous pouvez également restreindre les autorisations de clé KMS dans une politique IAM.

Vous pouvez renforcer la politique IAM de différentes manières. Par exemple, pour limiter l'utilisation de la la clé gérée par le client aux seules requêtes provenant des clusters Amazon DocumentDB Elastic, vous pouvez utiliser la valeur 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 Amazon DocumentDB Elastic Cluster DB.

Lorsque vous utilisez une clé gérée par le AWS KMS key client avec vos ressources Docdb Elastic, vous pouvez utiliser AWS CloudTrail ou Amazon CloudWatch Logs pour suivre les demandes envoyées par Docdb Elastic. AWS KMS

Les exemples suivants concernent AWS CloudTrail des événements destinés à CreateGrant GenerateDataKeyWithoutPlainTextDecrypt, et DescribeKey à surveiller des AWS KMS key opérations appelées par les clusters élastiques Amazon DocumentDB pour accéder à des données cryptées par votre clé gérée par le 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 plus d'informations sur le chiffrement des données au repos :