PGP キーを Azure Key Vault に保存する

PGP キーを Azure Key Vault に保存する

Azure Data Factory パイプラインを使用して、暗号化されたファイルを SFTP サーバー (Ubuntu) から Azure ストレージに転送したいと考えています。顧客は PGP を使用して保存中のファイルを暗号化し、それらを SFTP サーバーにプッシュしています。そのため、ファイルは SFTP に到着すると PGP で暗号化されます。そこから読み取るには、ファイルを復号化する必要があります。また、Azure Key Vault に PGP 秘密キーを保存して、Azure Data Factory から使用したいと考えています。ただし、問題は、Pfx および PEM 形式しか受け入れられないため、PGP キーを Azure Key Vault にロードできないことです。そこで質問があります。PGP キーを別の形式に変換できますか? 変換できる場合、別の形式に変更した後でファイルの復号化に使用できますか?

答え1

簡単に答えると、必要なものを何でも KeyVault にシークレットとして保存し、それを抽出することができます。キーをテキスト ファイルとしてエクスポートし、KeyVault にシークレットとして保存すれば、準備完了です。

私はコードを修正することでこれを動作させることができましたhttps://github.com/lfalck/AzureFunctionsPGPDecrypt

基本的に、gpg4win を使用してキーを生成し、次のように呼び出します。

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

Azure Key Vaultで、2つの新しいシークレット(キーではありません)を作成します。1つは上記で作成したファイルの内容でkey.asc、もう1つはgpgで秘密キーを保護するために使用するパスフレーズです。次に、リンクのコードがKey Vaultからそれらのシークレットを読み取り、PGPCore復号化用のライブラリ。

また、何らかの理由で、そのリポジトリのコードでは、秘密を KeyVault に入れる前に Base64 に変換する必要があることにも注意してください。これは、秘密を使用する前に Base64 でデコードするためです。これは厳密には必要ないように思えますが、上記のコードに手を加える場合は、そのエンコードを行う必要があります。

これは Azure 関数として提示されていますが、そこで説明されている概念は他のコンテキストでも使用できます。

関連情報