在 Azure WebApp 中使用环境变量引用时如何解析机密
How is secrets resolved when using environment variable reference in a Azure WebApp
我有一个引用 Azure KeyVault 中的机密的环境变量:
{
"name": "SECRET",
"value": "@Microsoft.KeyVault(SecretUri=https://keyvault_name.vault.azure.net/secrets/secret_name/)",
"slotSetting": false
}
这是在我的网站 Startup.cs 上加载的 api 解决方案:
public void ConfigureServices(IServiceCollection services)
{
services.AddOptions<Secret>().Configure(o => o.ClearText = Configuration["SECRET"]);
services.AddControllers();
}
密文是如何破解的?每次期权调用都解决了吗?例如,每次它被注入到我的构造函数中,或者当环境变量被取消并加载到 Configuration
对象时它是否被解析?
我问的原因是每次调用保险库都会花费一点点,但所有这些都会加起来。
更新
我已将此作为问题添加到 github:https://github.com/MicrosoftDocs/azure-docs/issues/44064#event-2855607916
根据我的测试,Azure Web 应用程序将在两种情况下从 Azure Key Vault 加载数据:
- 您向 Azure 提交了应用程序设置修改请求。
- 您重新启动 Azure Web 应用程序。
你的机密将缓存在 Azure 应用服务中。你可以试试这个场景:当你在Azure KeyVault中添加一个引用secret的环境变量后,在Azure Key Vault中创建一个不同值的新版本,你会发现Azure web app中的值不会改变:仍然是旧版本.
在您重新启动网络应用程序或再次修改门户上的应用程序设置之前,它不会更改。
我还检查了我的 Azure 密钥保管库的指标,我调用了我的 Azure Web 应用程序来检索我在应用程序设置中配置的秘密大约 10 次,但是我的 Azure 密钥保管库在那个时间点的访问指标是 0 . 但是当我重新启动我的 web 应用程序时,Azure key vault 的访问指标会增加。
希望对您有所帮助。
我有一个引用 Azure KeyVault 中的机密的环境变量:
{
"name": "SECRET",
"value": "@Microsoft.KeyVault(SecretUri=https://keyvault_name.vault.azure.net/secrets/secret_name/)",
"slotSetting": false
}
这是在我的网站 Startup.cs 上加载的 api 解决方案:
public void ConfigureServices(IServiceCollection services)
{
services.AddOptions<Secret>().Configure(o => o.ClearText = Configuration["SECRET"]);
services.AddControllers();
}
密文是如何破解的?每次期权调用都解决了吗?例如,每次它被注入到我的构造函数中,或者当环境变量被取消并加载到 Configuration
对象时它是否被解析?
我问的原因是每次调用保险库都会花费一点点,但所有这些都会加起来。
更新
我已将此作为问题添加到 github:https://github.com/MicrosoftDocs/azure-docs/issues/44064#event-2855607916
根据我的测试,Azure Web 应用程序将在两种情况下从 Azure Key Vault 加载数据:
- 您向 Azure 提交了应用程序设置修改请求。
- 您重新启动 Azure Web 应用程序。
你的机密将缓存在 Azure 应用服务中。你可以试试这个场景:当你在Azure KeyVault中添加一个引用secret的环境变量后,在Azure Key Vault中创建一个不同值的新版本,你会发现Azure web app中的值不会改变:仍然是旧版本.
在您重新启动网络应用程序或再次修改门户上的应用程序设置之前,它不会更改。
我还检查了我的 Azure 密钥保管库的指标,我调用了我的 Azure Web 应用程序来检索我在应用程序设置中配置的秘密大约 10 次,但是我的 Azure 密钥保管库在那个时间点的访问指标是 0 . 但是当我重新启动我的 web 应用程序时,Azure key vault 的访问指标会增加。
希望对您有所帮助。