我想使用 azure 数据工厂管道将加密文件从 SFTP 服务器 (Ubuntu) 传输到 azure 存储。客户正在使用 PGP 加密静态文件并将它们推送到 sftp 服务器。因此文件在到达 sftp 时将被 PGP 加密。我需要解密文件才能从那里读取。此外,我想将 PGP 私钥存储在 Azure Key Vault 中,以便从 Azure 数据工厂使用它。但问题是我无法将 PGP 密钥加载到 azure key vault,因为它只接受 pfx 和 PEM 格式。所以我的问题是 - 我可以将 PGP 密钥转换为不同的格式吗?如果是这样,我可以在更改不同格式后使用它进行文件解密吗?
简短的回答是,您可以将任何您想要的内容作为秘密放入 KeyVault,然后将其提取。将您的密钥导出为文本文件,将其作为机密保存在 KeyVault 中,然后您就可以开始了。
我能够通过修改https://github.com/lfalck/AzureFunctionsPGPDecrypt上的代码来实现它
基本上你可以使用 gpg4win 生成密钥,然后调用:
gpg --export-secret-keys --armor > key.asc
在 Azure Key Vault 中,创建两个新的 Secret(不是密钥)。一个应该是
key.asc
上面创建的文件的内容,另一个应该是gpg中用来保护私钥的密码。然后链接中的代码将从 Key Vault 中读取这些机密并将它们传递到PGPCore库中进行解密。我还要指出,出于某种原因,该存储库中的代码要求在将机密信息放入 KeyVault 之前将其转换为 Base64,因为它会在使用它们之前对其进行 Base64 解码。这对我来说似乎不是绝对必要的,但如果你乱用上面的代码,你会想要进行编码。
这是作为 Azure 函数呈现的,但其中演示的概念可以在其他上下文中使用。