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

Azure中如何通过策略定义防止资源组特定标签被编辑/删除?

解决资源组特定标签不可编辑/删除的问题

你现有策略的问题主要有两点:

  1. 类型字段里的Microsoft.Resources/subscriptions/resourceGroups未加引号,属于语法错误,导致策略无法正确生效。
  2. 规则逻辑偏差:当前规则只要资源组存在my-lock标签,就直接拒绝所有标签相关操作和资源组操作,既没区分操作类型,也没判断是否真的修改了目标标签。

要实现禁止编辑/删除特定标签,但允许添加其他标签的需求,需要精准匹配「修改/删除my-lock标签」的操作,正确的策略定义如下:

"policyRule": {
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.Resources/subscriptions/resourceGroups"
      },
      {
        "anyOf": [
          {
            "not": {
              "field": "tags['my-lock']",
              "exists": true
            }
          },
          {
            "not": {
              "field": "tags['my-lock']",
              "equals": "my-lock"
            }
          }
        ]
      },
      {
        "field": "action",
        "in": [
          "Microsoft.Resources/subscriptions/resourceGroups/write",
          "Microsoft.Resources/tags/write"
        ]
      }
    ]
  },
  "then": {
    "effect": "deny"
  }
}

策略逻辑说明:

  • 首先匹配目标类型为资源组(Microsoft.Resources/subscriptions/resourceGroups)
  • 然后判断两种需要阻止的场景:
    • 请求中的标签里不存在my-lock键(即试图删除该标签)
    • 请求中的my-lock标签值不等于原始值my-lock(即试图修改该标签)
  • 最后匹配触发操作:资源组写入操作或标签写入操作
  • 满足以上所有条件时,执行拒绝操作

这样设置后,用户可以正常添加、修改其他标签,但一旦尝试删除或修改my-lock标签,就会被策略阻止。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 14:37:15