эффект denyAction Политика Azure определений

Эффект denyAction используется для блокировки запросов на основе предполагаемого действия для ресурсов в масштабе. Единственным поддерживаемым действием сегодня является DELETE. Это действие и имя действия помогает предотвратить случайное удаление критически важных ресурсов.

Оценка DenyAction

При вызове запроса с соответствующим именем действия и целевым область отправляется, denyAction запрос не будет выполнен. Запрос возвращает 403 (Forbidden). На портале Forbidden можно просмотреть как состояние развертывания, которое было запрещено назначением политики.

Microsoft.Authorization/policyAssignments, Microsoft.Authorization/denyAssignments, Microsoft.Blueprint/blueprintAssignments, Microsoft.Resources/deploymentStacksMicrosoft.Resources/subscriptionsи Microsoft.Authorization/locks все исключены из denyAction принудительного применения, чтобы предотвратить сценарии блокировки.

Удаление подписки

Политика не блокирует удаление ресурсов, которые происходят во время удаления подписки.

Удаление группы ресурсов

Политика оценивает ресурсы, поддерживающие расположение и теги для denyAction политик во время удаления группы ресурсов. Только политики, для которых cascadeBehaviors задано значение deny в правиле политики, блокируют удаление группы ресурсов. Политика не блокирует удаление ресурсов, которые не поддерживают расположение и теги, ни какие-либо политики.mode:all

Каскадная удаление

Каскадное удаление происходит при удалении родительского ресурса неявно удаляет все дочерние ресурсы и ресурсы расширения. Политика не блокирует удаление дочерних ресурсов и ресурсов расширения, если действие удаления предназначено для родительских ресурсов. Например, Microsoft.Insights/diagnosticSettings является ресурсом Microsoft.Storage/storageaccountsрасширения . denyAction Если политика предназначенаMicrosoft.Insights/diagnosticSettings, вызов удаления параметра диагностики (дочернего) завершается сбоем, но удаление учетной записи хранения (родитель) неявно удаляет параметр диагностики (расширение).

В этой таблице описывается, защищается ли ресурс от удаления, учитывая ресурс, применимый к назначенной denyAction политике, и целевой область DELETE вызова. В контексте этой таблицы индексированные ресурсы — это ресурс, поддерживающий теги и расположения, а не индексированные ресурсы — это ресурс, который не поддерживает теги или расположения. Дополнительные сведения об индексированных и неиндексированных ресурсах см. в режиме определения. Дочерними называются ресурсы, существующие только в контексте другого ресурса. Например, ресурс расширения виртуальных машин является дочерним элементом виртуальной машины, являющейся родительским ресурсом.

Удаление сущности Сущность, применимая к условиям политики Предпринятое действие
Ресурс Ресурс Защищено
Отток подписок Ресурс Удален
Группа ресурсов Индексированные ресурсы Зависит от cascadeBehaviors
Группа ресурсов Не индексированные ресурсы Удален
Дочерний ресурс Родительский ресурс Родительский объект защищен; Дочерний элемент удаляется
Родительский ресурс Дочерний ресурс Удален

Свойства DenyAction

Свойство detailsdenyAction эффекта имеет все вложенные свойства, определяющие действие и поведение.

  • actionNames (обязательно)
    • Массив, указывающий действия, которые необходимо предотвратить выполнение.
    • Поддерживаемые имена действий: delete
  • cascadeBehaviors (необязательно)
    • Объект, определяющий, какое поведение следует, когда ресурс неявно удаляется при удалении группы ресурсов.
    • Поддерживается только в определениях политик с заданным indexedрежимом.
    • Допустимые значения: allow или deny.
    • Значение по умолчанию: deny.

Пример DenyAction

Пример. Запретить любые вызовы удаления, предназначенные для учетных записей базы данных с средой тегов, равной prod. Так как каскадное поведение будет запрещено, блокируйте любой DELETE вызов, предназначенный для группы ресурсов с соответствующей учетной записью базы данных.

{
  "if": {
    "allOf": [
      {
        "field": "type",
        "equals": "Microsoft.DocumentDb/accounts"
      },
      {
        "field": "tags.environment",
        "equals": "prod"
      }
    ]
  },
  "then": {
    "effect": "denyAction",
    "details": {
      "actionNames": [
        "delete"
      ],
      "cascadeBehaviors": {
        "resourceGroup": "deny"
      }
    }
  }
}

Следующие шаги