Azure Policy Deny: если один из тегов отсутствует в имени группы ресурсов - PullRequest
0 голосов
/ 11 января 2019

Я создал политику Azure, я хотел отказать в создании группы ресурсов, если пользователь не указал тег с ключом «Env» или «use»

Но когда я создаю группу ресурсов с тегом Env, это блокирует меня, это позволяет мне только, когда я добавляю и тег, и env, и использование.

Согласно моему пониманию, «anyof» в политике Azure используется как «ИЛИ», но мой код не ведет себя так же, как ва

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

Основываясь на предложении Криса, я работал с именем и значениями тега, но он выдает ошибку в политике и не принимает "НЕ"

{
  "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": {}
}

1 Ответ

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

Прямо сейчас, как вы упомянули, политика оценивает, если "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"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...