我创建了一个 Azure 策略,它非常适合存储帐户、功能、VM 以及我亲手创建的所有内容:
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"notEquals": "Microsoft.Resources/subscriptions"
},
{
"anyOf": [
{
"field": "[concat('tags[', parameters('tagName1'), ']')]",
"exists": "false"
},
{
"not": {
"field": "[concat('tags[', parameters('tagName1'), ']')]",
"equals": "[subscription().tags[parameters('tagName1')]]"
}
}
]
}
]
},
"then": {
"effect": "modify",
"details": {
"roleDefinitionIds": [
"/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
],
"operations": [
{
"operation": "addOrReplace",
"field": "[concat('tags[', parameters('tagName1'), ']')]",
"value": "[subscription().tags[parameters('tagName1')]]"
}
]
}
}
}
},
问题是我的合规报告中有很多资源不合规。例如,cosmos db 中的角色或 PostgreSQL 中的数据库,在我看来这不应该是一个问题,因为我们不“手动”管理它:
如何省略策略中不应考虑的资源,我的意思是我不通过门户管理的资源?
如果当我添加订阅块以从策略中排除订阅时它会崩溃,以便仍然能够在那里编辑标签(然后继承到资源):
{
"field": "type",
"notEquals": "Microsoft.Resources/subscriptions"
},
所以问题是,我如何修复我的策略,以便我能够在订阅级别编辑标签,然后看不到这么多不由我或天蓝色门户管理的不合规资源?
我的政策用例:
请发布整个政策,而不仅仅是
policyRule
。
但是,我假设您使用
"mode": "All"
。尝试将其更改为 Indexed
。
*“该模式确定针对策略定义评估哪些资源类型。支持的模式是:
https://learn.microsoft.com/en-us/azure/governance/policy/concepts/definition-struct#mode
https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/tag-support