问题描述
App Service中,如何通过 Application Setting 来配置 Key Vault中的值呢?
问题解答
首先,App Service服务可以直接通过引用的方式,无需代码的情况下,为Application Setting中的Key配置Key Vault中保存的值。参考官方文档:https://docs.azure.cn/zh-cn/app-service/app-service-key-vault-references?tabs=azure-cli#source-application-settings-from-key-vault
以下是具体的操作步骤:
1) 创建App Service资源 和 创建Key Vault资源
2) 在App Service 页面中启用系统分配的托管标识。当然,这一步也可以使用用户创建的托管标识: https://learn.microsoft.com/zh-cn/azure/active-directory/managed-identities-azure-resources/overview#managed-identity-types
3)在Key Vault的访问策略页面中,为第二步创建的标识赋予访问Key, Secret,Certificate的权限。
配置好权限后,进入机密页面,获取访问机密的URL(机密标识符)。如:https://<yourkeyvaultname>.vault.azure.cn/secrets/secret1/
4)回到App Service 配置页面,在应用程序配置中添加与Key Vault 中机密对应的信息, 完整的引用语句为:
@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.cn/secrets/mysecret/)
如下图所示
5)配置成功后可以看到绿色对号图标,然后在代码中的环境变量中就可以获取到这个key vault中机密的value了。 否则,会出现红色叉叉图标
参考资料
使用应用服务和 Azure Functions 的 Key Vault 引用 : https://docs.azure.cn/zh-cn/app-service/app-service-key-vault-references?tabs=azure-cli#source-application-settings-from-key-vault