具有预定义值的Azure策略标记
目前,我正在努力使用Azure策略。我想强制执行 特定标记及其值。(声音标准) 但是我想从预定义的集合中允许一个值 在创建过程中需要。例如 环境:(允许这些预定义值中的任何一个)具有预定义值的Azure策略标记,azure,azure-resource-manager,azure-policy,Azure,Azure Resource Manager,Azure Policy,目前,我正在努力使用Azure策略。我想强制执行 特定标记及其值。(声音标准) 但是我想从预定义的集合中允许一个值 在创建过程中需要。例如 环境:(允许这些预定义值中的任何一个) 发展 试验 刺激 预处理 我用一些其他策略创建了一个计划,当我分配此计划时 它将仅强制选择的值,但不允许所有其他值 "properties": { "displayName": "Tag3", "policyType"
- 发展
- 试验
- 刺激
- 预处理
"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"
}
}
}
设置
defaultValue
而不设置[]
。像这样:“defaultValue”:“Prod”
有关更多详细信息,请参阅此项。选项1:删除“defaultvalue”属性,并在分配策略时以“;”的形式提供所需值的列表单独列表:
Test;Dev;PreProd
选项2:将“defaultvalue”保留为数组,并填充所有允许的值:
"defaultvalue": [
"Test",
"Dev",
"PreProd",
"Prod"
]
谢谢Joey,但我在应用此策略时仍然遇到问题,只允许一个值,而不是所有数组。你知道吗?你确认你设置的“数组”是数组了吗。保存策略定义后,无法更改参数的type属性。由于type为string,因此在分配策略时只能设置一个值。如果分配了此策略,则仅允许范围内的资源。因此,如果您的类型是数组,情况就很奇怪了。有一个社区策略可以帮助您实现这一点,定义如下: