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

Azure ML计算实例权限异常:用户无法访问自建实例

问题诊断与解决方案

核心差异点

Terraform创建的AML计算实例和UI创建的实例,核心区别有两个:

  • Terraform用订阅Owner权限的服务主体创建,且绑定了指定的用户分配托管身份;
  • UI创建默认使用系统分配身份,创建者是普通用户账号,权限上下文和服务主体不同。

可能的问题原因

1. 计算实例的身份权限缺失

Terraform代码里,计算实例绑定了用户分配身份,并且依赖了密钥库策略和角色分配模块,这个身份已经拥有访问AML工作区关联资源(存储、密钥库等)的权限。而UI创建的实例如果用系统分配身份,大概率没有这些预配置的权限,导致用户访问时身份验证链断裂。

2. 角色缺少数据层面权限

你在资源组级别的角色(包括自定义角色AZURE-Datascience-AML-dev-Contributor)都没有配置dataActions,但访问计算实例的终端、Jupyter、VSCode需要数据层面的权限,仅靠资源管理层面的actions不足以完成访问授权。

3. 创建者权限上下文的继承问题

服务主体以Owner身份创建实例时,会自动为实例赋予完整的权限基础;普通用户哪怕有资源组Owner权限,在AML计算实例的内部权限映射逻辑上,和服务主体创建的实例存在差异,后续分配给其他用户时无法正常继承访问权限。

解决方案

方案1:UI创建时指定用户分配身份

在UI创建计算实例的步骤中,手动选择和Terraform代码里相同的用户分配身份(azurerm_user_assigned_identity.aml_user_assigned_identity),确保实例拥有和Terraform创建的实例一致的身份权限池。

方案2:补充角色的DataActions权限

更新自定义角色AZURE-Datascience-AML-dev-Contributor,添加计算实例相关的数据权限:

{
    "properties": {
        "permissions": [
            {
                "actions": [
                    "Microsoft.MachineLearningServices/workspaces/*/read",
                    "Microsoft.MachineLearningServices/workspaces/*/action",
                    "Microsoft.MachineLearningServices/workspaces/*/delete",
                    "Microsoft.MachineLearningServices/workspaces/*/write",
                    "Microsoft.Network/virtualNetworks/*/read",
                    "Microsoft.Network/virtualNetworks/subnets/join/action"
                ],
                "dataActions": [
                    "Microsoft.MachineLearningServices/workspaces/computes/instances/*/read",
                    "Microsoft.MachineLearningServices/workspaces/computes/instances/*/action"
                ],
                "notActions": [],
                "notDataActions": []
            }
        ]
    }
}

也可以直接使用Azure内置的AzureML Compute Instance Operator角色,该角色天然包含访问计算实例所需的全部数据权限。

方案3:直接在计算实例级别分配权限

对于已经通过UI创建的实例,手动为目标用户分配AzureML Compute Instance Operator或AzureML Data Scientist角色到计算实例资源本身,不依赖资源组级别的权限继承。

方案4:快速验证(排除网络问题)

虽然子网IP充足,但可以临时开启计算实例的公网IP(创建时勾选Enable public IP),测试是否能访问——如果能访问,说明是权限问题而非网络问题;如果还是不行,再回到权限排查。

验证步骤

  1. 按方案1创建实例,尝试访问终端、Jupyter;
  2. 更新角色权限后,重新分配给用户,测试UI创建的实例;
  3. 直接给UI创建的实例分配权限,验证访问情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 19:31:14