Critografia 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à.

Critografia 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 di Amazon DocumentDB:

I cluster elastici di 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 busta per proteggere i tuoi dati. Per ulteriori informazioni sulla crittografia envelope, consulta Crittografia envelope nella Guida per sviluppatori di AWS Key Management Service.

Una AWS KMS key è la 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 di Amazon DocumentDB supportano la crittografia con due tipi di chiavi:

  • AWSchiavi di proprietà: i cluster elastici di Amazon DocumentDB utilizzano queste chiavi di default per crittografare automaticamente i dati di identificazione personale. Non puoi visualizzare, gestire o utilizzare o utilizzare chiavi di proprietà o utilizzare chiavi o utilizzare chiavi o utilizzare chiavi o utilizzare chiavi AWS di proprietà o utilizzare chiavi o utilizzare chiavi di proprietà o utilizzare chiavi Tuttavia, non devi intervenire o modificare alcun programma per proteggere le chiavi che eseguono la crittografia dei dati. Per ulteriori informazioni, consulta le chiavi AWS possedute nella Guida per gli AWS Key Management Service sviluppatori.

  • Chiavi gestite dal cliente: simmetriche da creare, AWS KMS keys possedute e gestite dal cliente. Poiché hai il pieno controllo di questo livello di crittografia, puoi eseguire attività come:

    • Stabilire e mantenere politiche chiave

    • Definizione e gestione delle politiche e delle sovvenzioni IAM

    • Abilitazione e disabilitazione delle policy chiave

    • Rotazione del materiale crittografico

    • Aggiunta di tag

    • Creazione di alias chiave

    • Pianificazione delle chiavi per la cancellazione

    Per ulteriori informazioni, consulta Chiavi gestite dai clienti nella Guida per gli AWS Key Management Service sviluppatori.

Importante

Per crittografare il cluster è necessario utilizzare una chiave KMS per crittografare il cluster poiché Amazon DocumentDB supporta solo chiavi KMS. Non utilizzare una chiave KMS per tentare di crittografare i dati nei cluster elastici Amazon DocumentDB. Per ulteriori informazioni, consulta Chiavi asimmetriche AWS KMS nella Guida per gli AWS Key Management Service sviluppatori.

Se Amazon DocumentDB non riesce più ad accedere alla chiave di crittografia per un cluster, ad esempio quando viene revocato l'accesso a una chiave, il cluster crittografato passa a uno 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 di lettura e scrittura a quel cluster. Quando Amazon DocumentDB trova un cluster crittografato da una chiave alla quale 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 riabilitare l'accesso alla chiave di crittografia per Amazon DocumentDB e ripristinare il cluster da un backup.

Importante

Non puoi 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 di 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 CreateGrant richiesta a. AWS KMS Le concessioni in AWS KMS vengono utilizzate per consentire ai cluster elastici Amazon DocumentDB 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 a per verificare che l'ID chiave KMS simmetrico gestito dal cliente, inserito durante la creazione di un tracker o di una collezione di geofence, sia valido.

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

  • Invia Decrypt richieste AWS KMS a per 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 Amazon DocumentDB non saranno in grado di accedere a nessuno dei dati crittografati dalla chiave gestita dal cliente; ciò influisce sulle operazioni che dipendono da tali dati.

Creazione di una chiave gestita dal cliente

Puoi creare una chiave simmetrica gestita dal cliente utilizzando la AWS Management Console o le AWS KMS API.

Creazione simmetrica di chiavi gestita dal cliente

Segui i passaggi per la creazione di una chiave simmetrica gestita dal cliente nella Guida per gli AWS Key Management Servicesviluppatori.

Policy delle chiavi

Le policy chiave controllano l'accesso alla chiave gestita dal cliente. Ogni chiave gestita dal cliente deve avere esattamente una policy delle chiavi, che contiene istruzioni che determinano chi può usare la chiave e come la possono usare. Quando crei la chiave gestita dal cliente, puoi specificare una policy chiave. Per ulteriori informazioni, consulta le informazioni di accesso alle chiavi KMS disponibili nella AWS Key Management Servicepanoramica della Guida per gli AWS Key Management Service sviluppatori.

Per utilizzare la chiave gestita dal cliente con le risorse elastiche Amazon DocumentDB, è necessario che le seguenti operazioni API siano consentite nella policy chiave:

  • kms:CreateGrant— Aggiunge una concessione a una chiave gestita dal cliente. Concede l'accesso di controllo a una chiave KMS specificata, che consente l'accesso alle operazioni di concessione richieste da Amazon Location Service. Per ulteriori informazioni sull'utilizzo delle sovvenzioni, consulta Grants AWS KMS in the AWS Key Management ServiceDeveloper Guide.

  • kms:DescribeKey— Fornisce i dettagli chiave gestiti dal cliente per consentire a Docdb Elastic di convalidare la chiave.

  • kms:Decrypt— Consente a Docdb Elastic di utilizzare la chiave dati crittografata archiviata per accedere ai dati crittografati.

  • kms:GenerateDataKey— Consente a Docdb Elastic di generare una chiave di dati crittografata e di archiviarla perché la chiave 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 tramite chiave nella Guida per gli AWS Key Management Service sviluppatori.

Limitazione dell'accesso alle chiavi gestite dai clienti tramite policy IAM

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

Esistono diversi modi per rendere la policy IAM più efficace. Ad esempio, per consentire alla chiave gestita dal cliente di essere utilizzata solo per le richieste che provengono da cluster elastici Amazon DocumentDB, puoi utilizzare la chiave di kms:ViaService condizione con il docdb-elastic.<region-name>.amazonaws.com valore.

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 Amazon DocumentDB

Quando utilizzi una chiave gestita AWS KMS key dal cliente con le tue risorse Docdb Elastic, puoi utilizzare AWS CloudTrail Amazon CloudWatch Logs per tenere traccia delle richieste inviate da Docdb Elastic. AWS KMS

I seguenti esempi sono AWS CloudTrail eventi per CreateGrant GenerateDataKeyWithoutPlainTextDecrypt, e DescribeKey monitorare AWS KMS key le operazioni richiamate dai cluster elastici di 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: