Azure CLI创建Synapse密钥库链接服务无法使用用户分配托管标识
排查Synapse Key Vault链接服务默认使用系统托管标识的问题
以下是几个可能导致配置不生效的核心原因及验证方法:
1. JSON配置的层级或属性有误
即使对照官方文档,也容易忽略credential节点的嵌套结构:
- 必须将用户分配标识的配置放在
typeProperties下的credential对象内,且type需设为ManagedIdentityCredential,同时typeProperties下的resourceId要填用户分配标识的完整ARM ID(格式:/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName})。 - 如果错误地把标识配置直接放在
typeProperties根节点,Synapse会忽略该配置,自动 fallback到系统分配标识。
正确的配置片段示例:
"typeProperties": { "baseUrl": "https://your-keyvault.vault.azure.net/", "credential": { "type": "ManagedIdentityCredential", "typeProperties": { "resourceId": "/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.ManagedIdentity/userAssignedIdentities/SynapseUserAssignedManagedIdentity" } } }
2. 用户分配标识未关联到Synapse工作区
Synapse工作区必须先启用该用户分配标识,才能在链接服务中调用:
- 进入Synapse工作区的托管标识设置页面,确认
SynapseUserAssignedManagedIdentity已经被添加到用户分配标识列表中。 - 若未关联,哪怕链接服务配置正确,Synapse也无法识别该标识,只能使用系统分配的。
3. Azure CLI命令使用错误
确保你执行的是Synapse专属的链接服务创建命令,且参数正确:
- 正确命令格式:
az synapse linked-service create --workspace-name <your-workspace-name> --name <kv-linked-service-name> --file @your-config.json
- 不要混淆成Data Factory的链接服务创建命令(
az datafactory linked-service create),两者的配置结构存在差异,会导致标识配置不生效。
4. 后台缓存导致配置未及时生效
偶尔会遇到Synapse后台缓存延迟的情况:
- 删除已创建的链接服务,等待5-10分钟后重新执行创建命令。
- 在Synapse Studio中测试链接服务的连接,确认是否能通过用户分配标识正常访问Key Vault。
内容的提问来源于stack exchange,提问作者J. Paalman
相关产品推荐
相关产品推荐

