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

如何保护Azure Functions的local.settings.json及部署后是否需用Key Vault

问题解答

1. 能否将敏感值存入Azure Key Vault?示例代码?

完全可以,将敏感数据存入Azure Key Vault是更安全的实践,操作步骤和代码示例如下:

操作流程

  • 创建Azure Key Vault实例,将SiteUrl、TenantId、ClientId、CertificateThumbPrint这些敏感项作为机密存入(建议机密名称和原配置键保持一致)。
  • 给你的Azure Function App启用系统分配托管标识,并在Key Vault的访问策略中为该标识分配机密读取权限。
  • 在Function App的应用配置页,将原有敏感值替换为Key Vault机密的引用格式:@Microsoft.KeyVault(VaultName=<Key Vault名称>;SecretName=<机密名称>) 或 @Microsoft.KeyVault(SecretUri=<机密完整URI>)。

.NET Core 3.1 代码示例

在Function中通过IConfiguration直接读取配置即可,配置系统会自动解析Key Vault的引用,无需额外处理:

using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;

public class SharePointSyncFunction
{
    private readonly IConfiguration _config;
    private readonly ILogger<SharePointSyncFunction> _logger;

    // 构造函数注入IConfiguration
    public SharePointSyncFunction(IConfiguration config, ILogger<SharePointSyncFunction> logger)
    {
        _config = config;
        _logger = logger;
    }

    [Function("SharePointSyncFunction")]
    public void Run([TimerTrigger("0 */15 * * * *")] TimerInfo timer)
    {
        // 直接读取配置,自动从Key Vault拉取真实值
        var siteUrl = _config["SiteUrl"];
        var tenantId = _config["TenantId"];
        var clientId = _config["ClientId"];
        var certThumbprint = _config["CertificateThumbPrint"];

        _logger.LogInformation("准备同步SharePoint站点: {SiteUrl}", siteUrl);
        // 后续业务逻辑...
    }
}

本地开发时,可在local.settings.json中保留测试值,或通过Azure CLI登录后为本地用户分配Key Vault访问权限,实现本地环境直接读取Key Vault机密。

2. 部署后配置已加密且HTTPS传输,是否无需用Key Vault?

并非如此,即便Azure Function的配置已静态加密存储、传输走HTTPS,仍然建议使用Azure Key Vault,核心原因如下:

  • 细粒度权限管控:Key Vault可以针对单个机密设置访问权限,而Function配置的权限是基于整个App的管理权限,无法单独管控某一项配置的访问。
  • 完整审计日志:Key Vault会记录所有机密的访问行为(谁、何时、何地访问),便于追溯敏感数据的使用情况,Function配置无此类详细日志。
  • 版本管理与自动轮换:Key Vault支持机密版本迭代,还能结合自动化工具实现密钥/证书的自动轮换,Function配置无版本管理能力,手动更新易出错。
  • 降低明文暴露风险:Function配置在门户中虽显示为掩码,但拥有App管理权限的用户仍可通过API/CLI获取明文;Key Vault可严格限制仅授权身份能读取,进一步缩小敏感数据的暴露范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 17:15:37