gpt4 book ai didi

Azure 策略拒绝 :if one of the tag not present in the resource group name

转载 作者:行者123 更新时间:2023-12-03 05:45:51 25 4
gpt4 key购买 nike

我已经创建了一个 Azure 策略,如果用户未指定带有键“Env”或“use”的标签,我想拒绝资源组创建

但是当我使用 Env 标签创建资源组时,它会阻止我,只有当我添加 env 和 use 标签时它才允许我。

根据我的理解, azure 策略中的“anyof”被用作“OR”,但我的代码的行为并不相同

{
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Resources/subscriptions/resourceGroups"
},
{
"anyof": [
{
"field": "tags.Env",
"exists": false
},
{
"field": "tags.use",
"exists": false
}
]
}
]
},
"then": {
"effect": "deny"
}
}

根据克里斯的建议,我已经处理了标签名称和值,但它在策略中给了我一个错误,并且没有采取“NOT”

{
"mode": "all",
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Resources/subscriptions/resourceGroups"
},
{
"not":{
{
"field": "tags.Env",
"equals" : "Prod"
},
{
"field": "tags.OS",
"equals" : "windows"
}
}
}
]
},
"then": {
"effect": "deny"
}
},
"parameters": {}
}

最佳答案

现在,正如您提到的,该策略正在评估“tags.Env 不存在或tags.use 不存在”。如果任一标签不存在,您将被拒绝。

如果“tags.Env不存在并且tags.use不存在”,您想要的是拒绝。这意味着它们都丢失了,而这正是您想要阻止的。

{
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Resources/subscriptions/resourceGroups"
},
{
"field": "tags.Env",
"exists": false
},
{
"field": "tags.use",
"exists": false
}
]
},
"then": {
"effect": "deny"
}
}

关于Azure 策略拒绝 :if one of the tag not present in the resource group name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54137098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com