首页 > 解决方案 > 如何在函数应用中引用 Azure Key Vault 中的密钥?

问题描述

过去我为 Azure Functions 使用了很多机密,现在我尝试使用 RSA 加密的 4096 位密钥。这是一个私有 PuTTy .ppk 密钥,我已将其导出为 .pem 类型以符合 Azure 的要求。我有一个 Python 3.7 应用程序,在其中部署了所需的功能,并尝试在应用程序设置中使用以下语句引用所需的键:

@Microsoft.KeyVault(SecretUri=https://{thevault-address}.vault.azure.net/keys/{thekey-name}/)

@Microsoft.KeyVault(SecretUri=https://{thevault-address}.vault.azure.net/keys/{thekey-name}/latestVersionHash)

但是当我尝试保存它时,它说无法解析引用。

该应用程序有 Identity On 并且 Vault 具有为秘密配置为 Get 和 List 的功能的访问策略,以及为所有内容配置的密钥(最初只是 Get 和 List 但添加了其余部分以防万一,因为我认为它可能是一个“加密” /description 问题)。

并知道为什么我会收到 Status:InvalidSyntax and Error Details: Key Vault reference was not able to be resolved because invalid Key Vault reference syntax found ?谢谢 !

标签: azureazure-functionsputtyazure-keyvaultpem

解决方案


您上面描述的过程对于引用 Secret 是完全正确的。这就是为什么在@Microsoft.KeyVault(SecretUri=您设置SecretUri的字符串中等于...

对于 Keys thow 来说,这是不可能的。天蓝色 Web 应用程序无法引用密钥。


若要清除任何混淆以便从 Web 应用程序引用 Azure KeyVault 的机密,您需要三点

  1. 你的应用程序身份开启
  2. 在 Keyvault 中设置策略,以便您的应用能够访问该值
  3. 在您的 Web 应用程序中,在配置选项卡中,您将变量的值设置为@Microsoft.KeyVault(SecretUri={Secret Identifier}).

如果您转到您的 Keyvault 资源并单击您的秘密,则可以找到秘密标识符

在此处输入图像描述

标识值需要相同。


推荐阅读