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

Azure ARM策略限制数据库Sku.name仅允许Basic和Standard部署问题排查

问题核心原因

你当前配置的核心错误是混淆了Azure SQL数据库SKU的两个属性:sku.tier(层级)和sku.name(具体规格):

  • Basic层级的SKU,sku.name和sku.tier值均为Basic,因此可以正常匹配通过
  • Standard层级的SKU,sku.tier值为Standard,但sku.name为Standard_S0、Standard_S1这类带具体规格标识的值,和你允许列表中的纯Standard无法匹配,因此被误拦截

另外你的原有策略还存在结构混用、未限定作用资源范围的问题,也可能导致异常。

修正后的完整配置

策略定义

{
    "properties": {
        "displayName": "仅允许SQL数据库使用Basic和Standard层级SKU",
        "policyType": "Custom",
        "mode": "All",
        "description": "限制SQL数据库仅可部署Basic和Standard层级的SKU,拒绝其余层级部署",
        "parameters": {
            "listOfAllowedSKUTiers": {
                "type": "Array",
                "metadata": {
                    "description": "允许使用的SQL数据库SKU层级列表",
                    "displayName": "允许的SKU层级"
                },
                "allowedValues": [
                    "Basic",
                    "Standard"
                ],
                "defaultValue": [
                    "Basic",
                    "Standard"
                ]
            }
        },
        "policyRule": {
            "if": {
                "allOf": [
                    {
                        "field": "type",
                        "equals": "Microsoft.Sql/servers/databases"
                    },
                    {
                        "field": "kind",
                        "notContains": "system"
                    },
                    {
                        "not": {
                            "field": "Microsoft.Sql/servers/databases/sku.tier",
                            "in": "[parameters('listOfAllowedSKUTiers')]"
                        }
                    }
                ]
            },
            "then": {
                "effect": "Deny"
            }
        }
    },
    "type": "Microsoft.Authorization/policyDefinitions",
    "name": "sql-db-allowed-sku-tiers"
}

关键调整说明

  • 字段替换:将原规则中的sku.name判断改为sku.tier,直接匹配SKU层级,符合你的需求
  • 范围限定:增加资源类型判断,仅对SQL数据库资源生效,避免误拦截其他资源
  • 系统库过滤:排除SQL Server自带的系统数据库,避免策略影响基础服务运行
  • 结构修正:移除原有错误的strongType配置,调整参数元数据匹配实际用途

如果你需要限制的是具体SKU规格而非层级,可将判断字段改回sku.name,同时将允许列表调整为对应具体规格值,例如["Basic", "Standard_S0", "Standard_S1"]即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:27:01