Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Wie behebe ich den Fehler „InvalidCiphertext“, wenn ich versuche, meinen Schlüssel mit OpenSSL in AWS KMS zu importieren?
Ich habe OpenSSL verwendet, um mein verschlüsseltes Schlüsselmaterial in den AWS Key Management Service (AWS KMS) zu importieren. Die Anfrage ist jedoch fehlgeschlagen und ich habe den Fehler „InvalidCiphertext“ erhalten.
Kurzbeschreibung
Standardmäßig verwendet OpenSSL die SHA-1-Hashfunktion (Algorithmus RSAES\ _OAEP\ _SHA\ _256).
Um Importfehler zu vermeiden, wenn Sie den Algorithmus RSAES\ _OAEP\ _SHA\ _256 verwenden, verwenden Sie OpenSSL, um Ihr Schlüsselmaterial zu verschlüsseln. Führen Sie den Befehl openssl pkeyutl aus und geben Sie die Parameter**\ -pkeyopt rsa\ _padding\ _mode:oaep** und -pkeyopt rsa\ _oaep\ _md:sha256 an.
Lösung
Verwenden Sie „extern“ für den Ursprung des Schlüsselmaterials, um einen AWS-KMS-Schlüssel zu erstellen
Wenn Sie beim Ausführen von AWS-CLI-Befehlen der AWS-Befehlszeilenschnittstelle Fehler erhalten, finden Sie weitere Informationen unter Beheben von AWS-CLI-Fehlern. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.
Führen Sie die AWS-CLI-Befehle create-key und create-alias aus, um ein AWS-KMS für externes Schlüsselmaterial zu erstellen:
export REGION=example-region-1export KEY_ALIAS=kms_key_with_externalmaterial export KEY_ID=`aws kms create-key --region $REGION --origin EXTERNAL --description $KEY_ALIAS --query KeyMetadata.KeyId --output text` aws kms --region $REGION create-alias --alias-name alias/$KEY_ALIAS --target-key-id $KEY_ID
**Hinweis:**Ersetzen Sie example-region-1 und kms\ _key\ _with\ _externalmaterial durch die Werte Ihres Schlüssels.
Bis Sie das Schlüsselmaterial importieren, bleibt der Status des AWS KMS-Schlüssels im Status Ausstehender Import. Führen Sie den folgenden Befehl aus, um den Status des Schlüssels einzusehen.
aws kms --region $REGION describe-key --key-id $KEY_ID
Laden Sie den (öffentlichen) Wrapping-Schlüssel und das Import-Token herunter
Führen Sie den AWS-CLI-Befehl get-parameters-for-import aus, um die Werte publicKey und importToken abzurufen:
export KEY_PARAMETERS=`aws kms --region $REGION get-parameters-for-import --key-id $KEY_ID --wrapping-algorithm RSAES_OAEP_SHA_256 --wrapping-key-spec RSA_2048`echo $KEY_PARAMETERS | awk '{print $7}' | tr -d '",' | base64 --decode > PublicKey.bin echo $KEY_PARAMETERS | awk '{print $5}' | tr -d '",' | base64 --decode > ImportToken.bin
Verwenden Sie base64, um beide Werte zu dekodieren, und speichern Sie diese Werte dann in separaten Dateien.
Der öffentliche Wrapping-Schlüssel wird in **PublicKey.bin ** gespeichert und das Import-Token wird in ImportToken.bin gespeichert.
Generieren Sie einen symmetrischen 256-Bit-Schlüssel
Das Schlüsselmaterial muss ein symmetrischer 256-Bit-Schlüssel (32 Byte) sein. Führen Sie einen der folgenden Befehle aus, um den Schlüssel zu generieren:
OpenSSL
openssl rand -out PlaintextKeyMaterial.bin 32
Oder:
dd
dd if=/dev/urandom of=PlaintextKeyMaterial.bin bs=32 count=1
Stellen Sie sicher, dass Ihre OpenSSL-Version openssl pkeyutl unterstützt
**Wichtig:**Der Befehl pkeyutl ist nur in OpenSSL Version 1.0.2 und späteren Versionen verfügbar.
Wenn Sie einen auf Red Hat Enterprise Linux (RHEL) basierenden Linux-Computer verwenden, z. B. eine Instance, die mit einem Amazon Linux Amazon Machine Image (AMI) gestartet wurde, führen Sie die folgenden Schritte aus:
-
Führen Sie den folgenden Befehl aus, um Ihre OpenSSL-Version zu überprüfen.
openssl version
-
Führen Sie den folgenden Befehl aus, um OpenSSL zu aktualisieren.
sudo yum -y update openssl
Wenn Sie macOS verwenden, führen Sie die folgenden Schritte aus:
-
Führen Sie die folgenden Homebrew-Befehle aus.
brew updatebrew upgrade openssl brew info openssl
**Hinweis:**Der Befehl info openssl zeigt Ihnen, dass OpenSSL in /usr/local/opt/openssl/bin/ installiert ist.
-
Führen Sie den folgenden Befehl aus, um die OpenSSL-Version zu bestätigen:
/usr/local/opt/openssl/bin/openssl version
-
Um immer die neueste OpenSSL-Version zu verwenden, fügen Sie am Ende von ~/.bash\ _profile die folgende Zeile hinzu:
export PATH="/usr/local/opt/openssl/bin:$PATH"
-
Führen Sie folgenden Befehl aus:
source ~/.bash_profile
-
Führen Sie den folgenden Befehl aus, um die Änderung in Ihrer macOS-Umgebung zu überprüfen.
echo $PATHopenssl version
Verschlüsseln Sie Ihr Schlüsselmaterial mit dem Wrapping Public Key
Um die neueste Version von OpenSSL und den Wrapping Public Key zum Verschlüsseln Ihres Schlüsselmaterials zu verwenden, führen Sie den Befehl openssl pkeyutl aus:
openssl pkeyutl -in PlaintextKeyMaterial.bin -out EncryptedKeyMaterial.bin -inkey PublicKey.bin -keyform DER \ -pubin -encrypt -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256
Der Befehl generiert EncryptedKeyMaterial.bin. Sie importieren diesen Wert als verschlüsseltes Schlüsselmaterial in den KMS.
**Hinweis:**Der Wrapping-Schlüssel ist in PublicKey.bin gespeichert.
Importieren Sie Ihr verschlüsseltes Schlüsselmaterial
Führen Sie die folgenden Schritte aus:
-
Führen Sie den AWS-CLI-Befehl import-key-material aus, um das verschlüsselte Schlüsselmaterial in den AWS-KMS-Schlüssel zu importieren:
aws kms --region $REGION import-key-material --key-id $KEY_ID --encrypted-key-material fileb://EncryptedKeyMaterial.bin --import-token fileb://ImportToken.bin --expiration-model KEY_MATERIAL_DOES_NOT_EXPIRE
**Hinweis:**Nach Abschluss des Imports ändert sich der Status des Schlüssels in Aktiviert.
-
Führen Sie den AWS-CLI-Befehl describe-key aus, um den Status des Schlüssels zu überprüfen:
aws kms --region $REGION describe-key --key-id $KEY_ID
Ähnliche Videos


Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 4 Monaten
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor einem Jahr