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

如何创建Azure自定义策略以禁止所有者权限用户删除其他所有者用户

实现所有者权限用户无法删除同角色所有者的Azure自定义策略方案

实现逻辑

  • 针对Azure RBAC角色分配的删除操作Microsoft.Authorization/roleAssignments/delete进行管控
  • 触发阻断的匹配规则:
    1. 待删除的角色分配对应的角色为内置所有者角色,角色定义ID为8e3af657-a8ff-443c-a75c-2fe8c4bcb635
    2. 发起删除操作的主体自身持有对应范围的所有者权限
    3. 待删除的角色分配的关联主体不是操作发起者本人(允许用户主动删除自己的所有者权限)
  • 策略最终效果设置为Deny,直接拦截符合上述所有条件的删除请求

完整策略定义JSON

{
  "properties": {
    "displayName": "阻止所有者删除其他所有者的角色分配",
    "description": "禁止持有所有者权限的用户删除同范围下其他所有者的角色分配",
    "mode": "All",
    "policyRule": {
      "if": {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.Authorization/roleAssignments/delete"
          },
          {
            "field": "Microsoft.Authorization/roleAssignments/roleDefinitionId",
            "equals": "[concat(subscription().id, '/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635')]"
          },
          {
            "value": "[requestContext().principal.id]",
            "notEquals": "[field('Microsoft.Authorization/roleAssignments/principalId')]"
          },
          {
            "value": "[contains(requestContext().principalRoles, '8e3af657-a8ff-443c-a75c-2fe8c4bcb635')]",
            "equals": true
          }
        ]
      },
      "then": {
        "effect": "Deny"
      }
    }
  }
}

部署与使用注意事项

  • 该策略需要分配到你需要管控的订阅、资源组或者管理组范围,分配后最长15分钟即可生效
  • 如果需要适配管理组范围的所有者角色匹配,可以调整角色定义ID的拼接逻辑,改为对应管理组的资源ID前缀即可
  • 建议正式开启Deny效果前,先将effect字段修改为Audit,运行1-2天确认策略没有误拦截正常操作后再切换为阻断模式
  • 该策略不会限制持有「用户访问管理员」「全局管理员」等Azure AD目录级高权限角色的用户操作,仅管控通过资源范围RBAC授予所有者权限的主体操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:39:02