View a markdown version of this page

Crittografia dei dati inattivi per i cluster elastici Amazon DocumentDB - Amazon DocumentDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crittografia dei dati inattivi per i cluster elastici Amazon DocumentDB

I seguenti argomenti ti aiutano a conoscere, creare e monitorare le chiavi di AWS Key Management Service crittografia per i cluster elastici Amazon DocumentDB:

I cluster elastici Amazon DocumentDB si integrano automaticamente con AWS Key Management Service (AWS KMS) per la gestione delle chiavi e utilizzano un metodo noto come crittografia a inviluppo per proteggere i dati. Per ulteriori informazioni sulla crittografia envelope, consulta Crittografia envelope nella Guida per sviluppatori di AWS Key Management Service .

An AWS KMS key è una rappresentazione logica di una chiave. La chiave KMS include metadati, ad esempio l'ID della chiave, la data di creazione, la descrizione e lo stato della chiave. La chiave KMS contiene anche il materiale della chiave utilizzato per crittografare e decrittare i dati. Per ulteriori informazioni sulle chiavi KMS, consulta AWS KMS keys nella Guida per gli sviluppatori di AWS Key Management Service .

I cluster elastici Amazon DocumentDB supportano la crittografia con due tipi di chiavi:

  • AWS chiavi di proprietà: i cluster elastici Amazon DocumentDB utilizzano queste chiavi di default per crittografare automaticamente i dati di identificazione personale. Non puoi visualizzare, gestire o utilizzare chiavi di AWS proprietà né controllarne l'uso. Tuttavia, non è necessario effettuare alcuna operazione o modificare programmi per proteggere le chiavi che eseguono la crittografia dei dati. Per ulteriori informazioni, consulta la pagina chiavi di proprietàAWS nella Guida per gli sviluppatori di AWS Key Management Service .

  • Customer-managed chiavi: simmetriche, create, AWS KMS keys possedute e gestite dall'utente. Avendo il pieno controllo di questo livello di crittografia, è possibile eseguire operazioni quali:

    • Stabilire e mantenere le policy delle chiavi

    • Stabilire e mantenere le policy e le sovvenzioni IAM

    • Abilitare e disabilitare le policy delle chiavi

    • Ruotare i materiali crittografici delle chiavi

    • Aggiungere tag

    • Creare alias delle chiavi

    • Pianificare l’eliminazione delle chiavi

    Per ulteriori informazioni, consulta Customer managed keys nella Guida per sviluppatori AWS Key Management Service .

Importante

È necessario utilizzare una chiave KMS di crittografia simmetrica per crittografare il cluster poiché Amazon DocumentDB supporta solo chiavi KMS di crittografia simmetrica. Non utilizzare una chiave KMS asimmetrica per tentare di crittografare i dati nei tuoi cluster elastici Amazon DocumentDB. Per ulteriori informazioni, consulta Asymmetric keys nella Developer Guide. AWS KMS AWS Key Management Service

Se Amazon DocumentDB non riesce più ad accedere alla chiave di crittografia per un cluster, ad esempio quando l'accesso a una chiave viene revocato, il cluster crittografato passa allo stato terminale. In questo caso, puoi solo ripristinare il cluster da un backup. Per Amazon DocumentDB, i backup sono sempre abilitati per 1 giorno. Inoltre, se disabiliti la chiave per un cluster Amazon DocumentDB crittografato, alla fine perderai l'accesso in lettura e scrittura a quel cluster. Quando Amazon DocumentDB rileva un cluster crittografato da una chiave a cui non ha accesso, imposta il cluster in uno stato terminale. In questo stato, il cluster non è più disponibile e lo stato attuale del database non può essere ripristinato. Per ripristinare il cluster, devi riattivare l'accesso alla chiave di crittografia per Amazon DocumentDB e quindi ripristinare il cluster da un backup.

Importante

Non è possibile modificare la chiave KMS per un cluster crittografato dopo averlo già creato. Assicurati di determinare i requisiti della chiave di crittografia prima di creare il cluster elastico crittografato.

In che modo i cluster elastici Amazon DocumentDB utilizzano le sovvenzioni in AWS KMS

I cluster elastici Amazon DocumentDB richiedono una concessione per utilizzare la chiave gestita dal cliente.

Quando crei un cluster crittografato con una chiave gestita dal cliente, i cluster elastici Amazon DocumentDB creano una concessione per tuo conto inviando una richiesta a. CreateGrant AWS KMS Le sovvenzioni AWS KMS vengono utilizzate per consentire ai cluster elastici di Amazon DocumentDB di accedere a una chiave KMS in un account cliente.

