Azure Policy 不拒绝创建自定义角色

Azure Policy not denying Custom Role creation

我目前正在帮助调查为我组织的 public 云采用 Azure。我被分配的任务之一是锁定帐户以防止用户能够在订阅中提升他们的权限。

我特别感兴趣的一件事是拒绝创建自定义角色,因为我们不希望人们去开始创建他们自己的角色,直到角色的需求得到安全审查。

我一直在尝试通过具有以下定义的 Azure 策略来执行此操作

{
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.Authorization/roleDefinitions"
      },
      {
        "field": "Microsoft.Authorization/roleDefinitions/type",
        "equals": "CustomRole"
      }
    ]
  },
  "then": {
    "effect": "Deny"
  }
}

实际上只是复制了内置的 "Audit Custom Roles" 策略并将效果从 "Audit" 更改为 "Deny"

不过,我已将此策略应用于包含我正在测试的订阅的管理组,但当我登录到 CLI 并尝试创建新的自定义角色时,它会继续创建角色。

我已确保该策略存在于订阅中,并且我已确认我在 CLI 中的订阅是正确的(使用 az account show),但我仍然可以创建自定义角色。

这只是 Azure 不支持的东西,还是我还缺少其他东西?任何帮助或指导将不胜感激,因为 Microsoft 文档和在线提供的大量示例似乎没有任何关于使用策略控制角色的信息。

P.S。 我知道您可以通过策略在某种程度上控制角色,因为我们有另一个策略可以防止分配特定角色集并且确实有效。

看起来 Azure CLI 创建角色定义时没有填充 "type" 字段。以下政策将处理此问题:

{
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.Authorization/roleDefinitions"
      },
      {
        "anyOf": [
          {
            "field": "Microsoft.Authorization/roleDefinitions/type",
            "equals": "CustomRole"
          },
          {
            "field": "Microsoft.Authorization/roleDefinitions/type",
            "exists": "false"
          }
        ]
      }
    ]
  },
  "then": {
    "effect": "Deny"
  }
}