Необычное поведение политики Azure при создании группы ресурсов без тега
Я применил политику Azure, которая заставляет пользователя назначать тег при создании группы ресурсов.
Когда я создаю новую виртуальную машину, а затем заполняю все поля, я создаю новую группу ресурсов в том же мастере, а затем нажимаю кнопку обзора и создания. На этот раз политика лазури срабатывает правильно и блокирует меня, так как вновь созданная RG не создается с тегом.
Но когда я захожу в групповую политику ресурсов и нажимаю кнопку Добавить, чтобы создать новую RG. тогда я не заполняю теги, тогда и политика не получает триггер. Я не удивлен, почему в первый раз эта политика работает, но не во второй раз.
{
"if": {
"allOf": [
{
"field": "tags",
"exists": "false"
},
{
"field": "type",
"equals": "Microsoft.Resources/subscriptions/resourceGroups"
}
]
},
"then": {
"effect": "deny"
}
}
2 ответа
Похоже, это понятно, это не связано с политикой Azure, ваша политика должна работать нормально, это может быть ошибкой лезвия создания группы ресурсов на портале.
Я пытаюсь создать группу ресурсов через powershell несколько раз, политика работает нормально.
Моя тестовая политика:
Если это необходимо, вы можете открыть вопрос в Github.
Выявленное несоответствие вызвано различиями в представлении 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": {}
будет обходить вашу политику, даже если у нее нет тегов.