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

使用Azure Python SDK v2提交AML计算集群作业遇权限问题求助

问题分析与解决方案

核心问题定位

报错提示缺少Microsoft.MachineLearningServices/workspaces/computes/read权限,但你已配置自定义角色及多个高权限内置角色,且Azure ML Studio能正常操作,说明问题大概率出在凭据缓存、权限生效延迟或SDK身份验证上下文上,而非权限配置本身。

具体排查与解决步骤

1. 强制刷新本地凭据缓存

Python SDK v2默认复用Azure CLI或PowerShell的本地凭据缓存,刚分配的权限不会即时同步到缓存里。执行以下操作更新:

  • 终端运行:az account clear
  • 重新登录:az login
  • 切换到目标订阅:az account set --subscription <你的订阅ID>
  • 再重新运行Python代码。

2. 补全自定义角色的显式权限

虽然你的自定义角色包含Microsoft.MachineLearningServices/workspaces/*/read,但显式添加目标权限能避免通配符匹配的潜在问题,同时补充作业提交所需的写入权限:
修改自定义角色的actions列表,新增:

"Microsoft.MachineLearningServices/workspaces/computes/read",
"Microsoft.MachineLearningServices/workspaces/computes/write"

重新分配角色后,等待15-30分钟让权限生效。

3. 确认MLClient的身份验证上下文

检查MLClient初始化代码的参数,确保订阅、资源组、工作区名称和报错里的权限范围完全一致,避免因上下文错位导致权限无效。示例初始化代码:

from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

ml_client = MLClient(
    credential=DefaultAzureCredential(),
    subscription_id="<你的订阅ID>",
    resource_group_name="<你的资源组名>",
    workspace_name="<你的AML工作区名>"
)

4. 验证角色分配的生效范围

通过Azure Portal检查角色分配的作用范围:

  • 进入目标AML工作区 → 访问控制(IAM) → 角色分配
  • 找到你的账户,确认所有角色的分配范围是当前资源组或工作区本身,而非其他层级。

5. 临时排除多角色冲突

虽然你分配了Owner、Contributor等最高权限,但多角色叠加可能出现意外限制(概率极低)。可以临时移除Reader这类低权限角色,只保留Owner或Contributor,测试是否能正常运行。

额外验证步骤

运行Python代码前,先用Azure CLI测试计算资源读取权限:

az ml compute show --name test --workspace-name my-machine-learning-workbench --resource-group my-ressource-group-name

如果命令能正常返回计算集群信息,说明权限已生效,问题出在SDK凭据或初始化上;如果失败,说明权限配置或分配仍有问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 02:52:43