Wie kann ich den AWS KMS-Entschlüsselungsfehler „InvalidCipherTextException“ beheben?

Lesedauer: 2 Minute
0

Ich habe versucht, Umgebungsvariablen mithilfe der Verschlüsselungshilfen von AWS Lambda zu entschlüsseln, und habe den Fehler „InvalidCipherTextException“ erhalten. Alle Berechtigungen für AWS Identity and Access Management (IAM) und AWS Key Management Service (AWS KMS) sind korrekt.

Kurzbeschreibung

Der AWS KMS-API-Aktionsfehler InvalidCipherTextException weist darauf hin, dass die Entschlüsselungsanfrage fehlgeschlagen ist, weil Lambda die Verschlüsselung von Umgebungsvariablen aktualisiert hat. Lambda übergibt den Funktionsnamen als Verschlüsselungskontext, der den Verschlüsselungsaufruf an AWS KMS durchführt. Für Entschlüsselungsfunktionen, die vor dieser Änderung erstellt wurden, müssen Sie den Code für die Entschlüsselung aktualisieren und den Namen der Lambda-Funktion als Verschlüsselungskontext übergeben.

Lösung

Gehen Sie wie folgt vor, um den Code mit dem Entschlüsselungsaufruf an AWS KMS für ein bestimmtes SDK mit dem Verschlüsselungskontext abzurufen:

  1. Öffnen Sie die Lambda-Konsole und wählen Sie dann Funktionen.
  2. Wählen Sie unter Funktionsname die Lambda-Funktion aus.
  3. Wählen Sie unter Umgebungsvariable die Option Bearbeiten und dann Umgebungsvariable hinzufügen aus.
  4. Geben Sie einen Schlüssel und einen Wert ein und erweitern Sie dann die Verschlüsselungskonfiguration.
  5. Wählen Sie Helfer für die Verschlüsselung während der Übertragung aktivieren und dann Verschlüsseln.
  6. Erweitern Sie Secret Snippet entschlüsseln, kopieren Sie das Snippet und fügen Sie es ein, ähnlich dem Folgenden:
DECRYPTED = boto3.client('kms').decrypt(
    CiphertextBlob=b64decode(ENCRYPTED),
    EncryptionContext={'LambdaFunctionName': os.environ['AWS_LAMBDA_FUNCTION_NAME']}
)['Plaintext'].decode('utf-8')

Verwenden Sie diesen Codeausschnitt, um neue Umgebungsvariablen zu entschlüsseln, die mit Verschlüsselungshilfen verschlüsselt wurden.

Achten Sie darauf, alte Umgebungsvariablen erneut zu verschlüsseln, damit sie mit den neuen Umgebungsvariablen funktionieren.

Weitere Informationen finden Sie unter Verwenden von AWS Lambda-Umgebungsvariablen.


Ähnliche Informationen

Wie kann ich überprüfen, ob beim Aufrufen von AWS KMS-APIs eine authentifizierte Verschlüsselung mit zugehöriger Datenverschlüsselung verwendet wird?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren