You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure App Service多环境配置:托管身份连SQL的设置疑问

关于Azure App Service多环境配置与托管身份连接SQL的问题解答

问题1:App Service会读取哪个配置文件?

默认情况下,App Service会读取appsettings.json,但如果设置了环境变量ASPNETCORE_ENVIRONMENT(针对ASP.NET Core应用)或DOTNET_ENVIRONMENT(针对通用.NET应用),系统会按以下顺序加载配置:

  • 基础appsettings.json
  • 对应环境的配置文件(比如设置ASPNETCORE_ENVIRONMENT=Acceptance时,会加载appsettings.Acceptance.json)
  • App Service「配置->应用设置」里的环境变量(优先级最高,会覆盖配置文件中的相同键值)

你当前的App Service未设置环境变量,因此只会读取appsettings.json。

问题2:多环境配置的最优方案及密钥管理器使用

推荐安全易维护方案

  1. 代码库仅保留基础与开发环境配置:只提交appsettings.json(存放通用非敏感配置)和appsettings.Development.json(本地开发用配置,不含敏感信息),其他环境(Acceptance、Production)的配置不入库,避免敏感信息泄露。
  2. 用Key Vault存储敏感配置:将数据库连接字符串、密钥等敏感信息存入Azure Key Vault,建议每个环境对应独立的Key Vault,或通过Key Vault访问策略隔离不同环境权限。
  3. App Service关联Key Vault:
    • 给App Service的系统分配托管身份授予Key Vault的「机密读取权限」
    • 在App Service「配置->应用设置」中,用@Microsoft.KeyVault(SecretUri=密钥完整URI)格式引用Key Vault中的机密
    • 设置ASPNETCORE_ENVIRONMENT环境变量(比如Acceptance环境设为Acceptance),让应用触发对应环境的配置逻辑
  4. IaC模板配合环境参数:用ARM模板或Bicep的环境参数文件(如parameters.acceptance.json、parameters.production.json)定义各环境的App Service配置(含环境变量、Key Vault引用),实现自动化部署。

简便替代方式

若不想维护多个Key Vault,可在同一Key Vault中通过机密名称区分环境(比如Acceptance-DbConnectionString、Production-DbConnectionString),再在IaC参数文件中指定对应环境的机密名称,部署时自动引用。

多环境使用密钥管理器步骤

  • 为每个环境创建独立Key Vault(推荐),或在同一Key Vault中按环境命名机密
  • 给对应环境的App Service托管身份分配Key Vault的Secret User角色
  • 在App Service应用设置中,通过Key Vault引用语法加载对应环境的敏感配置
  • 确保应用代码中已配置Key Vault配置提供程序(ASP.NET Core可通过AddAzureKeyVault扩展方法实现)

内容的提问来源于stack exchange,提问作者Lucky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 23:15:04