Wie verwende ich OpenSSL, um eine Datei mit asymmetrischen AWS-KMS-Schlüsseln zu verschlüsseln?
Ich möchte OpenSSL verwenden, um eine Datei mit AWS Key Management Service (AWS KMS)-Schlüsseln zu verschlüsseln.
Lösung
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
RSA-Schlüsselpaar erstellen, den öffentlichen Schlüssel herunterladen und einen AES-256-Bit-Schlüssel erstellen
Gehe wie folgt vor:
- Erstelle das RSA-Schlüsselpaar.
- Um den öffentlichen Schlüssel herunterzuladen, führe den AWS-CLI-Befehl get-public-key aus:
Hinweis: Ersetze your-key-id durch die ID deines asymmetrischen Schlüssels. Die --query-Funktion ruft den öffentlichen Schlüssel ab und dekodiert dann die Base64-Datei in einen DER-Schlüssel.aws kms get-public-key --key-id your-key-id --output text --query 'PublicKey' > RSAPublic.b64 && base64 -d RSAPublic.b64 > RSAPublic.bin - Führe den folgenden OpenSSL-Befehl rand aus, um einen Advanced Encryption Standard (AES)-256-Bit-Schlüssel zu erstellen:
openssl rand -base64 32 > key.bin
Daten verschlüsseln
Gehe wie folgt vor:
- Führe den folgenden OpenSSL-Befehl enc mit der key.bin-Datei aus:
Hinweis: Ersetze FILE_TO_ENCRYPT durch den Namen deiner Datei. Der -pbkdf2-Befehl ist nur bei OpenSSL 1.1.1 verfügbar. Amazon Machine Image (AMI) von Amazon Linux 2 verwendet OpenSSL 1.0.2 und unterstützt den -pbkdf2-Befehl nicht.openssl enc -aes-256-cbc -salt -pbkdf2 -in FILE_TO_ENCRYPT -out FILE_TO_ENCRYPT.enc -pass file:./key.bin - Verschlüssele die key.bin-Datei mit dem öffentlichen AWS-KMS-Schlüssel. Dies schützt deine Schlüsseldaten. Nur Benutzer, die Zugriff auf deinen privaten AWS-KMS-Schlüssel haben, können auf die key.bin-Datei zugreifen. Führe dazu den OpenSSL-Befehl pkeyutl aus:
Hinweis: Der pkeyutl-Befehl verwendet einen Verschlüsselungsalgorithmus, der die Entschlüsselung durch die AWS-KMS-API RSAES_OAEP_SHA_256 unterstützt. Der öffentliche AWS-KMS-Schlüssel RSAPublic.bin verschlüsselt den AES-256-Bit-Schlüssel und erstellt eine neue Datei mit dem Namen enc.key.bin.openssl pkeyutl -in key.bin -out enc.key.bin -inkey RSAPublic.bin -keyform DER -pubin -encrypt -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 - Führe den AWS-CLI-Befehl rm aus, um die key.bin-Datei so zu verschlüsseln, dass Benutzer die enc.key.bin-Datei entschlüsseln müssen, um auf key.bin zuzugreifen:
Hinweis: Ersetze FILE_TO_ENCRYPT durch den Namen deiner Datei.aws s3 rm key.bin && rm FILE_TO_ENCRYPT - (Optional) Lösche die Originaldatei, die du verschlüsseln wolltest, damit Benutzer nicht auf die Datei zugreifen können.
Du hast jetzt die folgenden Ressourcen:
- Die verschlüsselten Daten in der FILE_TO_ENCRYPT.enc-Datei
- Den verschlüsselten AES-256-Bit-Schlüssel enc.key.bin
- Den öffentlichen AWS-KMS-Schlüssel RSAPublic.bin
Hinweis: Benutzer mit verschlüsselten Daten müssen dir die zu entschlüsselnden Dateien senden.
Dateien entschlüsseln
Um die verschlüsselten Daten abzurufen, entschlüssele enc.key.bin und verwende dann diesen Schlüssel, um die Datei FILE_TO_ENCRYPT.enc zu entschlüsseln.
Hinweis: Du musst Zugriff auf die AWS-KMS-API haben, da der private AWS-KMS-Schlüssel nicht im Klartext angezeigt werden kann.
Gehe wie folgt vor:
- Um die Datei enc.key.bin zu entschlüsseln und an die AWS-KMS-API zu senden, führe den AWS-CLI-Befehl decrypt aus:
Hinweis: Ersetze your-key-id durch die ID deines Schlüssels. Die Funktion --query wählt den Klartext aus und dekodiert dann den Base64-Wert in die Datei decryptedKey.bin.aws kms decrypt --key-id your-key-id --ciphertext-blob fileb://enc.key.bin --encryption-algorithm RSAES_OAEP_SHA_256 --output text --query 'Plaintext' | base64 --decode > decryptedKey.bin - Um die entschlüsselte Datei auszugeben, verwende die Datei decryptedKey.bin, wenn du den folgenden OpenSSL-Befehl enc ausführst:
Hinweis: Ersetze DECRYPTED_FILE durch den Namen deiner Datei.openssl enc -d -aes-256-cbc -pbkdf2 -in FILE_TO_ENCRYPT.enc -out DECRYPTED_FILE -pass file:./decryptedKey.bin - Um zu überprüfen, ob die Verschlüsselung und Entschlüsselung erfolgreich abgeschlossen wurden, vergleiche DECRYPTED_FILE und FILE_TO_ENCRYPT.
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr