ADF链接Azure Blob存储可连接但无法访问具体文件路径求助
以下是针对你的场景的可行排查与解决方案:
确认ADF托管身份的权限类型:确保给ADF系统分配托管身份授予的是Storage Blob Data Reader/Contributor这类数据访问角色,而非仅Storage Account Contributor(后者是管理权限,不具备数据读取权限)。前往Blob存储账户的「访问控制(IAM)」页面,检查角色分配的范围是否覆盖目标容器、文件夹或文件。
检查ADLS Gen2的ACL权限(若启用分层命名空间):如果你的Blob存储启用了ADLS Gen2分层命名空间,除了RBAC权限,还需确保目标文件夹和文件的ACL权限允许ADF托管身份读取。可通过Azure CLI执行以下命令查看并设置:
az storage fs access show --account-name <存储账户名> --file-system <容器名> --path <文件夹路径> az storage fs access set --account-name <存储账户名> --file-system <容器名> --path <文件夹路径> --permissions "r-xr-xr-x" --principal <ADF托管身份ID>验证自托管集成运行时的IP(若使用):如果你在ADF中使用了自托管集成运行时,Blob存储的防火墙白名单需要添加自托管运行时所在服务器的公网IP,而非仅ADF区域的IP。
开启“允许受信任的Microsoft服务访问”选项:在Blob存储的「防火墙与虚拟网络」设置中,勾选“允许受信任的Microsoft服务访问此存储账户”。该选项仅允许微软官方可信服务(如ADF)绕过防火墙,不会开放所有网络访问,符合你的安全需求。
检查链接服务的身份验证配置:确认ADF链接服务的身份验证方式为「系统分配托管身份」,而非账户密钥或其他方式。同时验证链接服务中指定的容器名称是否正确,避免因容器名称拼写错误导致权限校验失败。
排查托管虚拟网络的配置(若ADF启用):如果ADF配置了托管虚拟网络,需确保Blob存储的防火墙白名单包含ADF托管虚拟网络的出站IP段,或者为Blob存储配置私有端点并在ADF托管虚拟网络中启用私有端点连接。
内容的提问来源于stack exchange,提问作者Hila DG

