Необычное поведение политики Azure при создании группы ресурсов без тега - PullRequest
0 голосов
/ 10 января 2019

Я применил политику Azure, которая заставляет пользователя назначать тег при создании группы ресурсов.

Когда я создаю новую виртуальную машину и затем заполняю все поля, я создаю новую группу ресурсов в том же мастере, а затем нажимаю кнопку обзора и создания. На этот раз политика Azure срабатывает должным образом и блокирует меня, поскольку вновь созданная RG не создается с тегом.

Но когда я захожу в групповую политику ресурсов и нажимаю кнопку Добавить, чтобы создать новую RG. тогда я не заполняю теги, тогда и политика не получает триггер. Я не удивлен, почему в первый раз эта политика работает, но не во второй раз.

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

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Расхождение, которое вы испытываете, вызвано различиями в представлении 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": {} будет обходить вашу политику, даже если у нее нет тегов.

0 голосов
/ 10 января 2019

Похоже, вы понимаете, это не связано с политикой Azure, ваша политика должна работать нормально, это может быть ошибкой лезвия создания группы ресурсов на портале.

Я пытаюсь создать группу ресурсов через powershell несколько раз, политика работает нормально.

enter image description here

Моя политика тестирования:

enter image description here

Если это необходимо, вы можете открыть вопрос в Github .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...