gpt4 book ai didi

创建没有标记的资源组时,Azure Policy 出现奇怪的行为

转载 作者:行者123 更新时间:2023-12-03 01:40:33 26 4
gpt4 key购买 nike

我应用了 Azure 策略,强制用户在创建资源组时分配标签。

当我创建一个新的虚拟机然后填写所有字段时,我在同一向导中创建一个新的资源组,然后单击“查看并创建”按钮。这次,Azure 策略被正确触发并阻止了我,因为新创建的 RG 不是使用标签创建的。

但是当我转到资源组策略并单击“添加”以创建新的 RG 时。那一次我没有填写标签,那么政策也没有得到触发。我并不奇怪为什么这个政策第一次有效但第二次却不起作用。

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

最佳答案

您遇到的差异是由资源组的 JSON 表示形式的差异引起的。

根据您在门户中单击的内容,资源组 JSON 可能没有标签属性,例如:

{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/foo",
"name": "foo",
"location": "eastus",
"properties": {
"provisioningState": "Succeeded"
}
}

其他时候可能会使用空的标签属性创建它,例如:

{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/foo",
"name": "foo",
"location": "eastus",
"properties": {
"provisioningState": "Succeeded"
},
"tags": {}
}

策略规则中的 "exists": "false" 条件仅在“tags”属性缺失或为 null 时才会触发,因此具有 “tags”的资源组: {} 将绕过您的政策,即使它没有任何标签。

关于创建没有标记的资源组时,Azure Policy 出现奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54121910/

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