我启用了 Azure 策略 [需要资源标签],它正在按预期验证资源创建时的标签,但它也会评估现有资源并显示不合规。
定义
{
"properties": {
"displayName": "Require a tag on resources",
"policyType": "BuiltIn",
"mode": "Indexed",
"description": "Enforces existence of a tag. Does not apply to resource groups.",
"metadata": {
"version": "1.0.1",
"category": "Tags"
},
"version": "1.0.1",
"parameters": {
"tagName": {
"type": "String",
"metadata": {
"displayName": "Tag Name",
"description": "Name of the tag, such as 'environment'"
}
}
},
"policyRule": {
"if": {
"field": "[concat('tags[', parameters('tagName'), ']')]",
"exists": "false"
},
"then": {
"effect": "deny"
}
},
"versions": [
"1.0.1"
]
},
"id": "/providers/Microsoft.Authorization/policyDefinitions/871b6d14-10aa-478d-b590-94f262ecfa99",
"type": "Microsoft.Authorization/policyDefinitions",
"name": "871b6d14-10aa-478d-b590-94f262ecfa99"
}
我已经检查过它对现有资源和新资源都有效。是否有可能只对新资源进行评估?
不,不是具体的新资源。
在实施此类规则时,一种常见的方法是首先解析现有资源,以确保它们符合新的策略限制。您可以将强制级别设置为“审计”来评估其影响。您可以选择使用脚本自动将标签分配给现有资源,一种解决方法是在所有现有资源上注入[Legacy]标签。
然后,仅在标记遗留资源后才启用拒绝强制执行。
另一种方法是将策略强制应用于新的/单独的订阅或特定的资源组。这样可以清晰区分前后操作,并与 Azure 中的许多其他工具和报告选项保持一致。如果您的策略是出于合规性考虑,那么这种方法尤其有用,尤其是在有其他策略需要与同一组资源关联的情况下。
虽然不建议这样做,但可以围绕“创建日期标签”创建策略。
但是,首先您需要创建另一个将“创建日期”标签应用于资源的策略。
请不要将创建日期添加到标签中,即使您在本文和其他文章中找到了相关建议。标签不适合管理唯一值,标签旨在对记录进行分类和分组。Azure 界面旨在鼓励标签的重复使用,如果此列表因过多的唯一日期条目而变得臃肿,则标签系统将无法用于其他真正的标签值。
这是一个如何做的例子,但请不要这样做。;)
这将解决所有新资源的问题,但对回顾没有帮助,您仍然需要为以前的资源编写一个日期,并且只能在90 天后过期之前从活动日志中检索真实日期。