Ho provato a utilizzare gli helper di crittografia AWS Lambda per decrittografare le variabili di ambiente per AWS Key Management Service (AWS KMS) e ho ricevuto l'errore "InvalidCiphertextException".
Breve descrizione
L'errore di azione dell'API AWS KMS InvalidCiphertextException indica che la richiesta di decrittografia non è riuscita perché Lambda ha aggiornato la modalità di crittografia delle variabili di ambiente. Lambda fa passare il nome della funzione come contesto di crittografia effettuando la chiamata di crittografia ad AWS KMS. Per le funzioni di decrittografia create prima di questa modifica, è necessario aggiornare il codice per la decrittografia e far passare il nome della funzione Lambda come contesto di crittografia.
Risoluzione
Per ottenere il codice con la chiamata di decrittografia ad AWS KMS per un SDK specifico con il contesto di crittografia, segui questi passaggi:
- Apri la console Lambda, quindi scegli Funzioni.
- In Nome funzione, scegli la funzione Lambda, quindi scegli la scheda Configurazione.
- In Variabile di ambiente, scegli Modifica, quindi seleziona Aggiungi variabile di ambiente.
- Inserisci una chiave e un valore, quindi espandi la configurazione di crittografia.
- Scegli Abilita gli helper per la crittografia in transito, quindi scegli Crittografa.
- Espandi Decrittografa il frammento segreti, quindi inserisci uno frammento di codice simile a quello seguente:
DECRYPTED = boto3.client('kms').decrypt( CiphertextBlob=b64decode(ENCRYPTED),
EncryptionContext={'LambdaFunctionName': os.environ['AWS_LAMBDA_FUNCTION_NAME']}
)['Plaintext'].decode('utf-8')
Usa il frammento di codice precedente per decrittografare le nuove variabili di ambiente crittografate con gli helper di crittografia.
Assicurati di crittografare nuovamente le vecchie variabili di ambiente in modo che funzionino con le nuove variabili di ambiente.
Per ulteriori informazioni, consulta Utilizzo delle variabili di ambiente AWS Lambda.
Informazioni correlate
Come posso verificare che venga utilizzata la crittografia autenticata con crittografia dei dati associata quando si richiamano le API AWS KMS?