

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 a riposo per DynamoDB
<a name="EncryptionAtRest"></a>

Tutti i dati utente memorizzati in Amazon DynamoDB sono completamente crittografati a riposo. La crittografia a riposo di DynamoDB offre sicurezza avanzata grazie alla crittografia dei dati mediante le chiavi di crittografia archiviate in [AWS Key Management Service (AWS KMS)](https://aws.amazon.com/kms/). Questa funzionalità consente di ridurre gli oneri operativi e la complessità associati alla protezione dei dati sensibili. La crittografia dei dati inattivi consente di creare applicazioni ad alto livello di sicurezza che rispettano rigorosi requisiti normativi e di conformità per la crittografia.

La crittografia dei dati a riposo di DynamoDB fornisce un livello aggiuntivo di protezione dei dati proteggendo sempre i dati nella tabella crittografata che include la chiave primaria, gli indici secondari locali e globali, flussi, tabelle globali, backup e cluster DynamoDB Accelerator (DAX), ogni volta che i dati vengono archiviati in supporti fisici. Le policy aziendali, le normative di settore e del governo e i requisiti di conformità spesso esigono l'uso della crittografia dei dati inattivi per aumentare la sicurezza dei dati delle applicazioni. Per ulteriori informazioni sulla crittografia per le applicazioni per database, consulta [AWS Database Encryption SDK](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/what-is-database-encryption-sdk.html).

Encryption at rest si integra con la gestione delle chiavi di crittografia utilizzate AWS KMS per crittografare le tabelle. Per ulteriori informazioni sui tipi e sugli stati delle chiavi, consulta i [AWS Key Management Service concepts](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html#key-state-cmk-type) in the *Guida per gli sviluppatori di AWS Key Management Service *.

Quando si crea una nuova tabella, è possibile scegliere uno dei seguenti AWS KMS key tipi per crittografare la tabella. È possibile passare da un tipo di chiave all’altro in qualsiasi momento.
+ **Chiave di proprietà di AWS —** Tipo di crittografia predefinito. La chiave è di proprietà di DynamoDB (nessun costo aggiuntivo).
+ **Chiave gestita da AWS —** La chiave è memorizzata nel tuo account ed è gestita da AWS KMS (a AWS KMS pagamento).
+ **Chiave gestita dal cliente**: la chiave è archiviata nel tuo account ed è creata da te, di tua proprietà e gestita da te. Hai il pieno controllo della chiave KMS (a AWS KMS pagamento).

Per ulteriori informazioni sui tipi di chiave, consulta [Chiavi e AWS chiavi del cliente](/kms/latest/developerguide/concepts.html#key-mgmt).

**Nota**  
Quando si crea un nuovo cluster DAX con la crittografia a riposo abilitata, viene utilizzata una Chiave gestita da AWS per criptare i dati a riposo nel cluster.
Se la tabella dispone di chiavi di ordinamento, alcune di queste che contrassegnano i limiti dell'intervallo sono archiviate come testo non crittografato nei metadati della tabella.

Quando si accede a una tabella crittografata, DynamoDB decrittografa i dati della tabella in modo trasparente. Non è necessario modificare codice o applicazioni per utilizzare o gestire le tabelle crittografate. DynamoDB continua a offrire la stessa latenza di pochi millisecondi a cui si è abituati e tutte le query di DynamoDB funzionano senza problemi sui dati crittografati.

Puoi specificare una chiave di crittografia quando crei una nuova tabella o cambi le chiavi di crittografia su una tabella esistente utilizzando Console di gestione AWS, AWS Command Line Interface (AWS CLI) o l'API Amazon DynamoDB. Per scoprire come, consulta [Gestione di tabelle crittografate in DynamoDB](encryption.tutorial.md).

La crittografia a riposo utilizzando il Chiave di proprietà di AWS è offerta senza costi aggiuntivi. Tuttavia, vengono AWS KMS applicati dei costi per una chiave gestita dal cliente Chiave gestita da AWS e per una chiave gestita dal cliente. Per ulteriori informazioni sui prezzi, consulta [Prezzi di AWS KMS](https://aws.amazon.com/kms/pricing).

La crittografia a riposo di DynamoDB è disponibile in AWS tutte le regioni, incluse le regioni AWS Cina (Pechino) e AWS Cina (Ningxia) e AWS GovCloud le regioni (Stati Uniti). Per ulteriori informazioni, consultare [Crittografia dei dati a riposo di DynamoDB: come funziona](encryption.howitworks.md) e [Note per l'utilizzo della crittografia dei dati inattivi di DynamoDB](encryption.usagenotes.md).

# Crittografia dei dati a riposo di DynamoDB: come funziona
<a name="encryption.howitworks"></a>

La crittografia a riposo di Amazon DynamoDB crittografa i dati tramite lo standard di crittografia avanzata a 256 bit (AES-256) che aiuta a proteggere i dati dall'accesso non autorizzato all'archiviazione sottostante.

Encryption at rest si integra con AWS Key Management Service (AWS KMS) per la gestione delle chiavi di crittografia utilizzate per crittografare le tabelle.

**Nota**  
A maggio 2022, AWS KMS ha modificato il programma di rotazione Chiavi gestite da AWS da ogni tre anni (circa 1.095 giorni) a ogni anno (circa 365 giorni).  
 Chiavi gestite da AWS I nuovi vengono ruotati automaticamente un anno dopo la creazione e successivamente all'incirca ogni anno.  
 Chiavi gestite da AWS Le versioni esistenti vengono ruotate automaticamente un anno dopo la loro rotazione più recente e successivamente ogni anno.

## Chiavi di proprietà di AWS
<a name="ddb-owned"></a>

 Chiavi di proprietà di AWS non sono memorizzati nel tuo AWS account. Fanno parte di una raccolta di chiavi KMS che AWS possiede e gestisce per l'utilizzo in più AWS account. AWS i servizi possono essere utilizzati Chiavi di proprietà di AWS per proteggere i tuoi dati. Chiavi di proprietà di AWS utilizzati da DynamoDB vengono ruotati ogni anno (circa 365 giorni). 

Non è possibile visualizzarne, gestirli Chiavi di proprietà di AWS, utilizzarli o controllarne l'utilizzo. Tuttavia, non è necessario effettuare alcuna operazione o modificare programmi per proteggere le chiavi che eseguono la crittografia dei dati.

Non ti viene addebitato un canone mensile o un canone di utilizzo per l'utilizzo di Chiavi di proprietà di AWS e questi non vengono conteggiati nelle AWS KMS quote relative al tuo account.

## Chiavi gestite da AWS
<a name="managed-key-service-default-kms"></a>

Chiavi gestite da AWS sono chiavi KMS del tuo account che vengono create, gestite e utilizzate per tuo conto da un AWS servizio integrato con. AWS KMS Puoi visualizzare le Chiavi gestite da AWS nel tuo account, visualizzare le relative policy delle chiavi e verificare il loro utilizzo nei registri AWS CloudTrail . Tuttavia, non puoi gestire queste chiavi KMS o modificarne le autorizzazioni.

Encryption at rest si integra automaticamente con AWS KMS la gestione dei file Chiavi gestite da AWS for DynamoDB `aws/dynamodb` () utilizzati per crittografare le tabelle. Se Chiave gestita da AWS non esiste un quando crei la tabella DynamoDB crittografata AWS KMS , crea automaticamente una nuova chiave per te. Questa chiave viene utilizzata con le tabelle crittografate che verranno create in futuro. AWS KMS combina hardware e software sicuri e ad alta disponibilità per fornire un sistema di gestione delle chiavi scalabile per il cloud.

*Per ulteriori informazioni sulla gestione delle autorizzazioni di Chiave gestita da AWS, vedere [Authorizing use of the Chiave gestita da AWS](https://docs.aws.amazon.com/kms/latest/developerguide/services-dynamodb.html#dynamodb-authz)AWS Key Management Service nella Developer Guide.*

## Chiavi gestite dal cliente
<a name="managed-key-customer-managed"></a>

Le chiavi gestite dal cliente sono chiavi KMS del tuo AWS account che crei, possiedi e gestisci. Hai il controllo completo di queste chiavi KMS, tra cui la definizione e il mantenimento delle policy delle chiavi, delle policy IAM e delle concessioni, l'abilitazione e la disabilitazione di tali chiavi, la rotazione del materiale crittografico, l'aggiunta di tag, la creazione di alias che fanno riferimento a esse e la pianificazione per l'eliminazione. Per ulteriori informazioni relative alla gestione delle autorizzazioni di una chiave gestita dal cliente, consulta [Chiavi gestite dal cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk).

Quando specifichi una chiave gestita dal cliente come chiave di crittografia a livello di tabella, la tabella DynamoDB, gli indici secondari locale e globale e i flussi vengono crittografati con la stessa chiave gestita dal cliente. I backup on demand vengono crittografati con la chiave di crittografia a livello di tabella specificata al momento della creazione del backup. L'aggiornamento della chiave di crittografia a livello di tabella non modifica la chiave di crittografia associata con i backup on demand esistenti.

L'impostazione dello stato della chiave gestita dal cliente su disabilitata o la pianificazione per l'eliminazione impedisce a tutti gli utenti e al servizio DynamoDB di criptare o decriptare i dati e di eseguire operazioni di lettura e scrittura sulla tabella. DynamoDB deve poter accedere alla chiave di crittografia per assicurarsi di poter continuare ad accedere alla tabella e prevenire la perdita di dati.

Se disabiliti la chiave gestita dal cliente o ne pianifichi l'eliminazione, lo stato della tabella diventa **Inaccessible (Inaccessibile)**. Per essere certi che sia possibile continuare a lavorare con la tabella, è necessario fornire a DynamoDB l'accesso alla chiave di crittografia specificata entro sette giorni. Non appena il servizio rileva che la chiave di crittografia non è accessibile, DynamoDB invia una notifica e-mail come avviso.

**Nota**  
Se la chiave gestita dal cliente rimane inaccessibile al servizio DynamoDB per più di sette giorni, la tabella viene archiviata e non è più possibile accedervi. DynamoDB crea un backup on demand della tabella che viene addebitato. È possibile utilizzare il backup on demand per ripristinare i dati in una nuova tabella. Per avviare il ripristino, è necessario abilitare l'ultima chiave gestita dal cliente sulla tabella e DynamoDB deve potervi accedere.
Se non è possibile accedere alla chiave gestita dal cliente utilizzata per criptare una replica della tabella globale, DynamoDB rimuoverà questa replica dal gruppo di replica. La replica non verrà eliminata e sarà interrotta da e verso questa regione 20 ore dopo aver rilevato che la chiave gestita dal cliente non è accessibile.

Per ulteriori informazioni, copri come [attivare](/kms/latest/developerguide/enabling-keys.html) ed [eliminare](/kms/latest/developerguide/deleting-keys.html) le chiavi. 

## Note sull'utilizzo Chiavi gestite da AWS
<a name="managed-key-notes"></a>

Amazon DynamoDB non può leggere i dati delle tabelle a meno che non abbia accesso alla chiave KMS memorizzata nel tuo account. AWS KMS DynamoDB utilizza la crittografia envelope e la gerarchia delle chiavi per criptare i dati. La tua chiave di AWS KMS crittografia viene utilizzata per crittografare la chiave principale di questa gerarchia di chiavi. Per ulteriori informazioni, consulta [Crittografia envelope](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping) nella *Guida per gli sviluppatori di AWS Key Management Service *.

 DynamoDB non AWS KMS richiede ogni operazione DynamoDB. La chiave viene aggiornata una volta ogni 5 minuti per chiamante con traffico attivo.

Assicurati di avere configurato l'SDK per riutilizzare le connessioni. In caso contrario, si verificheranno delle latenze dovute alla necessità di ristabilire nuove voci della AWS KMS cache per ogni operazione DynamoDB. Inoltre, potreste dover affrontare costi più elevati. AWS KMS CloudTrail Ad esempio, per fare ciò con l'SDK Node.js, puoi creare un nuovo agente HTTPS con `keepAlive` attivato. Per ulteriori informazioni, consulta [Configurazione di keepAlive in Node.js](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/node-reusing-connections.html) nella *Guida per lo sviluppatore di AWS SDK per JavaScript *.

# Note per l'utilizzo della crittografia dei dati inattivi di DynamoDB
<a name="encryption.usagenotes"></a>

Quando si utilizza la crittografia a riposo di Amazon DynamoDB, tenere in considerazione quanto riportato di seguito.

## Tutti i dati della tabella vengono crittografati
<a name="encryption.usagenotes.tabledata"></a>

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 il protocollo HTTPS, che protegge il traffico di rete tramite 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](https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/client-server-side.html) 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](Streams.md).

I backup DynamoDB sono crittografati e anche la tabella che viene ripristinata da un backup ha la crittografia abilitata. È possibile utilizzare la chiave o Chiave di proprietà di AWS Chiave gestita da AWS la chiave gestita dal cliente per crittografare i dati di backup. Per ulteriori informazioni, consulta [Backup e ripristino per DynamoDB](Backup-and-Restore.md).

Gli indici secondari locali e gli indici secondari globali vengono crittografati utilizzando la stessa chiave della tabella di base.

## Tipi di crittografia
<a name="encryption.usagenotes.encryptiontypes"></a>

**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 Console di gestione AWS, 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. Nell'API Amazon DynamoDB, il tipo di crittografia `KMS` è quando usi la chiave o la chiave gestita Chiave gestita da AWS 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, la AWS Command Line Interface (AWS CLI) o l'API Amazon DynamoDB per cambiare le chiavi di crittografia.

Notare le seguenti limitazioni quando si utilizzano le chiavi gestite dal cliente:
+ Non puoi utilizzare una chiave gestita dal cliente con i cluster DynamoDB Accelerator (DAX). Per ulteriori informazioni, consulta [Crittografia DAX dei dati inattivi](DAXEncryptionAtRest.md).
+ 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 Amazon CloudWatch vengono crittografati con 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à ABILITATO e verrà visualizzata la KMSMaster KeyArn 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 l' DescribeBackup API per visualizzare i backup SSEDescription.
+ 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 della durata (TTL) continuano per 30 minuti. Queste eliminazioni TTL continuano a essere emesse su DynamoDB Streams e sono soggette all'intervallo standard. trimming/retention 

  Per ulteriori informazioni, copri come [attivare](/kms/latest/developerguide/enabling-keys.html) ed [eliminare](/kms/latest/developerguide/deleting-keys.html) le chiavi. 

## Utilizzo di chiavi KMS e chiavi dati
<a name="dynamodb-kms"></a>

La funzionalità di crittografia a riposo di DynamoDB utilizza AWS KMS key una e una gerarchia di chiavi 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](https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/what-is-ddb-encrypt.html).

**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](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk), 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](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) per DynamoDB (`aws/dynamodb`) nell' Account AWS. È possibile selezionare una chiave KMS differente per ogni tabella. La chiave KMS selezionata per una tabella viene anche utilizzata per crittografare gli indici secondari locali e globali, i flussi e i backup.  
Quando si crea o si aggiorna la tabella, si seleziona la chiave KMS per una tabella. È possibile modificare la chiave KMS per una tabella in qualsiasi momento, nella console DynamoDB o utilizzando l'operazione. [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html) Il processo di scambio di chiavi è sicuro, non richiede tempi di inattività e non comporta alcun calo delle prestazioni del servizio.  
DynamoDB supporta solo[Chiavi KMS simmetriche](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks). Non è possibile utilizzare una [chiave KMS asimmetrica](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks) per crittografare le tabelle DynamoDB. 
Utilizza una chiave gestita dal cliente per ottenere le seguenti caratteristiche:  
+ È possibile creare e gestire la chiave KMS, inclusa l'impostazione della [Policy delle chiavi](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html), la [Policy IAM](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) e le [concessioni](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) per controllare l'accesso alla chiave KMS. È possibile [abilitare e disabilitare](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html) la chiave KMS, abilitare e disabilitare [la rotazione automatica della chiave](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) ed [eliminare la chiave KMS](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) quando non è più in uso.
+ Puoi utilizzare una chiave gestita dal cliente con [materiale di chiave importato](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) o una chiave gestita dal cliente in un [archivio delle chiavi personalizzate](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) di cui sei proprietario e gestore. 
+ [È possibile controllare la crittografia e la decrittografia della tabella DynamoDB esaminando le chiamate dell'API DynamoDB ai log. AWS KMSAWS CloudTrail](https://docs.aws.amazon.com/kms/latest/developerguide/services-dynamodb.html#dynamodb-cmk-trail)
Utilizza Chiave gestita da AWS se hai bisogno di una delle seguenti funzionalità:  
+ Puoi [visualizzare la chiave KMS](https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html) e [visualizzare la policy chiave](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-viewing.html). (non è possibile modificare la policy della chiave).
+ [È possibile controllare la crittografia e la decrittografia della tabella DynamoDB esaminando le chiamate dell'API DynamoDB ai log. AWS KMSAWS CloudTrail](https://docs.aws.amazon.com/kms/latest/developerguide/services-dynamodb.html#dynamodb-cmk-trail)
[Tuttavia, Chiave di proprietà di AWS è gratuito e il suo utilizzo non influisce sulle quote di risorse o richieste.AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) Le chiavi gestite dal cliente Chiavi gestite da AWS [comportano un costo](https://aws.amazon.com/kms/pricing/) per ogni chiamata API e le AWS KMS quote si applicano a queste chiavi KMS.

**Chiavi delle tabelle**  
DynamoDB usa la chiave KMS per la tabella per [generare](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) e crittografare una [chiave di dati](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) univoca per la tabella, nota come la *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.  

![\[Crittografia di una tabella DynamoDB con la crittografia dei dati inattivi\]](http://docs.aws.amazon.com/it_it/amazondynamodb/latest/developerguide/images/service-ddb-encrypt.png)

Quando si accede per la prima volta a una tabella crittografata, DynamoDB invia una richiesta AWS KMS per utilizzare la chiave KMS 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](https://en.wikipedia.org/wiki/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.  
Quando viene modificata la chiave KMS 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 chiave KMS in AWS KMS or AWS Identity and Access Management (IAM) dall'ultima richiesta di decrittografia della chiave della tabella.

## Autorizzazione all'uso della propria chiave KMS
<a name="dynamodb-kms-authz"></a>

Se utilizzi una [chiave gestita dal cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) o la [Chiave gestita da AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) nel tuo account per proteggere la tabella DynamoDB, è necessario che le policy su tale chiave KMS forniscano a DynamoDB l'autorizzazione per usarla 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 AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys)impostazione predefinita per proteggere le tabelle DynamoDB presenti nel tuo. Account AWS

**Topics**
+ [

### Politica chiave per un Chiave gestita da AWS
](#dynamodb-policies)
+ [

### Policy delle chiavi per una chiave gestita dal cliente
](#dynamodb-customer-cmk-policy)
+ [

### Utilizzo di concessioni per autorizzare DynamoDB
](#dynamodb-grants)

### Politica chiave per un Chiave gestita da AWS
<a name="dynamodb-policies"></a>

Quando DynamoDB utilizza la [Chiave gestita da AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) per DynamoDB (`aws/dynamodb`) in operazioni di crittografia, lo fa per conto dell'utente che accede alla [risorsa DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-overview.html). 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](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-via-service) 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](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-viewing.html).

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, inoltre, consente agli utenti di [creare concessioni](https://docs.aws.amazon.com/kms/latest/developerguide/services-dynamodb.html#dynamodb-grants) per la chiave KMS.
+ Consente alle identità IAM autorizzate nell'account di visualizzare le proprietà del Chiave gestita da AWS per DynamoDB e di [revocare la concessione](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html) che consente a DynamoDB di utilizzare la chiave KMS. DynamoDB utilizza [concessioni](https://docs.aws.amazon.com/kms/latest/developerguide/services-dynamodb.html#dynamodb-grants) 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 .

------
#### [ JSON ]

****  

```
{
  "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
<a name="dynamodb-customer-cmk-policy"></a>

Quando selezioni una [chiave gestita dal cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) per proteggere una tabella DynamoDB, DynamoDB ottiene l'autorizzazione per utilizzare la chiave KMS per conto del principale che effettua la selezione. Tale principale, un utente o un ruolo, deve disporre delle autorizzazioni per la chiave KMS richiesta da DynamoDB. È possibile fornire queste autorizzazioni in una [policy chiave](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html), in una [policy IAM](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) o mediante una [concessione](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html).

Le autorizzazioni minime richieste da DynamoDB per una chiave gestita dal cliente sono:
+ [kms:Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)
+ [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)
+ [kms](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html): \$1 (per e) ReEncrypt kms: ReEncryptFrom kms: ReEncryptTo
+ [kms: GenerateDataKey \$1 (per [kms: GenerateDataKey e kms:](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)) GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)
+ [km: DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)
+ [km: CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)

Ad esempio, la policy della chiave di esempio riportata di seguito fornisce solo le autorizzazioni necessarie. La policy ha i seguenti effetti:
+ Consente a DynamoDB di utilizzare la chiave KMS nelle operazioni di crittografia e di creare concessioni, ma solo quando agisce per conto dei principali dell'account dotati dell'autorizzazione per l'utilizzo di 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](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-via-service) condition consente le autorizzazioni solo quando la richiesta proviene da DynamoDB per conto dei principali elencati nell'informativa. Tali entità principali non possono chiamare direttamente queste operazioni. Nota: il valore `kms:ViaService`,`dynamodb.*.amazonaws.com`, ha un asterisco (\$1) 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.](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html)
+ Fornisce agli amministratori delle chiavi KMS (utenti che possono assumere il ruolo `db-team`) l'accesso in sola lettura alla chiave KMS e l'autorizzazione per revocare le concessioni, incluse le [concessioni richieste da DynamoDB](#dynamodb-grants) per proteggere la tabella.

Prima di utilizzare una policy chiave di esempio, sostituisci i principali di esempio con i principali effettivi del tuo. Account AWS

------
#### [ JSON ]

****  

```
{
  "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
<a name="dynamodb-grants"></a>

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 chiave KMS nel tuo account, usa l'operazione. [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html) DynamoDB non ha bisogno di concessioni, o di autorizzazioni aggiuntive, per utilizzare la [Chiave di proprietà di AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) 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](https://docs.aws.amazon.com/kms/latest/developerguide/services-dynamodb.html#dynamodb-encrypt).

Ogni concessione è specifica di una tabella. Se l'account include più tabelle crittografate con la stessa chiave KMS, è prevista una concessione di ciascun tipo per ogni tabella. La concessione è vincolata dal [contesto di crittografia DynamoDB](#dynamodb-encryption-context), che include il nome della tabella e l' Account AWS ID, e include l'autorizzazione a [ritirare la concessione](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html) 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](#dynamodb-policies), che consente agli utenti dell'account di [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)richiamare la chiave KMS solo quando DynamoDB effettua la richiesta per conto di un utente autorizzato. 

La policy delle chiavi può anche consentire all'account di [revocare la concessione](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html) 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
<a name="dynamodb-encryption-context"></a>

Un [contesto di crittografia](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) è 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 utilizzi una [chiave gestita dal cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) o una [Chiave gestita da AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) per proteggere la tabella DynamoDB, puoi utilizzare il contesto di crittografia per identificare l'utilizzo della chiave KMS nei record e nei log di audit. [Viene inoltre visualizzato in testo non crittografato nei log, ad esempio [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)Amazon Logs. CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) 

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'](#dynamodb-grants)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>"
  ```

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

  Esempio:

  ```
  "aws:dynamodb:subscriberId": "111122223333"
  ```

## Monitoraggio dell'interazione di DynamoDB con AWS KMS
<a name="dynamodb-cmk-trail"></a>

Se utilizzi una [chiave gestita dal cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) o una [Chiave gestita da AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)per 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 [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)un'operazione per determinare se la chiave KMS selezionata esiste nell'account e nella regione. Utilizza anche un'[RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)operazione 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 *[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)*richiesta a AWS KMS che specifica la chiave KMS 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 chiave KMS, un identificatore della chiave che richiede una chiave a 256 bit e il [contesto di crittografia](#dynamodb-encryption-context) 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](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) richiesta Decrypt AWS KMS a che specifica la chiave KMS per la tabella.  
L’evento che registra l’operazione `Decrypt` è simile a quello del seguente evento di esempio. L'utente è il vostro Account AWS principale che accede alla tabella. I parametri includono la chiave crittografata della tabella (come blob di testo cifrato) e il [contesto di crittografia](#dynamodb-encryption-context) che identifica la tabella e il. Account AWS AWS KMS ricava l'ID della chiave KMS dal testo cifrato.   

```
{
    "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](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) o una [Chiave gestita da AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) per proteggere la tabella DynamoDB, DynamoDB usa le [concessioni](#dynamodb-grants) 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](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk).  
Le concessioni che DynamoDB crea sono specifiche per una tabella. Il principale nella [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)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 KMS per la tabella, il principale dell'assegnatario e il principale pianificato per il ritiro (il servizio DynamoDB), nonché le operazioni coperte dalla concessione. Include anche un vincolo che richiede che tutte le operazioni di crittografia utilizzino il [contesto di crittografia](#dynamodb-encryption-context) 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"
}
```

# Gestione di tabelle crittografate in DynamoDB
<a name="encryption.tutorial"></a>

Puoi usare Console di gestione AWS o the AWS Command Line Interface (AWS CLI) per specificare la chiave di crittografia su nuove tabelle e aggiornare le chiavi di crittografia sulle tabelle esistenti in Amazon DynamoDB.

**Topics**
+ [

## Definizione della chiave di crittografia per una nuova tabella
](#encryption.tutorial-creating)
+ [

## Aggiornamento di una chiave di crittografia
](#encryption.tutorial-update)

## Definizione della chiave di crittografia per una nuova tabella
<a name="encryption.tutorial-creating"></a>

Completare la procedura riportata di seguito per specificare la chiave di crittografia su una nuova tabella utilizzando la console Amazon DynamoDB o la AWS CLI.

### Creazione di una tabella crittografata (console)
<a name="encryption.tutorial-console"></a>

1. Accedi Console di gestione AWS e apri la console DynamoDB all'indirizzo. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1.  Nel riquadro di navigazione sul lato sinistro della console scegli **Tables (Tabelle)**.

1. Scegliere **Create Table (Crea tabella)**. Nel campo **Table name (Nome tabella)** immetti **Music**. Per la chiave primaria, immetti **Artist** e per la chiave di ordinamento, immetti **SongTitle**, entrambe come stringhe.

1. In **Impostazioni**, verifica che **Personalizza impostazioni** sia selezionato.
**Nota**  
Se è selezionata l'opzione **Usa impostazioni predefinite**, le tabelle vengono crittografate quando sono inattive senza Chiave di proprietà di AWS costi aggiuntivi.

1. In **Encryption at rest**, scegli un tipo di crittografia o una chiave gestita dal cliente. Chiave di proprietà di AWS Chiave gestita da AWS
   +  **Di proprietà di Amazon DynamoDB.** AWS chiave proprietaria, specificamente posseduta e gestita da DynamoDB. Non ti viene addebitato alcun costo aggiuntivo per l'utilizzo di questa chiave.
   + **AWS chiave gestita**. Alias della chiave: `aws/dynamodb`. La chiave è memorizzata nel tuo account ed è gestita da AWS Key Management Service (AWS KMS). AWS KMS si applicano costi.
   +  **Archiviato nell'account e di proprietà e gestito dal cliente.** Chiave gestita dal cliente. La chiave è memorizzata nel tuo account ed è gestita da AWS Key Management Service (AWS KMS). AWS KMS si applicano costi.
**Nota**  
Se scegli di possedere e gestire la tua chiave, assicurati che la policy delle chiavi KMS sia impostata in modo appropriato. Per ulteriori informazioni ed esempi, consulta [Policy delle chiavi per una chiave gestita dal cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk).

1. Scegli **Crea** per creare la tabella crittografata. Per confermare il tipo di crittografia, seleziona i dettagli della tabella nella scheda **Panoramica** e rivedi la sezione **Ulteriori dettagli**.

### Creazione di una tabella crittografata (AWS CLI)
<a name="encryption.tutorial-cli"></a>

Utilizza AWS CLI per creare una tabella con la chiave predefinita Chiave di proprietà di AWS Chiave gestita da AWS, la o una chiave gestita dal cliente per Amazon DynamoDB.

**Per creare una tabella crittografata con l'impostazione predefinita Chiave di proprietà di AWS**
+ Crea la tabella `Music` crittografata come segue.

  ```
  aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput \
        ReadCapacityUnits=10,WriteCapacityUnits=5
  ```
**Nota**  
Questa tabella è ora crittografata utilizzando l'impostazione predefinita Chiave di proprietà di AWS nell'account del servizio DynamoDB.

**Per creare una tabella crittografata con Chiave gestita da AWS for DynamoDB**
+ Crea la tabella `Music` crittografata come segue.

  ```
  aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput \
        ReadCapacityUnits=10,WriteCapacityUnits=5 \
    --sse-specification Enabled=true,SSEType=KMS
  ```

   Lo stato `SSEDescription` della descrizione della tabella è impostato su `ENABLED` e `SSEType` è impostato su `KMS`. 

  ```
  "SSEDescription": {
    "SSEType": "KMS",
    "Status": "ENABLED",
    "KMSMasterKeyArn": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-abcd-1234-a123-ab1234a1b234",
  }
  ```

**Per creare una tabella criptata con una chiave gestita dal cliente per DynamoDB**
+ Crea la tabella `Music` crittografata come segue.

  ```
  aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput \
        ReadCapacityUnits=10,WriteCapacityUnits=5 \
    --sse-specification Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234
  ```
**Nota**  
Per`KMSMasterKeyId`, è possibile utilizzare un ID chiave, un ARN di chiave o un alias di chiave. Se si utilizza un alias chiave (ad esempio,`alias/my-key`), DynamoDB risolve l'alias e associa la chiave sottostante alla tabella. AWS KMS Nella descrizione della tabella, `KMSMasterKeyArn` mostrerà sempre l'ARN della chiave risolta, non l'alias. *Per ulteriori informazioni sugli identificatori di chiave, consulta [Key identifiers (KeyId)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id) nella Guida per gli sviluppatori.AWS Key Management Service *

   Lo stato `SSEDescription` della descrizione della tabella è impostato su `ENABLED` e `SSEType` è impostato su `KMS`.

  ```
  "SSEDescription": {
    "SSEType": "KMS",
    "Status": "ENABLED",
    "KMSMasterKeyArn": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-abcd-1234-a123-ab1234a1b234",
  }
  ```

## Aggiornamento di una chiave di crittografia
<a name="encryption.tutorial-update"></a>

Puoi anche utilizzare la console DynamoDB o aggiornare AWS CLI le chiavi di crittografia di una tabella esistente tra una chiave e Chiave di proprietà di AWS una Chiave gestita da AWS chiave gestita dal cliente in qualsiasi momento.

### Aggiornamento di una chiave di crittografia (console)
<a name="encryption.tutorial-update-console"></a>

1. Accedi Console di gestione AWS e apri la console DynamoDB all'indirizzo. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1.  Nel riquadro di navigazione sul lato sinistro della console scegli **Tables (Tabelle)**.

1. Scegli la policy da aggiornare.

1. Seleziona il menu a discesa **Operazioni**, quindi seleziona l'opzione **Aggiornamento delle impostazioni**.

1. Vai alla scheda **Impostazioni aggiuntive**.

1. In **Crittografia**, scegli **Gestisci crittografia**.

1. Scegli un tipo di crittografia:
   +  **Di proprietà di Amazon DynamoDB.** La AWS KMS chiave è di proprietà e gestita da DynamoDB. Non ti viene addebitato alcun costo aggiuntivo per l'utilizzo di questa chiave.
   + AWS alias **chiave gestita**:. `aws/dynamodb` La chiave è memorizzata nel tuo account ed è gestita da AWS Key Management Service. (AWS KMS). AWS KMS si applicano costi.
   +  **Archiviato nell'account e di proprietà e gestito dal cliente.** La chiave è memorizzata nel tuo account ed è gestita da AWS Key Management Service. (AWS KMS). AWS KMS si applicano costi.
**Nota**  
Se scegli di possedere e gestire la tua chiave, assicurati che la policy delle chiavi KMS sia impostata in modo appropriato. Per ulteriori informazioni, consulta [Policy delle chiavi per una chiave gestita dal cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk).

   Quindi, scegli **Save (Salva)** per aggiornare la tabella crittografata. Per confermare il tipo di crittografia, controlla i dettagli della tabella nella scheda **Overview (Panoramica)**.

### Aggiornamento di una chiave di crittografia (AWS CLI)
<a name="encryption.tutorial-update-cli"></a>

Gli esempi seguenti mostrano come aggiornare una tabella crittografata utilizzando AWS CLI.

**Per aggiornare una tabella crittografata con quella predefinita Chiave di proprietà di AWS**
+ Aggiorna la tabella `Music` crittografata, come nell'esempio seguente.

  ```
  aws dynamodb update-table \
    --table-name Music \
    --sse-specification Enabled=false
  ```
**Nota**  
Questa tabella è ora crittografata utilizzando l'impostazione predefinita Chiave di proprietà di AWS nell'account del servizio DynamoDB.

**Per aggiornare una tabella crittografata con Chiave gestita da AWS for DynamoDB**
+ Aggiorna la tabella `Music` crittografata, come nell'esempio seguente.

  ```
  aws dynamodb update-table \
    --table-name Music \
    --sse-specification Enabled=true
  ```

   Lo stato `SSEDescription` della descrizione della tabella è impostato su `ENABLED` e `SSEType` è impostato su `KMS`.

  ```
  "SSEDescription": {
    "SSEType": "KMS",
    "Status": "ENABLED",
    "KMSMasterKeyArn": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-abcd-1234-a123-ab1234a1b234",
  }
  ```

**Per aggiornare una tabella criptata con una chiave gestita dal cliente per DynamoDB**
+ Aggiorna la tabella `Music` crittografata, come nell'esempio seguente.

  ```
  aws dynamodb update-table \
    --table-name Music \
    --sse-specification Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234
  ```
**Nota**  
Per`KMSMasterKeyId`, è possibile utilizzare un ID chiave, un ARN di chiave o un alias di chiave. Se si utilizza un alias chiave (ad esempio,`alias/my-key`), DynamoDB risolve l'alias e associa la chiave sottostante alla tabella. AWS KMS Nella descrizione della tabella, `KMSMasterKeyArn` mostrerà sempre l'ARN della chiave risolta, non l'alias.

   Lo stato `SSEDescription` della descrizione della tabella è impostato su `ENABLED` e `SSEType` è impostato su `KMS`. 

  ```
  "SSEDescription": {
    "SSEType": "KMS",
    "Status": "ENABLED",
    "KMSMasterKeyArn": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-abcd-1234-a123-ab1234a1b234",
  }
  ```