提问人:jarvis93 提问时间:11/4/2023 最后编辑:Jahnavijarvis93 更新时间:11/6/2023 访问量:53
如果第一个诊断设置已存在,则拒绝向任何资源添加第二个诊断设置的 Azure 策略
Azure policy to deny adding a second diagnostic setting to any resource if the first diagnostic setting already exists
问:
如果第一个诊断设置已存在,则拒绝向任何资源添加第二个诊断设置的 Azure 策略
我尝试了以下代码,但它似乎没有任何资源详细信息,也不起作用
{
"mode": "All",
"policyRule": {
"if": {
"field": "type",
"equals": "Microsoft.Insights/diagnosticSettings"
},
"then": {
"effect": "deny"
}
},
"parameters": {}
}
答:
0赞
Jahnavi
11/6/2023
#1
如果第一个诊断设置已存在,则拒绝向任何资源添加第二个诊断设置的 Azure 策略:-
Azure 策略如下: 我发现了如何避免添加两个或多个诊断设置。如果至少一个诊断参数已启用并设置为“true”,则策略允许它。
如果资源具有多个诊断设置,且 enabled 设置为“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": {}
}
创建成功:
Azure Policy COUNT
运算符。
评论
0赞
jarvis93
11/8/2023
但我的要求是不同的。我希望它不要创建多个诊断设置(而不是同一诊断设置中的多个设置)
0赞
Jahnavi
11/8/2023
明白了,这就是我检查日志字段的原因。如果启用了日志,则策略应拒绝添加更多日志,这些日志只不过是诊断设置。如果不是这种情况,您能否详细说明您的问题。@jarvis93
0赞
jarvis93
11/9/2023
假设我有一个诊断设置“ds1”,将“审核日志”发送到“xyz”Log Analytics 工作区。我不希望有人创建另一个诊断设置“ds2”,将“Azure Policy 评估详细信息”日志发送到“abc”(或任何其他)Log Analytics 工作区。(你提到的策略拒绝在启用日志归档的情况下创建新的诊断设置。但它不会检查是否存在现有的 ds1。无论是否存在现有设置,它都会拒绝创建)
评论