Come migrare e distribuire il AWS 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 distribuire il AWS Encryption SDK

Durante la migrazione da una AWS Encryption SDK versione precedente alla 1.7. x alla versione 2.0. x o versione successiva, è necessario passare in modo sicuro alla crittografia con impegno chiave. In caso contrario, l'applicazione incontrerà testi cifrati che non potrà decifrare. Se si utilizzano provider di chiavi AWS KMS master, è necessario eseguire l'aggiornamento a nuovi costruttori che creino provider di chiavi master in modalità rigorosa o in modalità di scoperta.

Nota

Questo argomento è stato progettato per gli utenti che effettuano la migrazione dalle versioni precedenti AWS Encryption SDK alla versione 2.0. x o versione successiva. Se non conosci la versione più recente AWS 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 1: aggiorna l'applicazione alla versione più recente 1. versione x

Aggiornamento alla versione più recente 1. versione x per il tuo linguaggio di programmazione. Esegui un test accurato, implementa le modifiche e conferma che l'aggiornamento si sia propagato a tutti gli host di destinazione prima di iniziare la fase 2.

Importante

Verifica che la versione più recente sia 1. la versione x è la versione 1.7. x o versione successiva di AWS Encryption SDK.

L'ultimo 1. le versioni x di AWS Encryption SDK sono retrocompatibili con le versioni precedenti di AWS Encryption SDK e successive compatibili con le versioni 2.0. x e versioni successive. Includono le nuove funzionalità presenti nella versione 2.0. x, ma include impostazioni predefinite sicure progettate per questa migrazione. Consentono di aggiornare i fornitori di chiavi AWS KMS principali, se necessario, e di utilizzare in modo completo suite di algoritmi in grado di decrittografare il testo cifrato con l'impegno di una chiave.

  • Sostituisci gli elementi obsoleti, inclusi i costruttori per i fornitori di chiavi master legacy. AWS KMS In Python, assicurati di attivare gli avvisi di deprecazione. Elementi di codice obsoleti nell'ultima versione 1. le versioni x vengono rimosse dalle versioni 2.0. x e versioni successive.

  • Imposta esplicitamente la tua politica di impegno suForbidEncryptAllowDecrypt. Sebbene questo sia l'unico valore valido nell'ultimo 1. x versioni, questa impostazione è richiesta quando si utilizza quella APIs introdotta in questa versione. Impedisce all'applicazione di rifiutare il testo cifrato crittografato senza l'impegno di una chiave durante la migrazione alla versione 2.0. x e versioni successive. Per informazioni dettagliate, consultare Impostazione della politica di impegno.

  • Se si utilizzano provider di chiavi AWS KMS master, è necessario aggiornare i provider di chiavi master legacy con provider di chiavi master che supportano la modalità rigorosa e la modalità di rilevamento. Questo aggiornamento è necessario per SDK di crittografia AWS per Java SDK di crittografia AWS per Python, e la CLI di AWS crittografia. Se si utilizzano provider di chiavi principali in modalità di rilevamento, si consiglia di implementare il filtro di rilevamento che limita le chiavi di wrapping utilizzate in particolare a tali provider. Account AWS Questo aggiornamento è facoltativo, ma è una best practice che consigliamo. Per informazioni dettagliate, consultare Aggiornamento dei provider di chiavi AWS KMS principali.

  • Se utilizzi portachiavi AWS KMS Discovery, ti consigliamo di includere un filtro di rilevamento che limiti le chiavi di avvolgimento utilizzate nella decrittografia a quelle in particolare. Account AWS Questo aggiornamento è facoltativo, ma è una procedura consigliata. Per informazioni dettagliate, consultare Aggiornamento dei AWS KMS portachiavi.

Fase 2: aggiorna l'applicazione alla versione più recente

Dopo aver distribuito la versione più recente 1. versione x con successo su tutti gli host, è possibile eseguire l'aggiornamento alle versioni 2.0. x e versioni successive. Versione 2.0. x include modifiche sostanziali per tutte le versioni precedenti di AWS 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, verificate che la vostra politica di impegno sia impostata in modo coerente. ForbidEncryptAllowDecrypt Quindi, a seconda della configurazione dei dati, puoi migrare secondo i tuoi ritmi RequireEncryptAllowDecrypt e poi all'impostazione predefinita,RequireEncryptRequireDecrypt. Consigliamo una serie di passaggi di transizione come il seguente schema.

  1. Inizia con la tua politica di impegno impostata suForbidEncryptAllowDecrypt. AWS Encryption SDK Può decrittografare i messaggi con un impegno chiave, ma non lo fa ancora con un impegno chiave.

  2. Quando sei pronto, aggiorna la tua politica di impegno a. RequireEncryptAllowDecrypt AWS Encryption SDK Inizia a crittografare i tuoi dati con impegno fondamentale. Può decrittografare il testo cifrato con e senza impegno chiave.

    Prima di aggiornare la tua politica di impegno aRequireEncryptAllowDecrypt, verifica che la tua ultima versione 1. la versione x viene distribuita su tutti gli host, inclusi gli host di tutte le applicazioni che decrittografano il testo cifrato prodotto. Versioni della versione precedente alla 1.7. AWS Encryption SDK x non è in grado di decrittografare i messaggi crittografati con key commitment.

    Questo è anche un buon momento per aggiungere metriche alla vostra applicazione per misurare se state ancora elaborando testo cifrato senza alcun impegno chiave. Questo ti aiuterà a determinare quando è sicuro aggiornare l'impostazione della tua politica di impegno. RequireEncryptRequireDecrypt Per alcune applicazioni, come quelle che crittografano i messaggi in una coda Amazon SQS, ciò potrebbe significare attendere abbastanza a lungo prima che tutto il testo cifrato crittografato nelle versioni precedenti venga ricrittografato 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 l'impegno della chiave, puoi aggiornare la tua politica di impegno a. RequireEncryptRequireDecrypt Questo valore garantisce che i tuoi dati siano sempre crittografati e decrittografati con impegno chiave. Questa è l'impostazione predefinita, quindi non è necessario impostarla in modo esplicito, ma è consigliabile. Un'impostazione esplicita faciliterà il debug e qualsiasi potenziale ripristino che potrebbe essere necessario se l'applicazione incontra testo cifrato crittografato senza impegno di chiave.