Azure DevOps管道中通过Azure CLI注册模型时报blob存储403授权错误
问题排查解决步骤
1. 权限配置排查
- 确认管道使用的Azure服务连接对应的服务主体/托管身份,已被分配AML工作区关联默认Blob存储的存储Blob数据贡献者角色:多数场景下仅给账号分配AML工作区贡献者权限,缺少存储层的数据操作权限会直接触发403错误。
- 若使用自定义存储作为AML的datastore,需要对该自定义存储单独配置对应权限。
2. 网络拦截排查
- 检查Blob存储账户的公共网络访问规则:若开启了IP白名单限制,需要将DevOps管道使用的代理出口IP加入白名单:若用微软托管代理,需要加入对应区域的DevOps出站IP段;若用自托管代理,直接添加代理服务器的公网出口IP即可。
- 若AML工作区和存储配置了VNet隔离:需要保障DevOps代理和工作区、存储在同一VNet或已配置VNet互通,同时确认存储私有端点的DNS解析在代理侧正常,不会解析到存储的公网地址触发拦截。
- 检查存储账户是否配置了禁止匿名访问、高级安全策略等额外规则,排除策略拦截可能。
3. 场景验证步骤
- 本地使用和管道相同的身份凭据,替换变量后执行以下命令,先排除本地执行层面的参数错误:
az ml model register -g <实际资源组名> -w <实际工作区名> -n model_test --model-path ./Configuration/outputs/ -t model.json - 临时测试可先将模型文件手动上传到对应存储的路径下,使用
--model-uri参数直接指定存储路径注册模型,验证是否仅上传环节存在权限问题。
内容的提问来源于stack exchange,提问作者user282625
相关产品推荐
相关产品推荐

