Azure Policy 表示 Microsoft 管理的资源不合规

问题描述 投票:0回答:1

我创建了一个 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"
},

所以问题是,我如何修复我的策略,以便我能够在订阅级别编辑标签,然后看不到这么多不由我或天蓝色门户管理的不合规资源?

我的政策用例:

  • 如果资源没有任何标签,请从订阅继承它们。
  • 如果资源有标签并且该标签与订阅标签的值匹配,则不执行任何操作。
  • 如果资源的标签值与订阅标签不同,请更新资源的标签以匹配订阅标签。
azure cloud policy azure-policy
1个回答
0
投票

请发布整个政策,而不仅仅是

policyRule

但是,我假设您使用

"mode": "All"
。尝试将其更改为
Indexed

*“该模式确定针对策略定义评估哪些资源类型。支持的模式是:

  • 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

© www.soinside.com 2019 - 2024. All rights reserved.