Azure Policy资源组命名规则调整:允许前缀后追加任意多字符
解决Azure资源组命名规则问题
你当前的Policy规则仅限制了名称为bi或dfy后跟恰好3个字符的情况,无法允许后续追加任意字符——原因是通配符使用错误:bi...仅匹配bi开头后接3个字符的精确长度名称,没有包含后续任意字符的匹配逻辑。
要实现「以bi/dfy开头,后跟3个字符,之后可追加任意数量字符」的规则,需要调整通配符模式:
- 用
???匹配开头后的3个任意字符 - 用
*匹配后续任意数量(包括0个)的字符
修改后的Policy规则代码如下:
"policyRule": { "if": { "allOf": [ { "field": "type", "equals": "Microsoft.Resources/subscriptions/resourceGroups" }, { "field": "name", "notMatchInsensitively": "bi???*" }, { "field": "name", "notMatchInsensitively": "dfy???*" } ] }, "then": { "effect": "deny" } }
规则逻辑说明
- 先判断目标资源类型为资源组
- 同时检查名称既不匹配
bi开头+3个任意字符+任意后缀,也不匹配dfy开头+3个任意字符+任意后缀 - 满足上述条件则拒绝创建/修改操作,符合命名规则的资源组会被允许
调整后,以下名称都会被允许:
biabc(bi+3字符,无后缀)biabc123(bi+3字符+后缀)dfyxYz(dfy+3字符)dfyxYz-test(dfy+3字符+后缀)
而不符合规则的名称(如biab、testbiabc、dfy1)会被拒绝。
内容的提问来源于stack exchange,提问作者Charline
相关产品推荐
相关产品推荐

