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

无法通过Azure Functions从Azure KV获取密钥,401未授权排查

解决Azure Functions系统分配身份访问Key Vault时的401未授权问题

问题描述

使用Python代码通过Azure Functions从Azure Key Vault获取密钥,已配置系统分配标识并为其分配了Key Vault的Get、List密钥权限,函数认证级别设为匿名,但测试时持续返回401未授权错误。代码如下:

import os
import logging
import azure.functions as func
from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient

def get_secret_from_azure_key_vault():
    # Create a credential object from managed identity, environment variables, or Azure CLI
    credential = DefaultAzureCredential()

    # Create a secret client
    client = SecretClient(vault_url="https://test1.vault.azure.net", credential=credential)

    # Get the secret value
    secret = client.get_secret("testsecret")

    return secret.value

def main(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')
    
    secret_value = get_secret_from_azure_key_vault()

    return func.HttpResponse(f"The secret value is: {secret_value}.")

可能的问题及排查方向

  • 权限分配未生效或范围错误
    确认Key Vault访问策略中,系统分配身份的权限是直接分配给该身份,而非通过组。检查权限作用范围:若为Key Vault级别,确保无更严格的密钥级权限限制;若为密钥级别,确认目标密钥testsecret在权限范围内。另外Azure权限变更存在5-10分钟延迟,需等待足够时间后再测试。

  • DefaultAzureCredential认证优先级干扰
    DefaultAzureCredential会按顺序尝试多种认证方式(环境变量、托管身份、Azure CLI等),本地测试时若环境变量存在过期/错误的Azure认证信息,可能优先使用无效凭证导致401。可指定仅使用托管身份排除干扰,修改代码如下:

    from azure.identity import ManagedIdentityCredential
    # 替换原credential初始化代码
    credential = ManagedIdentityCredential()
    
  • Key Vault防火墙/虚拟网络限制
    检查Key Vault网络设置:若启用防火墙或虚拟网络访问限制,需确保Azure Functions所在虚拟网络被允许访问,或勾选Key Vault网络设置中的"允许受信任的Microsoft服务绕过此防火墙"选项。

  • 系统分配身份未正确启用或生效
    再次确认函数应用"身份"设置中,"系统分配"选项为"开启"且已保存。启用身份后需重启函数应用,确保身份配置生效。

  • 密钥名称或Vault URL错误
    核对代码中vault_url的拼写(如域名后缀、Vault名称),以及目标密钥名称testsecret是否与Key Vault中存在的密钥完全一致(区分大小写)。

  • 函数托管计划的网络限制
    若使用消费计划,需确认是否配置了虚拟网络集成——若Key Vault限制虚拟网络访问,消费计划必须配置集成才能访问。同时检查函数与Key Vault的区域是否存在跨区域访问限制(特殊场景下可能存在)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:57:34