Azure Synapse管道运行Notebook无法访问Key Vault密钥问题
Synapse管道运行Notebook访问Azure Key Vault密钥失败问题排查
问题描述
我在Azure Key Vault中存储了一个密钥,希望在Synapse分析管道中访问它。手动运行Notebook时可正常获取密钥,但通过管道运行该Notebook时出现错误。已在Azure Key Vault中添加了包含邮箱和工作区名称的访问策略,手动运行时以下代码可正常返回密钥:
from notebookutils import mssparkutils mssparkutils.credentials.getSecret('kv-dp-WorkspaceName','TestNoteBook')
解决方案
给Synapse工作区托管标识分配Key Vault权限
管道运行Notebook时使用的是工作区托管标识,而非个人邮箱账号。需在Key Vault访问策略中为该托管标识配置权限:- 进入Azure Key Vault的「访问策略」页面
- 添加新策略,选择「主体」为你的Synapse工作区名称(对应系统分配的托管标识)
- 在「密钥权限」中勾选
Get和List,保存策略
核对代码参数准确性
确认代码中的Key Vault短名称(不带.azure.net后缀)、密钥名称无拼写错误,与Key Vault中实际存储的信息完全匹配。检查网络连通性
如果Key Vault启用了防火墙或虚拟网络限制:- 将Synapse工作区的所有出站IP地址添加到Key Vault的防火墙允许列表
- 若使用私有链接,确保Synapse与Key Vault已建立私有端点连接,且配置正确
验证工作区托管标识状态
进入Synapse工作区的「标识」页面,确认「系统分配的标识」处于启用状态,若未启用则开启该标识。
内容的提问来源于stack exchange,提问作者Junaid Bilal
相关产品推荐
相关产品推荐

