有关如何通过运行azure函数获得自动pgp加密的建议

问题描述 投票:0回答:1

我正在尝试使用此存储库(https://github.com/lfalck/AzureFunctionsPGPEncrypt/)作为 Blob 触发器 Azure 函数。当检测到新的 Blob 时,它应该获取该 Blob,对其进行加密并将其存储在相同的 Blob 容器但不同的子文件夹中。当有一些 .csv 文件到达我的 blob 存储时,这应该在夜间完全在 Azure 中运行。

我将公钥存储在 Key Vault 中。首先,我获取 .asc 文件并使用 powershell 将其转换为 Base64 .txt 文件。然后我复制了 .txt 文件的内容并将其存储在一个秘密中,将其命名为 pgp-public-key。

这就是我现在的处境。有人有正在运行的解决方案并可以给我建议吗?我不明白下一步该怎么做,如何将密钥存储在环境变量中?在我的本地系统上?但我认为它会从密钥库中获取秘密?这是我的第一个 C# 项目,我本周开始,但不知道该怎么做。也许有人可以提供帮助/提供建议?

最诚挚的问候, 弗雷德里克

azure azure-functions azure-blob-storage azure-keyvault pgp
1个回答
0
投票

虽然将公钥存储在 Key Vault 中很好,但由于它是公钥,因此没有必要。 “公开”本身就意味着它是不敏感的。如果您确实使用密钥保管库,则需要配置您的函数才能访问密钥保管库,并且如果您的密钥保管库具有受限的 IP,这将导致额外的设置、成本和工作量。

如果您将 Base64 编码的字符串存储到函数应用程序上的应用程序配置设置之一,键名为 pgp-public-key,您将能够使用以下行访问它

string publicKeyBase64 = Environment.GetEnvironmentVariable("pgp-public-key");

这在云上运行时可以正常工作。对于本地测试,您将需要 local.settings.json 以及在本地计算机上指定的 base64 编码值。内容将如下所示。

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "pgp-public-key": "<your base 64 encoded public key>"
  }
}

当您在 VScode 上创建函数时,会自动为您创建此文件。您只需使用环境变量修改它即可。

有了这个,您可以在您的计算机上本地或在云上进行测试,而无需修改代码。 您可以找到更多有关当地发展的信息这里

© www.soinside.com 2019 - 2024. All rights reserved.