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

如何解决Microsoft Azure授权错误?获取可用VM列表遇权限失败

解决Azure AuthorizationFailed 读取VM大小权限问题

这是典型的Azure RBAC(基于角色的访问控制)权限缺失问题,咱们一步步来搞定它:

先理解错误本质

你的错误信息已经说得很明确了:

{'error': {'code': 'AuthorizationFailed', 'message': "The client 'X' with object id 'X' does not have authorization to perform action 'Microsoft.Compute/locations/vmSizes/read' over scope '/subscriptions/Y'."}}

简单说:你用的身份(对象ID为X的用户/服务主体),没有在订阅Y上执行Microsoft.Compute/locations/vmSizes/read这个动作的权限——这个动作就是读取指定区域内可用VM大小的权限。

具体解决步骤

1. 选对合适的内置角色

这个读取VM大小的权限,已经包含在几个Azure内置角色里,推荐按最小权限原则选择:

  • Compute Reader:仅能读取计算相关资源(包括VM大小、虚拟机、磁盘等),权限最贴合需求
  • Reader:能读取订阅下所有资源,权限范围更大,适合需要查看多种资源的场景
  • Virtual Machine Contributor:除了读取,还能管理虚拟机,如果你后续需要操作VM,也可以选这个

2. 给身份分配角色权限

登录Azure门户,按以下步骤操作:

  • 找到目标订阅Y,进入订阅详情页
  • 点击左侧菜单的「访问控制(IAM)」
  • 点击页面顶部的「添加」→「添加角色分配」
  • 在「角色」标签页,搜索并选中你刚才选的角色(比如Compute Reader)
  • 切换到「成员」标签页,点击「选择成员」,搜索对象IDX对应的用户/服务主体,选中后添加
  • 确认信息无误,点击「查看 + 分配」完成操作

3. 等待权限生效

Azure RBAC权限一般在5-10分钟内就会生效,偶尔可能需要15-30分钟,别刚分配完就立刻重试,给系统一点同步时间。

4. 验证权限(可选)

如果想确认权限是否已经生效,可以用Azure CLI或者PowerShell验证:

  • Azure CLI命令:
    az role assignment list --assignee <你的对象ID X> --subscription <订阅Y的ID> --all
    
  • Azure PowerShell命令:
    Get-AzRoleAssignment -ObjectId "<你的对象ID X>" -Scope "/subscriptions/<订阅Y的ID>"
    

执行后能看到你刚分配的角色,就说明权限已经到位了。

额外注意事项

  • 如果你用的是服务主体,要确认它没有被限制在其他订阅或资源组,确保是在订阅Y的范围内分配的权限
  • 尽量遵循最小权限原则,不要给Owner或Contributor这种过大的角色,避免不必要的安全风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 06:22:31