Come migrare e implementare ilAWS Encryption SDK - AWS Encryption SDK

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

Come migrare e implementare ilAWS Encryption SDK

Durante la migrazione da unAWS Encryption SDKversione precedente alla 1.7.xalla versione 2.0.xo successivamente, è necessario passare in modo sicuro alla crittografia conimpegno chiave. In caso contrario, l'applicazione incontrerà testi cifrati che non potrà decifrare. Se utilizziAWS KMSprovider di chiavi master, è necessario eseguire l'aggiornamento a nuovi costruttori che creano provider di chiavi master in modalità rigorosa o modalità di rilevamento.

Nota

Questo argomento è destinato agli utenti che eseguono la migrazione da versioni precedenti diAWS Encryption SDKalla versione 2.0.xo successive Se sei nuovo alAWS Encryption SDK, puoi iniziare a utilizzare immediatamente l'ultima versione disponibile con le impostazioni predefinite.

Per evitare una situazione critica in cui non è possibile decrittografare il testo cifrato che è necessario leggere, si consiglia di eseguire la migrazione e la distribuzione in più fasi distinte. Verifica che ogni fase sia completa e completamente implementata prima di iniziare la fase successiva. Ciò è particolarmente importante per le applicazioni distribuite con più host.

Fase Aggiornare l'applicazione alla versione più recente 1.xversione

Aggiornare alla versione più recente 1.xversione per il tuo linguaggio di programmazione. Prova con attenzione, distribuisci le modifiche e conferma che l'aggiornamento si sia propagato a tutti gli host di destinazione prima di iniziare la fase 2.

Importante

Verificare che il tuo ultimo file 1.xversione è versione 1.7.xo più tardi delAWS Encryption SDK.

L'ultimo 1.xversioni delAWS Encryption SDKsono retrocompatibili con le versioni precedenti diAWS Encryption SDKe successivamente compatibile con le versioni 2.0.xe successive Includono le nuove funzionalità presenti in versione 2.0.x, ma includono impostazioni predefinite sicure progettate per questa migrazione. Ti consentono di aggiornare il tuoAWS KMSfornitori di chiavi master, se necessario, e da implementare completamente con suite di algoritmi in grado di decrittografare il testo cifrato con l'impegno della chiave.

  • Sostituisci gli elementi obsoleti, inclusi i costruttori con quelli precedentiAWS KMSprovider di chiavi master. InPitone, assicurati di attivare gli avvisi di obsolescenza. Elementi di codice obsoleti nell'ultima versione 1.xle versioni vengono rimosse dalle versioni 2.0.xe successive

  • Imposta esplicitamente la tua politica di impegno suForbidEncryptAllowDecrypt. Sebbene questo sia l'unico valore valido nell'ultimo valore 1.xversioni, questa impostazione è richiesta quando si utilizzano le API introdotte in questa versione. Impedisce all'applicazione di rifiutare il testo cifrato crittografato senza l'impegno della chiave durante la migrazione alla versione 2.0.xe successive Per dettagli, consulta Impostazione della politica di impegno.

  • Se utilizziAWS KMSfornitori di chiavi master, è necessario aggiornare i provider di chiavi master esistenti con i provider di chiavi master che supportanomodalità rigorosaemodalità Discovery. Questo aggiornamento è necessario per ilSDK di crittografia AWS per Java,SDK di crittografia AWS per Pythone ilAWSCrittografia CLI. Se si utilizzano i provider di chiavi master in modalità discovery, si consiglia di implementare il filtro di rilevamento che limita le chiavi di wrapping utilizzate a quelle in particolareAccount AWS. Questo aggiornamento è facoltativo, ma è unbest practiceche consigliamo. Per dettagli, consulta Aggiornamento dei provider di chiaviAWS KMS principali.

  • Se utilizziAWS KMSportachiavi Discovery, ti consigliamo di includere un filtro di rilevamento che limiti le chiavi di wrapping utilizzate per la decrittografia a quelle in particolareAccount AWS. Questo aggiornamento è facoltativo, ma è unbest practiceche consigliamo. Per dettagli, consulta Aggiornamento in corsoAWS KMSportachiavi.

Fase Aggiornare l'applicazione alla versione più recente

Dopo aver implementato l'ultima versione 1.xversione con successo per tutti gli host, è possibile eseguire l'aggiornamento alle versioni 2.0.xe dopo. Versione 2.0xinclude modifiche sostanziali per tutte le versioni precedenti diAWS Encryption SDK. Tuttavia, se si apportano le modifiche al codice consigliate nella Fase 1, è possibile evitare errori durante la migrazione alla versione più recente.

Prima di eseguire l'aggiornamento alla versione più recente, verifica che la politica di impegno sia impostata in modo coerente suForbidEncryptAllowDecrypt. Quindi, a seconda della configurazione dei dati, puoi migrare secondo i tuoi ritmi versoRequireEncryptAllowDecrypte poi all'impostazione predefinita,RequireEncryptRequireDecrypt. Consigliamo una serie di passaggi di transizione come il seguente schema.

  1. Inizia con il tuopolitica impegnoimpostata suForbidEncryptAllowDecrypt. IlAWS Encryption SDKpuò decifrare i messaggi con l'impegno della chiave, ma non li crittografa ancora con l'impegno della chiave.

  2. Al termine, aggiornare la propria politica impegno adRequireEncryptAllowDecrypt. IlAWS Encryption SDKinizia a crittografare i dati conimpegno chiave. Può decifrare il testo cifrato con e senza impegno chiave.

    Prima di aggiornare la tua politica di impegno aRequireEncryptAllowDecrypt, verifica che il tuo ultimo file sia 1.xla versione viene distribuita su tutti gli host, inclusi gli host di qualsiasi applicazione che decripta il testo cifrato prodotto. Versioni delAWS Encryption SDKprecedente alla versione 1.7.xnon può decifrare i messaggi crittografati con l'impegno della chiave.

    Questo è anche un buon momento per aggiungere metriche alla tua applicazione per misurare se stai ancora elaborando testo cifrato senza alcun impegno chiave. Questo ti aiuterà a determinare quando è sicuro aggiornare le impostazioni della tua politica di impegno suRequireEncryptRequireDecrypt. Per alcune applicazioni, come quelle che crittografano i messaggi in una coda Amazon SQS, ciò potrebbe significare attendere abbastanza a lungo affinché tutto il testo cifrato crittografato nelle versioni precedenti sia stato nuovamente crittografato o eliminato. Per altre applicazioni, come gli oggetti S3 crittografati, potrebbe essere necessario scaricare, crittografare nuovamente e caricare nuovamente tutti gli oggetti.

  3. Quando sei sicuro di non avere messaggi crittografati senza impegno chiave, puoi aggiornare la tua politica di impegno suRequireEncryptRequireDecrypt. Questo valore garantisce che i tuoi dati siano sempre crittografati e decrittografati con un impegno chiave. Questa è l'impostazione predefinita, quindi non è necessario impostarla in modo esplicito, ma è consigliabile. Un'impostazione esplicita lo faràaiuto per il debug di aiutoe qualsiasi potenziale rollback che potrebbe essere necessario se l'applicazione rileva testo cifrato crittografato senza impegno di chiave.