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

如何创建Azure Policy禁止为Service Bus资源添加ReadOnly锁?

解决Azure Policy禁止Service Bus添加ReadOnly锁的问题

你之前的Policy失效的核心原因是:资源锁(Microsoft.Authorization/locks)是独立的Azure资源类型,并非Service Bus Namespace的属性字段,所以直接检查目标资源的locks/level字段找不到匹配项。

正确的做法是针对锁资源本身创建Policy,同时限定该锁的作用范围不能包含Service Bus Namespace。以下是可用的Policy配置:

{
  "mode": "All",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Authorization/locks"
        },
        {
          "field": "Microsoft.Authorization/locks/level",
          "equals": "ReadOnly"
        },
        {
          "field": "Microsoft.Authorization/locks/scope",
          "contains": "Microsoft.ServiceBus/namespaces"
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  },
  "parameters": {}
}

配置说明

  • type 检查:明确Policy作用于锁资源类型,而非Service Bus本身
  • locks/level 检查:锁定ReadOnly级别的锁操作
  • locks/scope 检查:限定锁的作用范围包含Service Bus Namespace时触发拦截(即禁止给Service Bus Namespace添加该锁)

分配注意事项

  • 分配Policy时,作用范围选订阅或资源组即可,无需直接指定Service Bus Namespace作为目标
  • 确保Policy分配的身份具备基础的Policy执行权限(默认分配权限即可满足)
  • 测试时尝试给Service Bus Namespace添加ReadOnly锁,此时会被Policy拦截

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 12:05:27