具有预定义值的Azure策略标记

时间:2020-02-21 15:43:48

标签: azure azure-resource-manager azure-policy

我目前在Azure策略方面有些挣扎。我要执行 特定标签及其值。 (声音标准) 但是我想允许预定义集中的一个值 在创建过程中是必需的。例如

环境:(任何这些预定义值都是允许的)

  • 开发
  • 测试
  • 产品
  • PreProd

我根据其他一些政策创建了一个计划,并且在分配该计划时。

它将仅强制执行所选的值,但不允许其他所有值。

  "properties": {
    "displayName": "Tag3",
    "policyType": "Custom",
    "mode": "All",
    "metadata": {
    },
    "parameters": {
      "tags": {
        "type": "Array",
        "metadata": {
          "displayName": "Environment",
          "description": "The list of Environments"
        },
        "allowedValues": [
          "Test",
          "Dev",
          "PreProd",
          "Prod"
        ],
        "defaultValue": [
          "Prod"
        ]
      }
    },
    "policyRule": {
      "if": {
        "not": {
          "field": "tags",
          "in": "[parameters('tags')]"
        }
      },
      "then": {
        "effect": "deny"
      }
    }
  }

2 个答案:

答案 0 :(得分:0)

设置defaultValue而不设置[]。就像这样一个:"defaultValue": "Prod"

有关更多详细信息,您可以参考此article

答案 1 :(得分:0)

选项1:删除“ defaultvalue”属性,并在分配策略时以“;”的形式提供所需值的列表。分隔列表:

Test;Dev;PreProd

选项2:将“默认值”保留为数组,并填充所有允许的值:

"defaultvalue": [
          "Test",
          "Dev",
          "PreProd",
          "Prod"
        ]