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

Azure管理组级别权限分配限制政策问题求助

Azure Policy 限制RBAC权限分配范围解决方案

你的核心问题是现有Policy没拦住管理组级别的角色分配,根源在于原规则逻辑存在漏洞,且Policy的分配范围未覆盖管理组,导致规则不生效。

问题分析

  1. 原规则中使用subscription().id在管理组上下文下会返回空值,导致concat(subscription().id,'/resourceGroups')结果异常,无法正确识别管理组级别的权限分配操作。
  2. 若Policy仅分配在订阅级别,管理组本身的操作不受该Policy约束,自然无法拦截管理组的权限分配行为。

修正后的Policy规则

以下规则会拒绝所有非资源组/资源级别的角色分配(包括订阅级别和管理组级别):

"policyRule": {
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.Authorization/roleAssignments"
      },
      {
        "value": "[contains(field('Microsoft.Authorization/roleAssignments/scope'), '/resourceGroups/')]",
        "equals": "false"
      }
    ]
  },
  "then": {
    "effect": "Deny"
  }
}

逻辑说明:

  • 资源组级别的scope格式为/subscriptions/{subId}/resourceGroups/{rgName},资源级别的scope会在此基础上追加路径,两者都包含/resourceGroups/字符串,因此会被允许。
  • 订阅级别scope仅为/subscriptions/{subId},管理组级别scope为/providers/Microsoft.Management/managementGroups/{mgName},均不包含/resourceGroups/,因此会被拒绝。

关键配置步骤

必须将该Policy分配到目标管理组级别,而非单个订阅。只有这样,管理组本身的角色分配操作才会被这个Policy约束。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:42:53