Utilizzo di chiavi gestite dai clienti in Amazon QLDB - Database Amazon Quantum Ledger (Amazon) QLDB

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

Utilizzo di chiavi gestite dai clienti in Amazon QLDB

Puoi utilizzare il AWS Management Console, il AWS Command Line Interface (AWS CLI) o il QLDB API AWS KMS key per specificare i libri contabili nuovi e quelli esistenti in Amazon. QLDB I seguenti argomenti descrivono come gestire e monitorare l'utilizzo delle chiavi gestite dai clienti in. QLDB

Prerequisiti

Prima di poter proteggere un QLDB registro con una chiave gestita dal cliente, è necessario creare la chiave in AWS Key Management Service (AWS KMS). È inoltre necessario specificare una politica chiave che QLDB consenta di creare sovvenzioni al riguardo per AWS KMS key conto dell'utente.

Creazione di una chiave gestita dal cliente

Per creare una chiave gestita dal cliente, segui i passaggi descritti in Creazione di KMS chiavi di crittografia simmetriche nella Guida per gli AWS Key Management Service sviluppatori. QLDBnon supporta le chiavi asimmetriche.

Impostazione di una policy delle chiavi

Le policy chiave sono il modo principale per controllare l'accesso alle chiavi gestite dai clienti. AWS KMS Ogni chiave gestita dal cliente deve avere esattamente una politica chiave. Le dichiarazioni contenute nel documento sulla politica chiave determinano chi è autorizzato a utilizzare la KMS chiave e come può utilizzarla. Per ulteriori informazioni, vedere Utilizzo delle politiche chiave in AWS KMS.

Puoi specificare una politica chiave quando crei la tua chiave gestita dal cliente. Per modificare una politica chiave per una chiave gestita dal cliente esistente, vedi Modifica di una politica chiave.

QLDBPer consentire l'utilizzo della chiave gestita dal cliente, la politica chiave deve includere le autorizzazioni per le seguenti AWS KMS azioni:

  • kms: CreateGrant — Aggiunge una concessione a una chiave gestita dal cliente. Concede l'accesso di controllo a una chiave specificataKMS.

    Quando si crea o si aggiorna un registro con una chiave gestita dal cliente specificata, QLDB crea concessioni che consentono l'accesso alle operazioni di concessione richieste. Le operazioni di concessione includono quanto segue:

  • kms: DescribeKey — Restituisce informazioni dettagliate su una chiave gestita dal cliente. QLDButilizza queste informazioni per convalidare la chiave.

Esempio di politica chiave

Di seguito è riportato un esempio di policy chiave che è possibile utilizzare perQLDB. Questa politica consente ai responsabili autorizzati a utilizzare QLDB dall'account di 111122223333 richiamare DescribeKey le CreateGrant operazioni sulla risorsaarn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

Per utilizzare questa politica, sostituisci us-east-1, 111122223333e 1234abcd-12ab-34cd-56ef-1234567890ab nell'esempio con le tue informazioni.

