以下是一个策略规则示例,该规则要求您在指定范围内的所有资源上使用您列出的所有标签。 (这可能太多了,测试一下就知道了)
"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"
}
}
请参阅附加到主要问题的我的 cmets。此策略可能过于严格,因为某些 Azure 资源具有内置的默认标记。这些标签也将遵守此合规规则,因此,如果您在大型组织中实施此规则,请小心,您可能会无意中妨碍某些用户。
如果您想将其缩小到一个资源组,您可以在您的策略分配中执行此操作,但是如果您想在您的定义中执行此操作,您可以使用资源类型 Microsoft.Resources/subscriptions/resourceGroups
还可以查看 Azure 内置的其他一些与标签相关的策略。
https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/tag-policies