禁用公网访问的Synapse工作区连接Blob Storage问题求助
禁用公网访问的Synapse连接Blob Storage解决方案
具体操作步骤
1. 给目标存储账户创建专用端点
- 先确认存储账户和Synapse工作区在同一个虚拟网络,或者已通过VNet对等互联打通网络,否则专用端点无法连通
- 登录Azure门户找到目标存储账户,进入「专用端点连接」>「添加」
- 配置要点:
- 选择Synapse所在的虚拟网络和子网
- 目标子资源必须选
blob(对应要连接的Blob Storage) - 务必开启专用DNS集成,这是避免DNS解析跳公网的关键
2. 给Synapse分配存储访问权限
- 两种方式二选一:
- 进入Synapse工作区的「访问控制(IAM)」,添加存储账户的托管标识,分配「存储Blob数据参与者」权限(只读需求则分配「存储Blob数据读取者」)
- 或者前往存储账户的IAM页面,添加Synapse工作区的托管标识,分配对应权限
3. 在Synapse Studio中添加链接服务
- 打开Synapse Studio,点击「数据」选项卡>「链接服务」>「新建」
- 选择「Azure Blob存储」类型,配置时注意:
- 认证方式直接选「托管标识」
- 存储账户名称手动填写目标账户名即可(因公网禁用,无法通过公网拉取账户列表)
- 点击测试连接,正常情况下会通过专用端点连通,不再出现公网访问报错
4. 排查DNS问题(测试连接失败时使用)
- 如果测试连接失败,先检查专用DNS区域是否与虚拟网络关联,确保存储账户的私有域名(如
xxx.blob.core.windows.net)能解析到专用端点的私有IP - 可在虚拟网络内的虚拟机上执行
nslookup <存储账户名>.blob.core.windows.net,确认返回的是私有IP,若返回公网IP则说明DNS配置存在问题
避坑提醒
- 存储账户的专用端点子资源不要选错,选成file或其他类型会导致Blob无法访问
- 专用DNS集成必须开启,否则Synapse仍会尝试通过公网解析存储账户地址
- 权限需分配给Synapse的托管标识,而非个人用户账户,否则会出现权限不足的报错
内容的提问来源于stack exchange,提问作者biofellow
相关产品推荐
相关产品推荐