{ "Version": "2012-10-17", "Statement": [ { "Sid" : "Allow access to principals authorized to use Amazon QLDB", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:DescribeKey", "kms:CreateGrant" ], "Resource" : "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition" : { "StringEquals" : { "kms:ViaService" : "qldb.us-east-1.amazonaws.com", "kms:CallerAccount" : "111122223333" } } } ] }

Specificando il AWS KMS key per un nuovo libro contabile

Segui questi passaggi per specificare una KMS chiave quando crei un nuovo libro contabile utilizzando la QLDB console o il. AWS CLI

Puoi specificare una chiave gestita dal cliente utilizzando un ID, un alias o Amazon Resource Name (ARN). Per ulteriori informazioni, consulta Key identifiers (KeyId) nella AWS Key Management Service Developer Guide.

Nota

Le chiavi interregionali non sono supportate. La KMS chiave specificata deve trovarsi nello Regione AWS stesso registro.

  1. Accedi a e apri AWS Management Console la QLDB console Amazon all'indirizzo https://console.aws.amazon.com/qldb.

  2. Scegli Crea registro.

  3. Nella pagina Crea libro contabile, procedi come segue:

    • Informazioni sul libro contabile: immettere un nome di libro contabile univoco tra tutti i libri contabili dell'area corrente e di quella regione. Account AWS

    • Modalità autorizzazioni: scegli una modalità di autorizzazione da assegnare al registro:

      • Consenti tutto

      • Standard (consigliato)

    • Crittografa i dati inattivi: scegli il tipo di KMS chiave da utilizzare per la crittografia a riposo:

      • Usa KMS chiave AWS proprietaria: utilizza una KMS chiave posseduta e gestita da per tuo AWS conto. Questa è l'opzione predefinita e non richiede alcuna configurazione aggiuntiva.

      • Scegli una AWS KMS chiave diversa: utilizza una KMS chiave di crittografia simmetrica nel tuo account che crei, possiedi e gestisci.

        Per creare una nuova chiave utilizzando la AWS KMS console, scegli Crea una AWS KMS chiave. Per ulteriori informazioni, consulta Creazione di KMS chiavi di crittografia simmetriche nella Guida per gli AWS Key Management Service sviluppatori.

        Per utilizzare una KMS chiave esistente, scegline una dall'elenco a discesa o specifica una chiave. KMS ARN

  4. Quando le impostazioni sono quelle che desideri, scegli Crea registro.

    Puoi accedere al tuo QLDB libro mastro quando il suo stato diventa Attivo. Questo processo può richiedere diversi minuti.

Utilizzate il AWS CLI per creare un registro QLDB con la chiave predefinita Chiave di proprietà di AWS o gestita dal cliente.

Esempio — Per creare un libro mastro con il valore predefinito Chiave di proprietà di AWS
aws qldb create-ledger --name my-example-ledger --permissions-mode STANDARD
Esempio — Per creare un registro con una chiave gestita dal cliente
aws qldb create-ledger \ --name my-example-ledger \ --permissions-mode STANDARD \ --kms-key arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

Aggiornamento AWS KMS key di un libro mastro esistente

È inoltre possibile utilizzare la QLDB console o AWS CLI aggiornare la KMS chiave di un registro esistente con una chiave gestita dal cliente in qualsiasi momento. Chiave di proprietà di AWS

Nota

Amazon QLDB ha lanciato il supporto per Customer Managed il 22 AWS KMS keys luglio 2021. Tutti i registri creati prima del lancio sono protetti per impostazione Chiavi di proprietà di AWS predefinita, ma al momento non sono idonei per la crittografia a riposo utilizzando chiavi gestite dal cliente.

È possibile visualizzare l'ora di creazione del registro sulla QLDB console.

Le modifiche principali QLDB sono asincrone. Il registro è completamente accessibile senza alcun impatto sulle prestazioni durante l'elaborazione della modifica chiave. Il tempo necessario per aggiornare una chiave varia a seconda delle dimensioni del registro.

Puoi specificare una chiave gestita dal cliente utilizzando un ID, un alias o Amazon Resource Name (ARN). Per ulteriori informazioni, consulta Key identifiers (KeyId) nella AWS Key Management Service Developer Guide.

Nota

Le chiavi interregionali non sono supportate. La KMS chiave specificata deve trovarsi nello Regione AWS stesso registro.

  1. Accedi a e apri AWS Management Console la QLDB console Amazon all'indirizzo https://console.aws.amazon.com/qldb.

  2. Nel riquadro di navigazione, scegli Registri.

  3. Nell'elenco dei libri contabili, seleziona il libro contabile che desideri aggiornare, quindi scegli Modifica libro contabile.

  4. Nella pagina Modifica libro contabile, scegli il tipo di KMS chiave da usare per la crittografia a riposo:

    • Usa KMS chiave AWS proprietaria: utilizza una KMS chiave posseduta e gestita da per tuo AWS conto. Questa è l'opzione predefinita e non richiede alcuna configurazione aggiuntiva.

    • Scegli una AWS KMS chiave diversa: utilizza una KMS chiave di crittografia simmetrica nel tuo account che crei, possiedi e gestisci.

      Per creare una nuova chiave utilizzando la AWS KMS console, scegli Crea una AWS KMS chiave. Per ulteriori informazioni, consulta Creazione di KMS chiavi di crittografia simmetriche nella Guida per gli AWS Key Management Service sviluppatori.

      Per utilizzare una KMS chiave esistente, scegline una dall'elenco a discesa o specifica una chiave. KMS ARN

  5. Scegli Conferma modifiche.

Utilizzate il AWS CLI per aggiornare un registro esistente QLDB con la chiave predefinita Chiave di proprietà di AWS o gestita dal cliente.

Esempio — Per aggiornare un libro mastro con quello predefinito Chiave di proprietà di AWS
aws qldb update-ledger --name my-example-ledger --kms-key AWS_OWNED_KMS_KEY
Esempio — Aggiornare un registro con una chiave gestita dal cliente
aws qldb update-ledger \ --name my-example-ledger \ --kms-key arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

Monitoraggio di AWS KMS keys

Se utilizzi una chiave gestita dal cliente per proteggere i tuoi QLDB registri Amazon, puoi utilizzare AWS CloudTrailAmazon CloudWatch Logs per tenere traccia delle richieste QLDB inviate a per tuo AWS KMS conto. Per ulteriori informazioni, consulta Monitoring AWS KMS keys nella AWS Key Management Service Developer Guide.

Gli esempi seguenti sono le voci di CloudTrail registro relative alle operazioni CreateGrantGenerateDataKey,Decrypt,Encrypt, eDescribeKey.

CreateGrant

Quando specifichi una chiave gestita dal cliente per proteggere il tuo registro, QLDB invia CreateGrant richieste AWS KMS a tuo nome per consentire l'accesso alla tua KMS chiave. Inoltre, QLDB utilizza l'RetireGrantoperazione per rimuovere le concessioni quando si elimina un libro mastro.

Le sovvenzioni che QLDB crea sono specifiche di un libro mastro. Il principale nella CreateGrant richiesta è l'utente che ha creato la tabella.

L'evento che registra l'operazione CreateGrant è simile a quello del seguente evento di esempio. I parametri includono l'Amazon Resource Name (ARN) della chiave gestita dal cliente, il titolare del beneficiario e il destinatario in pensione (il QLDB servizio) e le operazioni coperte dalla sovvenzione.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAIOSFODNN7EXAMPLE:sample-user", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/sample-user", "accountId": "111122223333", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-06-04T21:37:11Z" } }, "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:00Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "granteePrincipal": "qldb.us-west-2.amazonaws.com", "operations": [ "DescribeKey", "GenerateDataKey", "Decrypt", "Encrypt" ], "retiringPrincipal": "qldb.us-west-2.amazonaws.com" }, "responseElements": { "grantId": "b3c83f999187ccc0979ef2ff86a1572237b6bba309c0ebce098c34761f86038a" }, "requestID": "e99188d7-3b82-424e-b63e-e086d848ed60", "eventID": "88dc7ba5-4952-4d36-9ca8-9ab5d9598bab", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }
GenerateDataKey

Quando specifichi una chiave gestita dal cliente per proteggere il tuo registro, QLDB crea una chiave dati unica. Invia una GenerateDataKey richiesta a AWS KMS cui specifica la chiave gestita dal cliente per il registro.

L'evento che registra l'operazione GenerateDataKey è simile a quello del seguente evento di esempio. L'utente è l'account del QLDB servizio. I parametri includono la chiave gestita dal cliente, un identificatore ARN di chiave dati che richiede una lunghezza di 32 byte e il contesto di crittografia che identifica il nodo interno della gerarchia delle chiavi.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:01Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "numberOfBytes": 32, "encryptionContext": { "key-hierarchy-node-id": "LY4HWMnkeZWKYi6MlitVJC", "key-hierarchy-node-version": "1" } }, "responseElements": null, "requestID": "786977c9-e77c-467a-bff5-9ad5124a4462", "eventID": "b3f082cb-3e75-454e-bf0a-64be13075436", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "26688de5-0b1c-43d3-bc4f-a18029b08446" }
Decrypt

Quando si accede a un registro, QLDB richiama l'Decryptoperazione per decrittografare la chiave dati memorizzata nel registro in modo che possa accedere ai dati crittografati nel registro.

L'evento che registra l'operazione Decrypt è simile a quello del seguente evento di esempio. L'utente è l'account del servizio. QLDB I parametri includono la chiave gestita dal cliente e il contesto ARN di crittografia che identifica il nodo della gerarchia delle chiavi interna.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:56Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "encryptionContext": { "key-hierarchy-node-id": "LY4HWMnkeZWKYi6MlitVJC", "key-hierarchy-node-version": "1" } }, "responseElements": null, "requestID": "28f2dd18-3cc1-4fe2-82f7-5154f4933ebf", "eventID": "603ad5d4-4744-4505-9c21-bd4a6cbd4b20", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "7b6ce3e3-a764-42ec-8f90-5418c97ec411" }
Crittografa

