Azure политика, заставляющая использовать Elasti c Pool в любой новой базе данных - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь создать политику, которая будет блокировать выпуск базы данных в группу ресурсов, если в ее настройках нет пула Elasti c. К сожалению, каждая попытка установить условия заканчивается блокировкой выпусков баз данных, независимо от того, включена ли у них эта опция или нет. Я пробовал использовать в качестве параметра различные типы полей (начиная с самого простого примера):

 "if": {
         "allOf": [
          {
            "field": "type",
            "notEquals": "Microsoft.Sql/servers/elasticPools"
       },
       "then": {
         "effect": "Deny"
       }

, но каждый раз терпит неудачу. Как правильно сформулировать условие в JSON для работы политики? Может у кого-то есть пример готовой конфигурации? Может, где-нибудь есть пример готовой конфигурации?

Ответы [ 2 ]

1 голос
/ 18 августа 2020

Я работаю над аналогичной проблемой, и мне кажется, что фильтр должен быть более явным, чтобы он работал правильно. Вы можете видеть из приведенного ниже примера, я фильтрую по базам данных И отсутствие значения ElasticPoolID ...

  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.Sql/servers/databases"
      },
      {
        "not": {
          "field": "Microsoft.Sql/servers/databases/elasticPoolId",
          "exists": "true"
        }
      }
    ]
  },
  "then": {
    "effect": "audit"
  }

Я еще не пробовал отрицать создание, но, похоже, он работает при аудите существующие БД.

0 голосов
/ 21 мая 2020

Вам не хватает закрытой скобки для всего. Вы должны иметь возможность сделать это: "if": {"field": "type", "notEquals": "Microsoft.Sql / servers / elasticPools"}, "then": {"effect": "Deny"}

...