1

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

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

我一直在尝试通过具有以下定义的 Azure 策略来做到这一点

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

实际上只是复制了内置的“审核自定义角色”策略并将效果从“审核”更改为“拒绝”

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

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

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

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

4

1 回答 1

4

看起来 Azure CLI 在不填充“类型”字段的情况下创建了角色定义。以下策略将处理此问题:

{
  "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"
  }
}
于 2019-02-06T03:19:42.313 回答