如果第一个诊断设置已存在,Azure 策略将拒绝向任何资源添加第二个诊断设置

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

如果第一个诊断设置已存在,则 Azure 策略拒绝向任何资源添加第二个诊断设置

我尝试了下面的代码,但它似乎没有任何资源详细信息,并且不起作用

{
    "mode": "All",
    "policyRule": {
        "if": {
            "field": "type",
            "equals": "Microsoft.Insights/diagnosticSettings"
        },
        "then": {
            "effect": "deny"
        }
    },
    "parameters": {}
}
azure azure-policy azure-diagnostics
1个回答
0
投票

如果第一个诊断设置已存在,则 Azure 策略拒绝将第二个诊断设置添加到任何资源:-

Azure 策略如下:我找到了如何避免添加两个或多个诊断设置。如果至少一个诊断参数已启用并设置为“true”,则策略允许。

如果资源具有多个启用设置为“true”的诊断设置,则策略将禁止。

{
  "mode": "All",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Insights/diagnosticSettings"
        },
        {
          "count": {
            "field": "Microsoft.Insights/diagnosticSettings/logs[*]",
            "where": {
              "allOf": [
                {
                  "field": "Microsoft.Insights/diagnosticSettings/logs[*].enabled",
                  "equals": "true"
                }
              ]
            }
          },
          "greater": 1
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  },
  "parameters": {}
}

创建成功:

enter image description here

Azure Policy

COUNT
操作员。

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