Comment résoudre l'erreur de déchiffrement AWS KMS « InvalidCiphertException » ?

Date de la dernière mise à jour : 15/02/2021

J' ai essayé de déchiffrer les variables d'environnement en utilisant les assistants de chiffrement AWS Lambda et j'ai reçu l'erreur « InvalidCiphertException ». Toutes les autorisations AWS Identity and Access Management (IAM) et AWS Key Management Service (AWS KMS) sont correctes.

Brève description

L'erreur d'action AWS KMS API InvalidCiphertException indique que la demande de déchiffrement a échoué car Lambda a mis à jour la façon de chiffrer les variables d'environnement. Lambda transmet le nom de la fonction en tant que contexte de chiffrement effectuant l'appel de chiffrement à AWS KMS. Pour les fonctions de déchiffrement créées avant cette modification, vous devez mettre à jour le code de déchiffrement et transmettre le nom de la fonction Lambda en tant que contexte de chiffrement.

Résolution

Pour obtenir le code avec l'appel de déchiffrement à AWS KMS pour un kit SDK spécifique avec le contexte de chiffrement, procédez comme suit :

  1. Ouvrez la console Lambda, puis choisissez Fonctions.
  2. Dans Nom de la fonction, choisissez la fonction Lambda.
  3. Dans Variable d'environnement, choisissez Modifier, puis Ajouter une variable d'environnement.
  4. Entrez une clé et une valeur, puis développez Configuration de chiffrement.
  5. Choisissez Activer les assistants pour le chiffrement en transit, puis choisissez Chiffrer.
  6. Développez Déchiffrer un extrait de secrets, copiez et collez l'extrait similaire à ce qui suit :
DECRYPTED = boto3.client('kms').decrypt(
    CiphertextBlob=b64decode(ENCRYPTED),
    EncryptionContext={'LambdaFunctionName': os.environ['AWS_LAMBDA_FUNCTION_NAME']}
)['Plaintext'].decode('utf-8')

Utilisez cet extrait de code pour déchiffrer de nouvelles variables d'environnement chiffrées avec des assistants de chiffrement.

Assurez-vous de chiffrer à nouveau les anciennes variables d'environnement afin qu'elles fonctionnent avec les nouvelles variables d'environnement.

Pour plus d'informations, consultez Utilisation des variables d'environnement AWS Lambda.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?