I cluster elastici Amazon DocumentDB richiedono la concessione per utilizzare la chiave gestita dal cliente per le seguenti operazioni interne:

  • Invia DescribeKey richieste AWS KMS per verificare che l'ID della chiave simmetrica gestita dal cliente, inserito durante la creazione di un cluster elastico, sia valido.

  • Invia GenerateDataKey richieste per AWS KMS generare chiavi di dati crittografate dalla chiave gestita dal cliente.

  • Invia Decrypt richieste per AWS KMS decrittografare le chiavi di dati crittografate in modo che possano essere utilizzate per crittografare i dati.

  • Puoi revocare l'accesso alla concessione o rimuovere l'accesso del servizio alla chiave gestita dal cliente in qualsiasi momento. In tal caso, i cluster elastici di Amazon DocumentDB non saranno in grado di accedere a nessuno dei dati crittografati dalla chiave gestita dal cliente, il che influisce sulle operazioni che dipendono da tali dati.

Creazione di una chiave gestita dal cliente

Puoi creare una chiave simmetrica gestita dal cliente utilizzando o l' Console di gestione AWS API. AWS KMS

Creazione simmetrica di chiavi gestita dal cliente

Segui i passaggi per la creazione di una chiave simmetrica gestita dal cliente nella Developer Guide. AWS Key Management Service

Policy della chiave

Le policy della chiave controllano l’accesso alla chiave gestita dal cliente. Ogni chiave gestita dal cliente deve avere esattamente una policy della chiave, che contiene istruzioni che determinano chi può usare la chiave e come la possono usare. Quando crei la chiave gestita dal cliente, è possibile specificare una policy della chiave. Per ulteriori informazioni, consulta le informazioni di accesso con chiave KMS disponibili nella AWS Key Management Service panoramica della Developer Guide. AWS Key Management Service

Per utilizzare la chiave gestita dal cliente con le risorse del cluster elastico di Amazon DocumentDB, le seguenti operazioni API devono essere consentite nella policy chiave:

  • kms:CreateGrant: aggiunge una concessione a una chiave gestita dal cliente. Le concessioni controllano l'accesso a una chiave KMS specificata, che consente l'accesso alle operazioni di concessione richieste dai cluster elastici di Amazon DocumentDB. Per ulteriori informazioni sull'utilizzo delle sovvenzioni, consulta Grants in nella Developer Guide. AWS KMS AWS Key Management Service

  • kms:DescribeKey— Fornisce i dettagli delle chiavi gestiti dal cliente per consentire ai cluster elastici di Amazon DocumentDB di convalidare la chiave.

  • kms:Decrypt— Consente ai cluster elastici di Amazon DocumentDB di utilizzare la chiave di dati crittografata archiviata per accedere ai dati crittografati.

  • kms:GenerateDataKey— Consente ai cluster elastici di Amazon DocumentDB di generare una chiave dati crittografata e di archiviarla perché la chiave di dati non viene utilizzata immediatamente per la crittografia.

Per ulteriori informazioni, consulta Autorizzazioni per AWS i servizi nelle politiche chiave e Risoluzione dei problemi di accesso con le chiavi nella Guida per gli sviluppatori. AWS Key Management Service

Limitazione dell'accesso alle chiavi gestito dal cliente tramite le politiche IAM

Oltre alle policy chiave KMS, puoi anche limitare le autorizzazioni delle chiavi KMS in una policy IAM.

Esistono diversi modi per rendere la policy IAM più efficace. Ad esempio, per consentire l'utilizzo della chiave gestita dal cliente solo per le richieste che hanno origine nei cluster elastici di Amazon DocumentDB, puoi utilizzare la chiave di condizione con il kms:ViaService valore. docdb-elastic.<region-name>.amazonaws.com

Per ulteriori informazioni, consultare Consentire agli utenti in altri account di utilizzare una chiave KMS nella Guida per gli sviluppatori di AWS Key Management Service .

Monitoraggio delle chiavi di crittografia per i cluster elastici di Amazon DocumentDB

Quando utilizzi una chiave gestita dal cliente con le tue risorse di cluster elastici Amazon DocumentDB, puoi utilizzare AWS CloudTrail Amazon CloudWatch Logs per tenere traccia delle richieste inviate dai cluster elastici Amazon DocumentDB. AWS KMS

I seguenti esempi sono AWS CloudTrail eventi per CreateGrant GenerateDataKeyWithoutPlainTextDecrypt, e per DescribeKey monitorare AWS KMS key le operazioni chiamate dai cluster elastici Amazon DocumentDB per accedere ai dati crittografati dalla chiave gestita dal cliente:

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" }

Ulteriori informazioni

Le seguenti risorse forniscono ulteriori informazioni sulla crittografia dei dati inattivi: