Speichern Sie PGP-Schlüssel im Azure-Schlüsseltresor

Speichern Sie PGP-Schlüssel im Azure-Schlüsseltresor

Ich möchte verschlüsselte Dateien mithilfe der Azure Data Factory Pipeline vom SFTP-Server (Ubuntu) in den Azure-Speicher übertragen. Der Kunde verwendet PGP, um Dateien im Ruhezustand zu verschlüsseln und sie auf den SFTP-Server zu übertragen. Daher wird die Datei beim Eintreffen auf dem SFTP PGP-verschlüsselt. Ich muss die Datei entschlüsseln, um sie von dort aus lesen zu können. Außerdem möchte ich den privaten PGP-Schlüssel im Azure Key Vault speichern, um ihn von der Azure Data Factory aus verwenden zu können. Das Problem ist jedoch, dass ich keine PGP-Schlüssel in den Azure Key Vault laden kann, da dieser nur die Formate PFX und PEM akzeptiert. Meine Frage lautet also: Kann ich PGP-Schlüssel in ein anderes Format konvertieren? Wenn ja, kann ich sie zur Dateientschlüsselung verwenden, nachdem ich sie in ein anderes Format konvertiert habe?

Antwort1

Die kurze Antwort lautet, dass Sie alles, was Sie möchten, als Geheimnis in KeyVault ablegen und dann extrahieren können. Exportieren Sie Ihre Schlüssel als Textdatei, speichern Sie sie als Geheimnis in KeyVault und schon kann es losgehen.

Ich konnte dies zum Laufen bringen, indem ich den Code beihttps://github.com/lfalck/AzureFunctionsPGPDecrypt

Grundsätzlich können Sie gpg4win zum Generieren von Schlüsseln verwenden und dann Folgendes aufrufen:

gpg --export-secret-keys --armor > key.asc

Erstellen Sie in Azure Key Vault zwei neue Geheimnisse (keine Schlüssel). Eines sollte der Inhalt der key.ascoben erstellten Datei sein, und das andere sollte die Passphrase sein, die zum Schutz des privaten Schlüssels in GPG verwendet wird. Anschließend liest der Code im Link diese Geheimnisse aus Key Vault und übergibt sie anPGPCoreBibliothek zur Entschlüsselung.

Ich möchte auch darauf hinweisen, dass der Code in diesem Repository aus irgendeinem Grund erfordert, dass die Geheimnisse in Base64 konvertiert werden, bevor sie in KeyVault eingefügt werden, da sie vor der Verwendung Base64-dekodiert werden. Das scheint mir nicht unbedingt notwendig, aber wenn Sie mit dem obigen Code herumspielen, werden Sie diese Kodierung durchführen wollen.

Dies wird als Azure-Funktion präsentiert, aber die dort gezeigten Konzepte könnten auch in anderen Kontexten verwendet werden.

verwandte Informationen