如何通过私有端点使用Python访问禁用公网的Azure Key Vault?
问题原因与解决方法
核心问题
你的请求没有通过私有端点所在的虚拟网络发起,或者DNS解析未指向Key Vault的私有IP,导致请求走了公网,被禁用公网访问的Key Vault拦截。
排查与修复步骤
1. 确认代码运行环境的网络位置
- 代码必须运行在与私有端点同VNet的资源中(比如VNet内的VM、已集成VNet的App Service/ Azure Functions),或者本地环境通过VPN/ExpressRoute连通该VNet。
- 若本地测试未连通目标VNet,请求根本无法到达私有端点,必然触发公网访问拦截。
2. 验证DNS解析是否正确
Key Vault私有端点创建后,Azure会自动生成对应私有DNS区域(privatelink.vaultcore.azure.net)并关联到VNet,确保VNet内资源能将Key Vault的FQDN解析为私有IP:
- 在运行代码的环境中执行命令验证:
正常返回的IP应为私有端点的内网IP(如nslookup <你的KeyVault名称>.vault.azure.net10.x.x.x),而非公网IP。 - 若为本地环境,需手动配置DNS转发到Azure DNS,或在hosts文件中添加Key Vault FQDN到私有IP的映射。
3. 检查私有端点的状态与配套配置
- 确认Key Vault的私有端点处于已批准状态:在Azure门户的Key Vault -> 私有端点连接中,查看连接状态为“已批准”。
- 检查私有端点所在子网的网络安全组(NSG),确保未阻止443端口(HTTPS)的出站流量到Key Vault的私有IP。
4. 代码层面无需调整
你的代码中已为应用注册配置正确的访问策略,Credential的使用逻辑无问题,核心故障在网络层面而非代码逻辑。
内容的提问来源于stack exchange,提问作者jakeMantle
相关产品推荐
相关产品推荐

