Политика Azure, требующая создания определенного тега, но не со значением по умолчанию? - PullRequest
0 голосов
/ 03 марта 2019

Есть ли способ создать политику Azure, для которой требуется, чтобы тег существовал в ресурсе при его создании, но не проверял определенное значение?Все примеры, которые я видел, относятся к «проверке наличия тега X и значения Y».

Я хочу просто сообщить пользователю «вам нужно поместить тег X в этот ресурс», поскольку значение определяется пользователем, поэтому я не могу применить конкретное значение.

Например,- Мне нужен "BillingCode" на каждом ресурсе, но только тот, кто создает ресурс, знает свой правильный код оплаты, поскольку он отличается для каждого человека или проекта.

Ответы [ 2 ]

0 голосов
/ 10 марта 2019

Вам нужен оператор exists .

Например:

{
    "policyRule": {
        "if": {
            "field": "[concat('tags[',parameters('tagName'), ']')]",
            "exists": "false"
        },
        "then": {
            "effect": "deny"
        }
    },
    "parameters": {
        "tagName": {
            "type": "String",
            "metadata": {
                "description": "Name of the tag, such as costCenter"
            }
        }
    }
}
0 голосов
/ 03 марта 2019

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

Ниже приведен пример, взятый из здесь .Вы можете изменить этот пример, используя оператор notMatch вместо прямого соответствия ниже. Здесь больше операторов .

{
   "properties": {
      "displayName": "Enforce tag and its value on resource groups",
      "description": "Enforces a required tag and its value on resource groups.",
      "mode": "All",
      "parameters": {
         "tagName": {
            "type": "String",
            "metadata": {
               "description": "Name of the tag, such as costCenter"
            }
         },
         "tagValue": {
            "type": "String",
            "metadata": {
               "description": "Value of the tag, such as headquarter"
            }
         }
      },
      "policyRule": {
         "if": {
            "allOf": [
               {
                  "field": "type",
                  "equals": "Microsoft.Resources/subscriptions/resourceGroups"
               },
               {
                  "not": {
                     "field": "[concat('tags[',parameters('tagName'), ']')]",
                     "equals": "[parameters('tagValue')]"
                  }
               }
            ]
         },
         "then": {
            "effect": "deny"
         }
      }
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...