Политика Azure неправильно ограничивает изменения мощности SQL

У меня есть специальная политика Azure, позволяющая ограничить базы данных SQL определенными мощностями. Среда полностью состоит из баз данных уровней «Базовый» и «Стандартный» — для обеспечения этого существует еще одна (работающая!) Политика.

{
  "mode": "All",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "equals": "Microsoft.Sql/servers/databases",
          "field": "type"
        },
        {
          "field": "Microsoft.Sql/servers/databases/sku.capacity",
          "notIn": ["5", "10"]
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  }
}

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

Попробовал заменить массив параметром и попытался передать мощности в виде строк или целых чисел - ничего не изменилось, политика всегда блокирует действие. Целевые ресурсы отображаются в пользовательском интерфейсе соответствия политике, но всегда не соответствуют требованиям.

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Политика Azure неправильно ограничивает изменения мощности SQL.

Я также проверил вашу политику с тем же полем, но она блокирует все capacities вместо 5 и 10.

Microsoft.Sql/servers/databases/sku.capacity

Альтернативно вы можете использовать приведенную ниже политику, чтобы ограничить SQL database, если номера емкости 5 и 10 не указаны.

Вот cmd, чтобы проверить список capacity's в конкретном регионе.

az sql db list-editions -l eastus -o table

В соответствии с вашими требованиями вы хотите разрешить только мощности 5 и 10. Ниже приведены SKU с номерами емкости 5 и 10.

Free,Basic,S0,GP_Gen5_10,GP_S_Gen5_10,BC_Gen5_10,BC_DC_10,HS_DC_10,HS_MOPRMS_10,HS_PRMS_10,HS_Gen5_10

Политика Azure:

{
  "mode": "All",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Sql/servers/databases"
        },
        {
          "not": {
            "field": "Microsoft.Sql/servers/databases/sku.name",
            "in": "[parameters('allowedSkus')]"
          }
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  },
  "parameters": {
    "allowedSkus": {
      "type": "Array",
      "metadata": {
        "displayName": "Allowed SKUs",
        "description": "The list of allowed SKUs for SQL databases."
      },
      "allowedValues": [
        "Free",
        "Basic",
        "S0",
        "GP_Gen5_10",
        "GP_S_Gen5_10",
        "BC_Gen5_10",
        "BC_DC_10",
        "HS_DC_10",
        "HS_MOPRMS_10",
        "HS_PRMS_10",
        "HS_Gen5_10"
      ]
    }
  }
}

Политика блокирует создание базы данных SQL, если я выбираю любую емкость, кроме 5 и 10.

Политика принимает создание ресурсов, если я выбираю номера мощности 5 и 10.

Другие вопросы по теме