我正在尝试创建一个 Azure 策略,其中资源具有应位于允许值列表内的标签。 如果没有指定标签,则应该从资源组继承。
我尝试过这个,但是当我尝试分配时它返回以下错误: “在“X”中创建策略分配“确保并验证具有允许值的标记继承 - ProvisionType”失败。策略定义“Y”规则无效。“field”属性不能为空。”
政策定义如下:
{
"mode": "Indexed",
"policyRule": {
"if": {
"anyOf": [
{
"allOf": [
{
"field": "[concat('tags[', parameters('tagName'), ']')]",
"exists": "false"
},
{
"field": "[resourceGroup().tags[parameters('tagName')]]",
"notEquals": ""
}
]
},
{
"allOf": [
{
"field": "[concat('tags[', parameters('tagName'), ']')]",
"exists": "true"
},
{
"field": "[concat('tags[', parameters('tagName'), ']')]",
"notIn": "[parameters('listofallowedtagValues')]"
}
]
}
]
},
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/Microsoft.Authorization/roleDefinitions/4a9ae827-6dc8-4573-8ac7-8239d42aa03f"
],
"operations": [
{
"operation": "add",
"field": "[concat('tags[', parameters('tagName'), ']')]",
"value": "[resourceGroup().tags[parameters('tagName')]]"
}
]
}
}
},
"parameters": {
"tagName": {
"type": "String",
"metadata": {
"displayName": "Tag Name",
"description": "The name of the tag, such as 'environment'."
}
},
"listofallowedtagValues": {
"type": "Array",
"metadata": {
"displayName": "Allowed Tag Values",
"description": "The list of allowed values for the tag."
}
}
}
}
关于如何解决这个问题有什么想法吗?
谢谢!
使用允许的值确保和验证标签继承的 Azure 策略。
这是更新后的策略,它会检查指定的标签是否不存在,如果存在,则策略会将资源修改为
inherit
中的标签。resource group
应用策略后,资源已被修复以从资源组继承标签。