在管理组级别禁止权限的 Azure 策略

Azure policies prohibiting permissions at the management group level

提问人:Jacek Czerniak 提问时间:11/3/2023 最后编辑:Jacek Czerniak 更新时间:11/9/2023 访问量:88

问:

为了更有效地管理 Azure 平台上的权限,我被分配了具有多个订阅的管理组级别的“参与者”和“RBAC 管理员”权限。

但是,我希望能够继续仅在资源组/资源级别分配权限。

我设法创建了一个 Azure Policy,该 Policy 有效地在资源组/资源级别授予对它的访问权限,但仍然可以将权限分配给管理组本身。

有没有人遇到过这样的问题,可以提出可能的解决方案?

此致敬意 雅切克

该策略适用于 subscriptions/rg(禁止添加权限),但不适用于管理组:

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

我尝试过没有 anyOf 中的第二条规则,但它仍然不起作用。

管理组结构

根管理组策略分配者

azure-policy

评论


答:

0赞 Venkat V 11/7/2023 #1

我设法创建了一个 Azure Policy,该 Policy 有效地在资源组/资源级别授予对它的访问权限,但仍然可以将权限分配给管理组本身。

以下策略将拒绝该级别的角色分配,但允许资源组和订阅级别的角色分配。Management Group

注意:要防止在 中进行角色分配,请在 本身级别应用策略。Management GroupManagement Group

{
  "mode": "All",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Authorization/roleAssignments"
        },
        {
          "not": {
            "field": "Microsoft.Authorization/roleAssignments/principalId",
            "exists": "false"
          }
        },
        {
          "anyOf": [
            {
              "value": "[contains(field('Microsoft.Authorization/roleAssignments/scope'), 'managementGroups/')]",
              "equals": "false"
            },
            {
              "value": "[startsWith(field('Microsoft.Authorization/roleAssignments/scope'), concat(subscription().id, '/resourceGroups/'))]",
              "equals": "true"
            }
          ]
        }
      ]
    },
    "then": {
      "effect": "Deny"
    }
  },
  "parameters": {}
}

该策略检测到在管理组级别具有访问权限的人员存在不合规问题。

enter image description here

评论

0赞 Jacek Czerniak 11/8/2023
您好,感谢您的回答,但我仍然可以在组管理级别授予权限,并且我不想拥有此选项。我的目标是防止将权限分配给管理组。上述策略满足 3 个假设中的 2 个,我无法在订阅级别分配权限(这是正确的),我可以在资源组级别分配权限(这是正确的)。
0赞 Venkat V 11/8/2023
是否在管理组级别分配了策略?
0赞 Jacek Czerniak 11/8/2023
是的,我已在管理组级别设置了一个策略,用户对该策略具有参与者和 RBAC 管理员访问权限。
0赞 Venkat V 11/8/2023
租户中有多少个管理组?
0赞 Jacek Czerniak 11/8/2023
我在帖子中添加了管理组结构的屏幕截图。