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

如何为Synapse Pipeline运行指定身份(SP/UAMI等)及权限问题咨询

问题描述

我在受控企业环境中使用Synapse Spark Pools,查询AAD的权限有限,但能创建用户分配托管标识(UAMI)并分配给资源。直接创建Spark作业定义从ADLS读取数据时,作业以我的身份(tim.davies@work.com)作为提交者,因为我有数据存储的rx权限,运行正常。但通过Pipeline调用该Spark作业定义时出现授权错误,查看Spark应用列表发现Pipeline用了一个陌生的UUID作为提交者(不是Synapse工作区系统托管标识或我创建的UAMI,且没法查询AAD获取详情)。想知道能不能为Pipeline指定明确的UAMI运行,或者有其他权限管理方案?

解决方案

1. 给Pipeline指定UAMI运行

你可以按以下步骤配置:

  • 先确认已创建好目标UAMI,并且把这个UAMI添加到Synapse工作区的「托管标识」选项卡中(用户分配的标识列表里)
  • 给该UAMI授予ADLS存储的Storage Blob Data Reader(对应你的rx权限)等必要权限
  • 编辑Pipeline,在「属性」面板的「托管标识」下拉框里选中你创建的UAMI
  • 保存后重新运行Pipeline,此时Spark作业会以这个UAMI身份提交,应该能解决授权问题

2. 排查Pipeline默认使用的标识

Pipeline默认会用Synapse工作区的系统托管标识(SAMI),你可以核对下:

  • 查看Synapse工作区系统托管标识的对象ID,和Spark应用列表里的UUID对比,如果匹配,说明是用了SAMI,给SAMI加上ADLS的相应权限就行
  • 如果UUID不匹配SAMI,大概率是企业环境的特殊配置(比如权限代理)导致的,这种情况优先用指定UAMI的方案绕开

3. 权限验证注意事项

  • 给UAMI/SAMI加完IAM权限后,等几分钟再测试,因为权限同步可能有延迟
  • 如果Spark作业只需要读取ADLS里的特定容器或文件夹,可以在对应层级单独配置权限,缩小权限范围,更符合受控环境的要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 05:35:18