AzureML托管在线端点部署失败:权限不匹配问题求助
排查Azure ML托管在线端点模型下载403权限错误
错误核心原因
部署时的storage-initializer组件无法访问模型所在的Blob存储,返回AuthorizationPermissionMismatch 403错误,本质是托管端点的系统分配托管标识缺少Blob存储的读取权限。
分步排查与修复
1. 为托管端点的系统标识添加Blob读取权限
- 登录Azure门户,找到托管在线端点
mymodel-ep,进入标识标签,复制系统分配标识的名称。 - 导航到模型所在的存储账户
mystorage,进入目标Blob容器mycontainer的**访问控制(IAM)**页面。 - 点击添加角色分配:
- 角色选择存储Blob数据读取者
- 成员类型选择托管标识,点击+选择成员,找到刚才复制的端点托管标识并添加
- 保存角色分配
2. 验证Datastore的权限配置
- 检查Datastore
mydatastore的身份验证方式:- 如果是托管标识:确保该标识(工作区系统标识或用户分配标识)拥有存储Blob的读取权限,操作步骤同1。
- 如果是账户密钥/SAS令牌:确认密钥未过期、SAS令牌包含
读取权限且有效。
- 用CLI验证Datastore可用性:
或在Azure ML Studio中测试Datastore连接,确认能正常访问模型路径。az ml datastore show -n mydatastore -w myws -g myrg
3. 确认模型注册路径的正确性
- 检查模型注册命令中的
--path参数,确保azureml://路径的容器名、文件路径无拼写错误:az ml model create --name mymodel --resource-group myrg -w myws --version 1 --path azureml://subscriptions/123-31233-2323-232/resourcegroups/myrg/workspaces/myws/datastores/mydatastore/paths/path/to/my/model/weights - 在Azure ML Studio中查看已注册的
mymodel:1,确认路径对应的模型文件可被正常访问。
4. 重新触发部署
权限配置完成后,重新部署以生效:
az ml online-deployment create -f deployment.yml -g myrg -w myws
或更新现有部署:
az ml online-deployment update -n mymodel-deployment --endpoint-name mymodel-ep -g myrg -w myws --set instance_count=1
额外检查点
- 如果存储账户启用了防火墙/虚拟网络:在存储账户的网络标签,勾选“允许受信任的Microsoft服务访问此存储账户”,或添加Azure ML工作区所在的虚拟网络到允许列表。
- 确认工作区系统托管标识权限:若模型注册时依赖工作区标识访问存储,需确保该标识也拥有Blob读取权限。
内容的提问来源于stack exchange,提问作者EMMA LYU
相关产品推荐
相关产品推荐

