Поделиться через


Политика Azure эффект аудитаIfNotExists

Эффект auditIfNotExists позволяет проверять ресурсы , связанные с ресурсом, соответствующим if условию, но не имеют свойств, указанных в details условии then .

Оценка AuditIfNotExists

auditIfNotExists выполняется после обработки запроса на создание или обновление ресурса поставщика ресурсов и возвращает код состояния успешного выполнения. Аудит возникает, если нет связанных ресурсов или если ресурсы, определенные ExistenceCondition не оцениваются как истинные. Для новых и обновленных ресурсов Политика Azure добавляет операцию Microsoft.Authorization/policies/audit/action в журнал действий и помечает ресурс как несоответствующий. При активации ресурс if , удовлетворяющий условию, является ресурсом, помеченным как несоответствующий.

Свойства AuditIfNotExists

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

  • type (обязательно)
    • Указывает тип связанного ресурса для сопоставления.
    • Если type тип ресурса находится под ресурсом if условия, политика запрашивает ресурсы этого type в область вычисляемого ресурса. В противном случае запросы политики в той же группе ресурсов или подписке, что и вычисляемого ресурса, в зависимости от того existenceScope,
  • name (необязательно)
    • Указывает точное имя сопоставляемого ресурса. При этом политика получает определенный ресурс, а не все ресурсы указанного типа.
    • Если значения условий для if.field.type и then.details.type сопоставления, то он name становится обязательным и должен быть [field('name')]или [field('fullName')] дочерним ресурсом. Однако вместо этого следует учитывать действие audit.

Примечание.

type и name сегменты можно объединить для универсального извлечения вложенных ресурсов.

Чтобы получить определенный ресурс, можно использовать "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType" и "name": "parentResourceName/nestedResourceName".

Чтобы получить коллекцию вложенных ресурсов, вместо сегмента фамилии можно указать дикий символ ? карта. Например, "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType" и "name": "parentResourceName/?". Это можно объединить с функциями полей для доступа к ресурсам, связанным с вычисляемого ресурса, например "name": "[concat(field('name'), '/?')]".

  • resourceGroupName (необязательно)
    • Позволяет сопоставить связанный ресурс из другой группы ресурсов.
    • Не применяется, если type это ресурс, который будет находиться под ресурсом if условия.
    • По умолчанию используется if группа ресурсов ресурса условия.
  • existenceScope (необязательно)
    • Допустимые значения: Subscription и ResourceGroup.
    • Задает область, из которой требуется получить связанный ресурс для сопоставления.
    • Не применяется, если type это ресурс, который будет находиться под ресурсом if условия.
    • Для ResourceGroup следует ограничить группу ресурсов, resourceGroupName если задано. Если resourceGroupName он не указан, будет ограничиваться if группой ресурсов условия, которая является поведением по умолчанию.
    • Если задано значение Subscription, запрос применяется ко всей подписке для связанного ресурса. Для правильного вычисления область назначения должна быть задана в подписке или на более высоком уровне.
    • По умолчанию задано значение ResourceGroup.
  • evaluationDelay (необязательно)
    • Указывает, когда следует оценивать наличие связанных ресурсов. Задержка используется только для оценок, которые являются результатом запроса на создание или обновление ресурса.
    • Допустимые значения: AfterProvisioning, AfterProvisioningSuccess, AfterProvisioningFailure, или длительность ISO 8601 в диапазоне от 0 до 360 минут.
    • Значения AfterProvisioning проверяют результат подготовки ресурса, который был оценен в условии правила if политики. AfterProvisioning запускается после завершения подготовки, независимо от результата. Подготовка, которая занимает более шести часов, рассматривается как сбой при определении задержек оценки AfterProvisioning .
    • По умолчанию используется значение PT10M (10 минут).
    • Указание длительной задержки оценки может привести к тому, что зарегистрированное состояние соответствия ресурса не обновляется до следующего триггера оценки.
  • existenceCondition (необязательно)
    • Если это не указано, любой связанный type ресурс удовлетворяет эффекту и не активирует аудит.
    • Использует тот же язык, что и правило политики для if условия, но вычисляется по отдельности для каждого связанного ресурса.
    • Если при оценке какого-либо связанного ресурса возвращается значение true, то действие не вызывает аудит.
    • Можно использовать [field()] для проверка эквивалентности со значениями в условииif.
    • Например, можно использовать для проверки того, что родительский ресурс (в if условии) находится в том же расположении ресурса, что и соответствующий связанный ресурс.

Пример AuditIfNotExists

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

{
  "if": {
    "field": "type",
    "equals": "Microsoft.Compute/virtualMachines"
  },
  "then": {
    "effect": "auditIfNotExists",
    "details": {
      "type": "Microsoft.Compute/virtualMachines/extensions",
      "existenceCondition": {
        "allOf": [
          {
            "field": "Microsoft.Compute/virtualMachines/extensions/publisher",
            "equals": "Microsoft.Azure.Security"
          },
          {
            "field": "Microsoft.Compute/virtualMachines/extensions/type",
            "equals": "IaaSAntimalware"
          }
        ]
      }
    }
  }
}

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