Вот пример правила политики, которое потребует наличия всех перечисленных вами тегов на ВСЕХ ресурсах в назначенной области. (Это может быть слишком много, проверьте это и узнайте)
"policyRule": {
"if": {
"anyOf": [
{
"field": "tags['application']",
"exists": false
},
{
"field": "tags['owner']",
"exists": false
},
{
"field": "tags['environment']",
"exists": false
},
{
"field": "tags['description']",
"exists": false
},
{
"field": "tags['team']",
"exists": false
}
]
},
"then": {
"effect": "deny"
}
}
Вот пример, который сузит его до типа ресурса. Только виртуальные машины.
"policyRule": {
"if": {
"allOf":[
{
"field": "type",
"equals": "Microsoft.Compute/virtualMachines"
},
"anyOf": [
{
"field": "tags['application']",
"exists": false
},
{
"field": "tags['owner']",
"exists": false
},
{
"field": "tags['environment']",
"exists": false
},
{
"field": "tags['description']",
"exists": false
},
{
"field": "tags['team']",
"exists": false
}
]
]
},
"then": {
"effect": "deny"
}
}
Смотрите мои комментарии к основному вопросу. Эта политика может быть слишком строгой, поскольку некоторые ресурсы Azure имеют встроенные теги по умолчанию. Эти теги также будут соответствовать этому правилу соответствия, поэтому будьте осторожны, если вы внедряете это в большой организации, вы можете непреднамеренно нанести ущерб некоторым пользователям.
Если вы хотите сузить его до группы ресурсов, вы можете сделать это в своем назначении политики, однако, если вы хотите сделать это в своем определении, вы можете использовать тип ресурса Microsoft.Resources/subscriptions/resourceGroups
Также ознакомьтесь с некоторыми другими политиками, связанными с тегами, которые встроены в Azure. https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/tag-policies
person
Rob S.
schedule
09.12.2020