Azure Function能否通过Key Vault引用密钥?操作失败求解答
Azure Function配置引用Key Vault密钥的问题解答
结论先行
Azure Function的配置变量引用功能根本不支持直接调用Key Vault里的密钥(Keys)类型,只认机密(Secrets)和证书(Certificates)。你试的那些方法没错,就是功能本身没覆盖这个场景。
为啥不行
- Key Vault里的
Keys是加密用的密钥对象,不是明文存储的机密值,没法直接当作环境变量注入; - 你用的
@Microsoft.KeyVault引用语法,本来就只针对Secrets和Certificates做了适配,密钥没有对应的可被识别的Secret URI格式,所以输入的引用字符串会被直接当成普通文本返回。
怎么解决
- 转成机密存储:把Key Vault里密钥的具体值(比如私钥)导出,当成一个新的机密(Secret)存在Key Vault里,然后用这个机密的URI做引用,格式是
@Microsoft.KeyVault(SecretUri=https://xxxx.vault.azure.net/secrets/你的机密名称/); - 代码里主动获取:在Function代码里用Azure SDK(比如Azure.Security.KeyVault.Keys包)直接调用Key Vault的API获取密钥,前提是给Function的托管标识配好Key Vault的
Keys/Get权限。
内容的提问来源于stack exchange,提问作者lafe
相关产品推荐
相关产品推荐

