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à.
Modifica del modello di dati
Nota
La nostra libreria di crittografia lato client è stata rinominata Database Encryption SDK. AWS Il seguente argomento fornisce informazioni sulle versioni 1. x —2. x del DynamoDB Encryption Client for Java e versioni 1. x —3. x del client di crittografia DynamoDB per Python. Per ulteriori informazioni, consulta AWS Database Encryption SDK per il supporto della versione DynamoDB.
Ogni volta che si crittografa o decrittografa un elemento, è necessario fornire azioni di attributo che indichino al DynamoDB Encryption Client quali attributi crittografare e firmare, quali attributi firmare (ma non crittografare) e quali ignorare. Le azioni degli attributi non vengono salvate nell'elemento crittografato e il DynamoDB Encryption Client non aggiorna automaticamente le azioni degli attributi.
Importante
Il DynamoDB Encryption Client non supporta la crittografia dei dati delle tabelle DynamoDB esistenti e non crittografati.
Ogni volta che modifichi il modello di dati, ovvero quando aggiungi o rimuovi attributi dagli item della tabella, rischi di incorrere un errore. Se le operazioni di attributo specificate non valgono per tutti gli attributi nell'item, l'item potrebbe non essere crittografato e firmato secondo le tue intenzioni. E, cosa più importante, se le operazioni di attributo che fornisci quando decrittografi un item sono diverse da quelle che hai fornito quando lo hai crittografato, la verifica della firma potrebbe non andare a buon fine.
Ad esempio, se le operazioni di attributo usate per crittografare l'item gli comunicano di firmare l'attributo test
, la firma nell'item comprenderà l'attributo test
. Ma se le operazioni di attributo usate per decrittografare l'item non valgono per l'attributo test
, la verifica non andrà a buon fine, perché il client proverà a verificare una firma che non comprende l'attributo test
.
Questo è un problema particolare quando più applicazioni leggono e scrivono gli stessi elementi di DynamoDB, perché il DynamoDB Encryption Client deve calcolare la stessa firma per gli elementi in tutte le applicazioni. È anche un problema per qualsiasi applicazione distribuita perché le modifiche nelle operazioni di attributo devono propagarsi a tutti gli host. Anche se alle tabelle DynamoDB accede un solo host in un unico processo, stabilire una procedura basata sulle best practice aiuterà a prevenire gli errori nel caso in cui il progetto dovesse diventare più complesso.
Per evitare errori di convalida delle firme che impediscono la lettura degli item della tabella, utilizza le istruzioni riportate di seguito.
-
Aggiungere un attributo: se il nuovo attributo modifica le azioni dell'attributo, implementa completamente la modifica dell'azione dell'attributo prima di includere il nuovo attributo in un elemento.
-
Rimozione di un attributo: se smetti di utilizzare un attributo nei tuoi articoli, non modificare le azioni relative agli attributi.
-
Modifica dell'azione: dopo aver utilizzato una configurazione delle azioni degli attributi per crittografare gli elementi della tabella, non è possibile modificare in modo sicuro l'azione predefinita o l'azione per un attributo esistente senza crittografare nuovamente ogni elemento della tabella.
Gli errori di convalida delle firme possono essere estremamente difficili da risolvere, quindi l'approccio migliore è prevenirli.
Aggiunta di un attributo
Quando aggiungi un nuovo attributo agli item della tabella, potrebbe essere necessario modificare le operazioni di attributo. Per evitare errori di convalida delle firme, ti consigliamo di implementare questa modifica in un processo a due fasi. Verifica che la prima fase sia completata prima di iniziare la seconda fase.
-
Modifica le operazioni di attributo in tutte le applicazioni che leggono o scrivono nella tabella. Distribuisci queste modifiche e conferma che l'aggiornamento è stato propagato a tutti gli host di destinazione.
-
Scrivi i valori nel nuovo attributo negli item della tabella.
Questo approccio in due fasi garantisce che tutte le applicazioni e gli host abbiano le stesse operazioni di attributo e calcolerà la stessa firma prima che qualsiasi elemento incontri il nuovo attributo. Ciò è importante anche quando l'operazione di attributo è Non fare nulla (non crittografare o firmare), perché l'impostazione predefinita per alcuni sistemi di crittografia è crittografare e firmare.
Negli esempi seguenti viene illustrato il codice per la prima fase di questo processo. Viene aggiunto un nuovo attributo dell’item, link
, che memorizza un collegamento a un altro item della tabella. Poiché questo collegamento deve rimanere in testo normale, l'esempio assegna l'operazione di sola firma. Dopo aver distribuito completamente questa modifica e aver verificato che tutte le applicazioni e gli host abbiano le nuove operazioni di attributo, puoi iniziare a utilizzare l'attributo link
negli item della tabella.
Rimozione di un attributo
Se non è più necessario un attributo negli elementi che sono stati crittografati con il DynamoDB Encryption Client, è possibile smettere di utilizzare l'attributo. Tuttavia, non eliminare o modificare l'operazione per tale attributo. In tal caso, se viene riscontrato un item con tale attributo, la firma calcolata per l'item non corrisponderà alla firma originale e la convalida della firma avrà esito negativo.
Anche se potresti essere tentato di rimuovere tutte le tracce dell'attributo dal tuo codice, aggiungi un commento che indica che l'item non è più utilizzato invece di eliminarlo. Anche se esegui una scansione completa della tabella per eliminare tutte le istanze dell'attributo, un item crittografato con tale attributo potrebbe essere memorizzato nella cache o in fase di elaborazione in qualche punto della configurazione.