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à.
Note per l'utilizzo della crittografia dei dati inattivi di DynamoDB
Quando si utilizza la crittografia a riposo di Amazon DynamoDB, tenere in considerazione quanto riportato di seguito.
Tutti i dati della tabella vengono crittografati
La crittografia dei dati a riposo sul lato server è abilitata su tutti i dati della tabella DynamoDB e non può essere disabilitata. Non è possibile criptare solo un sottoinsieme di elementi in una tabella.
La crittografia dei dati inattivi crittografa i dati mentre è statica (dati inattivi) su media di storage persistente. Se la sicurezza dei dati è un problema per i dati in transito o i dati in utilizzo, è possibile adottare ulteriori misure:
-
Dati in transito: tutti i dati in DynamoDB sono crittografati in transito. Per impostazione predefinita, le comunicazioni da e verso DynamoDB utilizzano HTTPS il protocollo, che protegge il traffico di rete utilizzando la crittografia Secure Sockets Layer SSL () /Transport Layer Security (). TLS
-
Dati in uso: proteggere i dati prima di inviarli a DynamoDB utilizzando la crittografia lato client. Per ulteriori informazioni, consulta Client-side and server-side encryption nella Guida per sviluppatori del client di crittografia di Amazon DynamoDB.
È possibile utilizzare i flussi con le tabelle crittografate. I flussi DynamoDB sono sempre crittografati con una chiave di crittografia a livello di tabella. Per ulteriori informazioni, consulta Acquisizione dei dati di modifica per DynamoDB Streams.
I backup DynamoDB sono crittografati e anche la tabella che viene ripristinata da un backup ha la crittografia abilitata. È possibile utilizzare la chiave o la Chiave di proprietà di AWS chiave gestita dal cliente per crittografare i dati di backup. Chiave gestita da AWS Per ulteriori informazioni, consulta Backup e ripristino per DynamoDB.
Gli indici secondari locali e gli indici secondari globali vengono crittografati utilizzando la stessa chiave della tabella di base.
Tipi di crittografia
Nota
Le chiavi gestite dal cliente non sono supportate nelle tabelle globali versione 2017. Se desideri utilizzare una chiave gestita dal cliente in una tabella globale di DynamoDB, è necessario aggiornare la tabella alla versione 2019 della tabella globale e quindi abilitarla.
In AWS Management Console, il tipo di crittografia si intende KMS
quando si utilizza la chiave Chiave gestita da AWS o la chiave gestita dal cliente per crittografare i dati. Il tipo di crittografia è DEFAULT
quando utilizzi la Chiave di proprietà di AWS. In Amazon API DynamoDB, il tipo di crittografia KMS
è quando si utilizza la chiave o Chiave gestita da AWS la chiave gestita dal cliente. In assenza del tipo di crittografia, i dati vengono criptati con la chiave Chiave di proprietà di AWS. Puoi passare dalla chiave gestita dal Chiave di proprietà di AWS cliente a quella gestita dal cliente in qualsiasi momento. Chiave gestita da AWS Puoi utilizzare la console, il AWS Command Line Interface (AWS CLI) o Amazon API DynamoDB per cambiare le chiavi di crittografia.
Notare le seguenti limitazioni quando si utilizzano le chiavi gestite dal cliente:
-
Non è possibile utilizzare una chiave gestita dal cliente con i cluster DynamoDB DAX Accelerator (). Per ulteriori informazioni, consulta DAXcrittografia a riposo.
-
Puoi utilizzare una chiave gestita dal cliente per criptare le tabelle che utilizzano le transazioni. Tuttavia, per garantire la durabilità per la propagazione delle transazioni, una copia della richiesta di transazione viene archiviata temporaneamente dal servizio e criptata utilizzando una Chiave di proprietà di AWS. I dati di commit nelle tabelle e negli indici secondari vengono sempre criptati a riposo utilizzando la chiave gestita dal cliente.
-
Puoi utilizzare una chiave gestita dal cliente per criptare le tabelle che utilizzano Contributor Insights. Tuttavia, i dati trasmessi a vengono crittografati con Amazon CloudWatch un. Chiave di proprietà di AWS
-
Quando passi a una nuova chiave gestita dal cliente, assicurati di mantenere attiva la chiave originale fino al completamento del processo. AWS avrà comunque bisogno della chiave originale per decrittografare i dati prima di crittografarli con la nuova chiave. Il processo sarà completo quando SSEDescription lo stato della tabella sarà completato ENABLED e verrà visualizzata la KMSMasterKeyArn nuova chiave gestita dal cliente. A questo punto, la chiave originale può essere disabilitata o pianificata per l'eliminazione.
-
Una volta visualizzata la nuova chiave gestita dal cliente, la tabella e tutti i nuovi backup on demand vengono criptati con la nuova chiave.
-
Tutti i backup on demand esistenti rimangono criptati con la chiave gestita dal cliente utilizzata al momento della creazione di tali backup. La stessa chiave è necessaria per ripristinare i backup. È possibile identificare la chiave per il periodo in cui è stato creato ogni backup utilizzando DescribeBackup API per visualizzare i backupSSEDescription.
-
Se disabiliti la chiave gestita dal cliente o ne pianifichi l'eliminazione, tutti i dati in DynamoDB Streams avranno comunque una durata di 24 ore. Tutti i dati di attività non recuperati sono idonei per il taglio quando sono più vecchi di 24 ore.
-
Se disabiliti la chiave gestita dal cliente o ne pianifichi l'eliminazione, le eliminazioni di Time to Live (TTL) continuano per 30 minuti. Queste TTL eliminazioni continuano a essere emesse su DynamoDB Streams e sono soggette all'intervallo di taglio/conservazione standard.
Per ulteriori informazioni, copri come attivare ed eliminare le chiavi.
KMSUtilizzo di chiavi e chiavi dati
La funzionalità di crittografia a riposo di DynamoDB utilizza AWS KMS key una e una gerarchia di chiavi di dati per proteggere i dati della tabella. DynamoDB utilizza la stessa gerarchia di chiavi per proteggere i flussi DynamoDB, tabelle globali e backup quando sono scritti su supporti durevoli.
Consigliamo di pianificare la strategia di crittografia prima di implementare la tabella in DynamoDB. Se archivi dati sensibili o riservati in DynamoDB, prendi in considerazione l'inclusione della crittografia lato client nel piano. In questo modo puoi crittografare i dati il più vicino possibile alla loro origine e garantirne la protezione per tutto il loro ciclo di vita. Per ulteriori informazioni su ciascun tipo, consultare la documentazione relativa al client di crittografia di DynamoDB.
- AWS KMS key
-
La crittografia dei dati inattivi protegge le tabelle DynamoDB con una AWS KMS key. Per impostazione predefinita, DynamoDB utilizza una Chiave di proprietà di AWS, una chiave di crittografia multi-tenant creata e gestita in un account del servizio DynamoDB. Ma è possibile crittografare le tabelle DynamoDB in una chiave gestita dal cliente per DynamoDB (
aws/dynamodb
) nell' Account AWS. È possibile selezionare una KMS chiave diversa per ogni tabella. La KMS chiave selezionata per una tabella viene utilizzata anche per crittografare gli indici, i flussi e i backup secondari locali e globali.La KMS chiave per una tabella viene selezionata quando si crea o si aggiorna la tabella. È possibile modificare la KMS chiave di una tabella in qualsiasi momento, nella console DynamoDB o utilizzando l'operazione. UpdateTable Il processo di scambio di chiavi è sicuro, non richiede tempi di inattività e non comporta alcun calo delle prestazioni del servizio.
Importante
DynamoDB supporta solo chiavi simmetriche. KMS Non è possibile utilizzare una KMSchiave asimmetrica per crittografare le tabelle DynamoDB.
Utilizza una chiave gestita dal cliente per ottenere le seguenti caratteristiche:
-
La KMS chiave viene creata e gestita, inclusa l'impostazione delle politiche, delle IAMpolitiche e delle concessioni chiave per controllare l'accesso alla chiave. KMS È possibile abilitare e disabilitare la KMS chiave, abilitare e disabilitare la rotazione automatica dei tasti ed eliminare la KMS chiave quando non è più in uso.
-
L’utente può utilizzare una chiave gestita dal cliente con materiale di chiave importato o una chiave gestita dal cliente in un archivio di chiavi personalizzate di cui è proprietario e gestirlo.
Utilizza Chiave gestita da AWS se hai bisogno di una delle seguenti funzionalità:
-
È possibile visualizzare la KMS chiave e visualizzare la relativa politica chiave. (non è possibile modificare la policy della chiave).
Tuttavia, Chiave di proprietà di AWS è gratuito e il suo utilizzo non influisce sulle quote di risorse o richieste.AWS KMS Le chiavi sono gestite dal cliente e Chiavi gestite da AWS comportano un addebito
per ogni API chiamata e a queste chiavi si applicano delle AWS KMS quote. KMS -
- Chiavi delle tabelle
-
DynamoDB utilizza KMS la chiave della tabella per generare e crittografare una chiave dati univoca per la tabella, nota come chiave della tabella. La chiave della tabella esiste per tutta la durata della tabella crittografata.
La chiave di tabella viene utilizzata come chiave di crittografia. DynamoDB utilizza questa chiave di tabella per proteggere le chiavi di crittografia dei dati utilizzate per crittografare i dati delle tabelle. DynamoDB genera una chiave di crittografia dei dati univoca per ogni struttura sottostante in una tabella, ma più di un elemento della tabella potrebbe essere protetto dalla stessa chiave di crittografia dei dati.
Quando si accede per la prima volta a una tabella crittografata, DynamoDB invia una richiesta AWS KMS per utilizzare KMS la chiave per decrittografare la chiave della tabella. Quindi, utilizza la chiave della tabella in testo normale per decrittografare le chiavi di crittografia dei dati e le chiavi di crittografia dei dati in testo normale per decrittografare i dati della tabella.
DynamoDB archivia e utilizza la chiave della tabella e le chiavi di crittografia dei dati all'esterno di. AWS KMS Protegge tutte le chiavi con la crittografia Advanced Encryption Standard
(AES) e le chiavi di crittografia a 256 bit. Quindi, archivia le chiavi crittografate con i dati crittografati, in modo che siano disponibili per decrittografare i dati della tabella on demand. Se si modifica la KMS chiave per la tabella, DynamoDB genera una nuova chiave di tabella. Quindi, utilizza la nuova chiave per crittografare nuovamente le chiavi di crittografia dei dati.
- Caching della chiave della tabella
-
Per evitare di chiamare AWS KMS per ogni operazione DynamoDB, DynamoDB memorizza nella cache le chiavi della tabella in testo semplice per ogni chiamante in memoria. Se DynamoDB riceve una richiesta per la chiave della tabella memorizzata nella cache dopo cinque minuti di inattività, invia una nuova richiesta AWS KMS per decrittografare la chiave della tabella. Questa chiamata acquisirà tutte le modifiche apportate alle politiche di accesso della KMS chiave in AWS KMS or AWS Identity and Access Management (IAM) dall'ultima richiesta di decrittografia della chiave della tabella.
Autorizzazione dell'uso della chiave KMS
Se utilizzi una chiave gestita dal cliente o Chiave gestita da AWSnel tuo account per proteggere la tua tabella DynamoDB, le policy su KMS quella chiave devono autorizzare DynamoDB a utilizzarla per tuo conto. Il contesto di autorizzazione di Chiave gestita da AWS for DynamoDB include la sua politica chiave e le autorizzazioni a delegare le autorizzazioni per utilizzarlo.
Hai il pieno controllo sulle policy e sulle concessioni di una chiave gestita dal cliente Poiché la Chiave gestita da AWS è presente nell'account, puoi visualizzare le relative policy e concessioni. Tuttavia, poiché è gestito da, non è possibile modificare AWS le politiche.
DynamoDB non necessita di autorizzazioni aggiuntive per utilizzare l'Chiave di proprietà di AWSimpostazione predefinita per proteggere le tabelle DynamoDB presenti nel tuo. Account AWS
Argomenti
Politica chiave per un Chiave gestita da AWS
Quando DynamoDB utilizza la Chiave gestita da AWS per DynamoDB (aws/dynamodb
) in operazioni di crittografia, lo fa per conto dell'utente che accede alla risorsa DynamoDB. La politica chiave di Chiave gestita da AWS consente a tutti gli utenti dell'account di utilizzare Chiave gestita da AWS le operazioni specificate. Tuttavia, l'autorizzazione è concessa solo quando DynamoDB effettua la richiesta per conto dell'utente. La ViaService condizione nella policy chiave non consente a nessun utente di utilizzare la, a Chiave gestita da AWS meno che la richiesta non provenga dal servizio DynamoDB.
Questa politica chiave, come le politiche comuni a tutti Chiavi gestite da AWS, è stabilita da. AWS Non è possibile modificarla, ma è possibile visualizzarla in qualsiasi momento. Per informazioni dettagliate, consulta Visualizzazione di una policy di chiave.
Le istruzioni di policy nella policy delle chiavi hanno l'effetto seguente:
-
Consenti agli utenti dell'account di utilizzare Chiave gestita da AWS for DynamoDB nelle operazioni crittografiche quando la richiesta proviene da DynamoDB per loro conto. La policy consente inoltre agli utenti di creare concessioni per la chiave. KMS
-
Consente IAM alle identità autorizzate nell'account di visualizzare le proprietà di Chiave gestita da AWS for DynamoDB e di revocare la concessione che consente a DynamoDB di utilizzare la chiave. KMS DynamoDB utilizza concessioni per le operazioni di manutenzione in corso.
-
Consente a DynamoDB di eseguire operazioni di sola lettura per trovare il file per DynamoDB nel tuo account Chiave gestita da AWS .
{ "Version" : "2012-10-17", "Id" : "auto-dynamodb-1", "Statement" : [ { "Sid" : "Allow access through Amazon DynamoDB for all principals in the account that are authorized to use Amazon DynamoDB", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource" : "*", "Condition" : { "StringEquals" : { "kms:CallerAccount" : "111122223333", "kms:ViaService" : "dynamodb.us-west-2.amazonaws.com" } } }, { "Sid" : "Allow direct access to key metadata to the account", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource" : "*" }, { "Sid" : "Allow DynamoDB Service with service principal name dynamodb.amazonaws.com to describe the key directly", "Effect" : "Allow", "Principal" : { "Service" : "dynamodb.amazonaws.com" }, "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*" ], "Resource" : "*" } ] }
Policy delle chiavi per una chiave gestita dal cliente
Quando si seleziona una chiave gestita dal cliente per proteggere una tabella DynamoDB, DynamoDB ottiene l'autorizzazione a utilizzare KMS la chiave per conto del principale che effettua la selezione. Tale principale, un utente o un ruolo, deve disporre delle autorizzazioni sulla KMS chiave richieste da DynamoDB. È possibile fornire queste autorizzazioni in una policy di chiave, in una policy IAM o mediante una concessione.
Le autorizzazioni minime richieste da DynamoDB per una chiave gestita dal cliente sono:
-
kms: ReEncrypt * (per e) kms: ReEncryptFrom kms: ReEncryptTo
-
kms: GenerateDataKey * (per kms: GenerateDataKey e kms:) GenerateDataKeyWithoutPlaintext
Ad esempio, la policy di chiave di esempio riportata di seguito fornisce solo le autorizzazioni necessarie. La policy ha i seguenti effetti:
-
Consente a DynamoDB di utilizzare KMS la chiave nelle operazioni crittografiche e creare concessioni, ma solo quando agisce per conto dei responsabili dell'account che dispongono del permesso di utilizzare DynamoDB. Se le entità specificate nell'istruzione della policy non dispongono dell'autorizzazione per l'utilizzo di DynamoDB, la chiamata non riesce, anche quando proviene dal servizio DynamoDB.
-
La chiave kms: ViaService condition consente le autorizzazioni solo quando la richiesta proviene da DynamoDB per conto dei principali elencati nell'informativa. Tali entità non possono chiamare direttamente queste operazioni. Nota: il valore
kms:ViaService
,dynamodb.*.amazonaws.com
, ha un asterisco (*) nella posizione Regione. DynamoDB richiede l'autorizzazione per essere indipendente da qualsiasi Regione AWS particolare in modo da poter effettuare chiamate interregionali per supportare le tabelle globali DynamoDB. -
Fornisce agli amministratori KMS chiave (utenti che possono assumere il
db-team
ruolo) l'accesso in sola lettura alla KMS chiave e il permesso di revocare le concessioni, incluse le concessioni richieste da DynamoDB per proteggere la tabella.
Prima di utilizzare una policy chiave di esempio, sostituisci i principali di esempio con i principali effettivi scelti dalla tua. Account AWS
{ "Id": "key-policy-dynamodb", "Version":"2012-10-17", "Statement": [ { "Sid" : "Allow access through Amazon DynamoDB for all principals in the account that are authorized to use Amazon DynamoDB", "Effect": "Allow", "Principal": {"AWS": "
arn:aws:iam::111122223333:user/db-lead
"}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService" : "dynamodb.*.amazonaws.com" } } }, { "Sid": "Allow administrators to view the KMS key and revoke grants", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/db-team
" }, "Action": [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource": "*" } ] }
Utilizzo di concessioni per autorizzare DynamoDB
Oltre alle policy delle chiavi, DynamoDB usa le concessioni per impostare le autorizzazioni per una chiave gestita dal cliente o per la Chiave gestita da AWS per DynamoDB (aws/dynamodb
). Per visualizzare le sovvenzioni relative a una KMS chiave del tuo account, usa l'operazione. ListGrants DynamoDB non ha bisogno di concessioni, o di autorizzazioni aggiuntive, per utilizzare la Chiave di proprietà di AWS per proteggere la tabella.
DynamoDB usa le autorizzazioni per la concessione quando esegue la manutenzione dei sistemi in background e le attività di protezione dei dati continuative nel tempo. Utilizza inoltre concessioni per generare le chiavi delle tabelle.
Ogni concessione è specifica di una tabella. Se l'account include più tabelle crittografate con la stessa KMS chiave, è prevista una concessione di ogni tipo per ogni tabella. La concessione è vincolata dal contesto di crittografia DynamoDB, che include il nome della tabella e l' Account AWS ID, e include l'autorizzazione a ritirare la concessione se non è più necessaria.
Per creare le concessioni, DynamoDB deve disporre dell'autorizzazione per chiamare CreateGrant
per conto dell'utente che ha creato la tabella crittografata. Infatti Chiavi gestite da AWS, DynamoDB kms:CreateGrant
ottiene l'autorizzazione dalla policy chiave, che consente agli utenti dell'account di CreateGrantrichiamare KMS la chiave solo quando DynamoDB effettua la richiesta per conto di un utente autorizzato.
La policy chiave può anche consentire all'account di revocare la concessione sulla chiave. KMS Tuttavia, se revochi la concessione sulla tabella crittografata attiva, DynamoDB non sarà in grado di proteggere e mantenere la tabella.
Contesto di crittografia DynamoDB
Un contesto di crittografia è un set di coppie chiave-valore che contiene dati arbitrari non segreti. Quando includi un contesto di crittografia in una richiesta di crittografia dei dati, associa AWS KMS crittograficamente il contesto di crittografia ai dati crittografati. lo stesso contesto di crittografia sia necessario per decrittografare i dati.
DynamoDB utilizza lo stesso contesto di crittografia in AWS KMS tutte le operazioni crittografiche. Se si utilizza una chiave gestita dal cliente o una Chiave gestita da AWSper proteggere la tabella DynamoDB, è possibile utilizzare il contesto di crittografia per identificare l'uso della chiave nei record e KMS nei log di controllo. Viene inoltre visualizzato in testo non crittografato nei log, ad esempio AWS CloudTrailAmazon Logs. CloudWatch
Il contesto di crittografia può anche essere usato come una condizione per le autorizzazioni in policy e concessioni. DynamoDB utilizza il contesto di crittografia per limitare le concessioni che consentono l'accesso alla chiave gestita dal cliente Chiave gestita da AWS o nell'account e nella regione dell'utente.
Nelle sue richieste a AWS KMS, DynamoDB utilizza un contesto di crittografia con due coppie chiave-valore.
"encryptionContextSubset": { "aws:dynamodb:tableName": "Books" "aws:dynamodb:subscriberId": "111122223333" }
-
Tabella — La prima coppia chiave-valore identificherà la tabella che DynamoDB sta crittografando. La chiave è
aws:dynamodb:tableName
. Il valore è il nome della tabella."aws:dynamodb:tableName": "
<table-name>
"Per esempio:
"aws:dynamodb:tableName": "
Books
" -
Account — La seconda coppia chiave-valore identificherà l' Account AWS. La chiave è
aws:dynamodb:subscriberId
. Il valore è l'ID dell'account."aws:dynamodb:subscriberId": "
<account-id>
"Per esempio:
"aws:dynamodb:subscriberId": "111122223333"
Monitoraggio dell'interazione di DynamoDB con AWS KMS
Se utilizzi una chiave gestita dal cliente o una Chiave gestita da AWSper proteggere le tue tabelle DynamoDB, puoi AWS CloudTrail utilizzare i log per tenere traccia delle richieste a cui DynamoDB invia per tuo conto. AWS KMS
Le richieste GenerateDataKey
, Decrypt
e CreateGrant
vengono illustrate in questa sezione. Inoltre, DynamoDB utilizza DescribeKeyun'operazione per determinare se KMS la chiave selezionata esiste nell'account e nella regione. Utilizza anche un'RetireGrantoperazione per rimuovere una concessione quando si elimina una tabella.
- GenerateDataKey
-
Quando si abilita la crittografia dei dati inattivi su una tabella, DynamoDB crea una chiave della tabella univoca. Invia una GenerateDataKeyrichiesta a AWS KMS che specifica la KMS chiave per la tabella.
L'evento che registra l'operazione
GenerateDataKey
è simile a quello del seguente evento di esempio. L'utente è l'account di servizio DynamoDB. I parametri includono l'Amazon Resource Name (ARN) della KMS chiave, un identificatore di chiave che richiede una chiave a 256 bit e il contesto di crittografia che identifica la tabella e il. Account AWS{ "eventVersion": "1.05", "userIdentity": { "type": "AWSService", "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T00:15:17Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:dynamodb:tableName": "Services", "aws:dynamodb:subscriberId": "111122223333" }, "keySpec": "AES_256", "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, "responseElements": null, "requestID": "229386c1-111c-11e8-9e21-c11ed5a52190", "eventID": "e3c436e9-ebca-494e-9457-8123a1f5e979", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333", "sharedEventID": "bf915fa6-6ceb-4659-8912-e36b69846aad" }
- Decrypt
-
Quando si accede a una tabella DynamoDB crittografata, Dynamo DB deve decrittare la chiave della tabella per poter decrittare le chiavi sottostanti nella gerarchia. Quindi decrittografa i dati nella tabella. Per decrittare la chiave della tabella. DynamoDB invia una richiesta Decrypt AWS KMS a che specifica KMS la chiave per la tabella.
L'evento che registra l'operazione
Decrypt
è simile a quello del seguente evento di esempio. L'utente è il vostro principale Account AWS che accede alla tabella. I parametri includono la chiave crittografata della tabella (come blob di testo cifrato) e il contesto di crittografia che identifica la tabella e il. Account AWS AWS KMS ricava l'ID della chiave dal testo cifratoKMS.{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:user01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-02-14T16:42:15Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAIGDT3HGFQZX4RY6RU", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" } }, "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T16:42:39Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:dynamodb:tableName": "Books", "aws:dynamodb:subscriberId": "111122223333" } }, "responseElements": null, "requestID": "11cab293-11a6-11e8-8386-13160d3e5db5", "eventID": "b7d16574-e887-4b5b-a064-bf92f8ec9ad3", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }
- CreateGrant
-
Quando si utilizza una chiave gestita dal cliente o una Chiave gestita da AWS per proteggere la tabella DynamoDB, DynamoDB usa le concessioni per consentire al servizio di eseguire la protezione continua dei dati e le attività di manutenzione e durabilità. Queste concessioni non sono necessarie per le Chiave di proprietà di AWS.
Le concessioni che DynamoDB crea sono specifiche per una tabella. Il principale nella CreateGrantrichiesta è 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 Amazon Resource Name (ARN) della KMS chiave per la tabella, il principale beneficiario e il principale ritirante (il servizio DynamoDB) e le operazioni coperte dalla sovvenzione. Include anche un vincolo che richiede che tutte le operazioni di crittografia utilizzino il contesto di crittografia specificato.{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:user01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-02-14T00:12:02Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" } }, "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T00:15:15Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "retiringPrincipal": "dynamodb.us-west-2.amazonaws.com", "constraints": { "encryptionContextSubset": { "aws:dynamodb:tableName": "Books", "aws:dynamodb:subscriberId": "111122223333" } }, "granteePrincipal": "dynamodb.us-west-2.amazonaws.com", "operations": [ "DescribeKey", "GenerateDataKey", "Decrypt", "Encrypt", "ReEncryptFrom", "ReEncryptTo", "RetireGrant" ] }, "responseElements": { "grantId": "5c5cd4a3d68e65e77795f5ccc2516dff057308172b0cd107c85b5215c6e48bde" }, "requestID": "2192b82a-111c-11e8-a528-f398979205d8", "eventID": "a03d65c3-9fee-4111-9816-8bf96b73df01", "readOnly": false, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }