Пользовательская политика для применения на теге - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь создать собственную политику, которая будет запрещать на основе значения тега. Тег "external VM". Затем политика позволяет развернуть набор утвержденных расширений. Однако, когда я пытаюсь добавить тег, используя "tag.external vm", он показывает ошибку, которая такая же, как в конце этого эссе (The value of 'field' property 'Tag' of the policy rule must be one of 'Name, Type, Location, Tags, Kind, FullName, Identity.type' or an alias, e.g.).

{
  "mode": "All",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "tag.External VM",
          "equals": "Third Party"
        },
        {
          "field": "Microsoft.Compute/virtualMachines/extensions/publisher",
          "equals": "Microsoft.Compute"
        },
        {
          "field": "Microsoft.Compute/virtualMachines/extensions/type",
          "notin": "[parameters('AllowedExtensions')]"
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  },
  "parameters": {
    "AllowedExtensions": {
      "type": "Array",
      "metadata": {
        "displayName": "AllowedExtensions",
        "description": "Allowed VM Extensions"
      }
    }
 }
}

Файл параметров:

{
    "AllowedExtensions": {
        "type": "Array",
        "metadata": {
            "description": "The list of extensions that will be Allowed.",
            "strongType": "type",
            "displayName": "Allowed extension"
        }
    },
        "tagName": {
        "type": "String",
        "metadata": {
            "description": "The Referenced Tag Name.",
            "displayName": "Tag to Query"
        }
    }
}

Можно ли назначить имя тега с пробелом в нем. Другой вариант заключался в том, чтобы пометить его тегом "external-vm" или параметризовать тэг, например

{
  "field": "[parameters('tagName')]",
  "equals": "Third Party"
},

Но это вызывает у меня ошибку

The value of 'field' property 'Tag' of the policy rule must be one of 'Name, Type, Location, Tags, Kind, FullName, Identity.type' or an alias, e.g. 

Есть мысли?

Заранее спасибо.

1 Ответ

0 голосов
/ 07 апреля 2020

Параметр был неверным

"[concat('tags[', parameters('tagName'), ']')]",

добавление его в качестве параметра разрешило ткань.

...