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