QLDBrichiama l'Encryptoperazione per crittografare il testo non crittografato in testo cifrato utilizzando la chiave gestita dal cliente.

L'evento che registra l'operazione Encrypt è simile a quello del seguente evento di esempio. L'utente è l'account del servizio. QLDB I parametri includono la ARN chiave gestita dal cliente e il contesto di crittografia che specifica l'ID univoco interno del registro.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:01Z", "eventSource": "kms.amazonaws.com", "eventName": "Encrypt", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionContext": { "LedgerId": "F6qRNziJLUXA4Vy2ZUv8YY" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "b2daca7d-4606-4302-a2d7-5b3c8d30c64d", "eventID": "b8aace05-2e37-4fed-ae6f-a45a1c6098df", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "ce420ab0-288e-4b4f-aee8-541e18a28aa5" }
DescribeKey

QLDBchiama l'DescribeKeyoperazione per determinare se la KMS chiave specificata esiste nella regione Account AWS and.

L'evento che registra l'operazione DescribeKey è simile a quello del seguente evento di esempio. Il principale è l'utente del tuo account Account AWS che ha specificato la KMS chiave. I parametri includono ARN la chiave gestita dal cliente.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAIOSFODNN7EXAMPLE:sample-user", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/sample-user", "accountId": "111122223333", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-06-04T21:37:11Z" } }, "invokedBy": "qldb.amazonaws.com" }, "eventTime": "2021-06-04T21:40:00Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-west-2", "sourceIPAddress": "qldb.amazonaws.com", "userAgent": "qldb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, "responseElements": null, "requestID": "a30586af-c783-4d25-8fda-33152c816c36", "eventID": "7a9caf07-2b27-44ab-afe4-b259533ebb88", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }