azure arm 策略拒绝没有标签的资源组

Posted

技术标签:

【中文标题】azure arm 策略拒绝没有标签的资源组【英文标题】:azure arm policy to deny resource group without tags 【发布时间】:2018-01-11 22:21:57 【问题描述】:

我想编写一个 Azure ARM 策略来拒绝创建没有标签的资源组。这是我目前的政策规则:


  "$schema": "http://schema.management.azure.com/schemas/2015-10-01-preview/policyDefinition.json",
  "if": 
    "allOf": [
      
        "field": "tags",
        "exists": false
      ,
      
        "field": "type",
        "like": "resourceGroup*"
      
    ]
  ,
  "then": 
    "effect": "deny"
  
 

这不会阻止创建没有标签的 RG。

如果我将策略规则更改为:


  "$schema": "http://schema.management.azure.com/schemas/2015-10-01-preview/policyDefinition.json",
  "if": 
        "field": "tags",
        "exists": false
      ,
  "then": 
    "effect": "deny"
  
 

然后,如果所有资源(包括 RG)没有标签,它们都会被拒绝。

所以我断定它是“字段类型就像资源组*”条件的一部分,但我找不到正确的语法让它按我想要的方式工作。

这可能吗,正确的语法是什么?

(我不在乎是否在没有标签的情况下创建其他资源类型的原因是我们有一个 Azure 自动化运行手册,它可以抓取 RG 的标签,然后将这些标签应用于子资源 - 这也是我想要确保人们首先使用标签创建父 RG)。

【问题讨论】:

【参考方案1】:

试试这个策略定义:

    "if": 
      "allOf": [
        
          "field": "tags",
          "exists": "false"
        ,
        
          "field": "type",
          "equals": "Microsoft.Resources/subscriptions/resourceGroups"
        
      ]
    ,
    "then": 
      "effect": "deny"
    

注意:我必须等待几分钟才能使其正常工作。

【讨论】:

以上是关于azure arm 策略拒绝没有标签的资源组的主要内容,如果未能解决你的问题,请参考以下文章

Azure Policy Deny:如果资源组名称中不存在标记之一

Azure 策略:如果所有者标签不存在或不是电子邮件地址,则拒绝

天蓝色政策只允许创建特定标签

创建没有标记的资源组时 Azure Policy 的奇怪行为

关于 azure 标签和策略

Azure 策略要求创建某个标记,但不使用默认值?