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

Azure命名规范策略对部分资源不生效,请求技术协助

Azure命名规范策略未生效的排查与解决

问题诊断与核心修复点

1. 模式(Mode)配置不合理

All模式会覆盖所有资源类型,包括不支持标记/位置的资源,可能导致策略对目标资源的匹配逻辑失效。建议改用Indexed模式,该模式专门针对支持标记和位置的资源,更适配命名规则类策略的执行。

2. 未正确匹配多资源类型

你的示例策略仅针对单一资源类型,若要覆盖列出的所有资源,需用in操作符替代equals,一次性指定所有目标资源类型。

3. 嵌套资源的名称字段验证逻辑

对于SQL数据库这类嵌套资源,需明确验证的是资源自身名称还是包含父资源的完整名称:

  • 用field: "name"验证资源自身名称(如SQL数据库的db01)
  • 用field: "fullName"验证包含父资源的完整名称(如sql-server-01/db01)

修正后的多资源命名策略示例

以下是适配你列出的所有资源类型的策略脚本(示例中为不同资源设置了对应前缀规则,可根据实际需求修改):

{
  "mode": "Indexed",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "in": [
            "Microsoft.Sql/servers/databases",
            "Microsoft.Web/sites",
            "Microsoft.Sql/servers",
            "Microsoft.MachineLearningServices/workspaces",
            "Microsoft.Automation/automationAccounts",
            "Microsoft.Logic/workflows"
          ]
        },
        {
          "anyOf": [
            {
              "allOf": [
                {
                  "field": "type",
                  "equals": "Microsoft.Sql/servers"
                },
                {
                  "field": "name",
                  "notLike": "sql-*"
                }
              ]
            },
            {
              "allOf": [
                {
                  "field": "type",
                  "equals": "Microsoft.Sql/servers/databases"
                },
                {
                  "field": "name",
                  "notLike": "sqldb-*"
                }
              ]
            },
            {
              "allOf": [
                {
                  "field": "type",
                  "equals": "Microsoft.Web/sites"
                },
                {
                  "field": "name",
                  "notLike": "func-*"
                }
              ]
            },
            {
              "allOf": [
                {
                  "field": "type",
                  "equals": "Microsoft.MachineLearningServices/workspaces"
                },
                {
                  "field": "name",
                  "notLike": "mlws-*"
                }
              ]
            },
            {
              "allOf": [
                {
                  "field": "type",
                  "equals": "Microsoft.Automation/automationAccounts"
                },
                {
                  "field": "name",
                  "notLike": "auto-*"
                }
              ]
            },
            {
              "allOf": [
                {
                  "field": "type",
                  "equals": "Microsoft.Logic/workflows"
                },
                {
                  "field": "name",
                  "notLike": "logic-*"
                }
              ]
            }
          ]
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  },
  "parameters": {}
}

验证步骤

  1. 确认策略分配范围:确保策略分配到了包含目标资源的订阅或资源组,避免范围错误导致策略不生效。
  2. 运行合规性扫描:在Azure门户的策略页面手动触发合规性扫描,查看现有资源是否被正确标记为不合规。
  3. 测试资源创建:尝试创建一个不符合命名规则的目标资源,确认是否被策略拒绝。
  4. 检查策略优先级:确认没有其他优先级更高的策略覆盖了当前命名规则策略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:05:36