Azure Политика: удалить блокировку группы ресурсов - PullRequest
1 голос
/ 09 марта 2020

Я пытаюсь использовать политику Azure, чтобы проверить, все ли группы ресурсов в моей производственной подписке имеют блокировку «CanNotDelete».

Я создал политику, вдохновленную этим вопросом , Результат можно найти ниже.

Во время тестирования я обнаружил, что группы ресурсов без блокировки правильно определяются как «несовместимые». Однако, если группа ресурсов содержит ресурс, который имеет выделенную блокировку (Scope = resource, например, только для KeyVault), вся группа ресурсов будет помечена как совместимая - даже если только один ресурс действительно имеет блокировку. Есть ли способ спроектировать existenceCondition так, чтобы блокировка была на всю группу ресурсов?

{
  "mode": "All",
  "policyRule": {
    "if": {
      "field": "type",
      "equals": "Microsoft.Resources/subscriptions/resourceGroups"
    },
    "then": {
      "effect": "deployIfNotExists",
      "details": {
        "type": "Microsoft.Authorization/locks",
        "existenceCondition": {
          "field": "Microsoft.Authorization/locks/level",
          "equals": "CanNotDelete"
        },
        "roleDefinitionIds": [
          "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
          "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
        ],
        "deployment": {
          "properties": {
            "mode": "incremental",
            "template": {
              "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
              "contentVersion": "1.0.0.0",
              "resources": [
                {
                  "type": "Microsoft.Authorization/locks",
                  "apiVersion": "2017-04-01",
                  "name": "ResourceLock",
                  "properties": {
                    "level": "CanNotDelete",
                    "notes": "Prevent accidental deletion of resources"
                  }
                }
              ]
            }
          }
        }
      }
    }
  },
  "parameters": {}
}

1 Ответ

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

Я так не думаю, поскольку в свойстве locks нет ничего, что бы указывало, какой уровень контекста блокируется.

...