如何在功能应用程序中从Azure Key Vault中引用密钥?

时间:2020-05-30 15:01:04

标签: azure azure-functions putty azure-keyvault pem

过去,我为Azure函数使用了很多秘密,现在我正尝试使用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,并且Vault为该功能配置了访问策略,该功能针对机密配置为“获取”和“列表”,对于密钥配置为所有内容(最初只是“获取”和“列表”,但是为了以防万一,添加了其余部分,因为我认为可能是一个“加密/解密”问题。

然后知道为什么我会得到Status:InvalidSyntax和Error Details: 无法找到Key Vault参考,因为找到了无效的Key Vault参考语法?谢谢!

2 个答案:

答案 0 :(得分:1)

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

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


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

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

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

enter image description here

标识值必须相同。

答案 1 :(得分:0)

不幸的是,App Services / Azure功能仅支持引用机密,而不支持密钥或证书。实际上,Key Vault根本不允许您访问密钥的私密部分,因此,如果需要访问它,则需要将其存储为秘密;如果您只想使用它,则可以使用Key Vault SDK。使用保存的密钥进行加密/解密。