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


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

Эффект audit используется для создания события предупреждения в журнале действий при оценке несоответствующего ресурса, но он не останавливает запрос.

Оценка аудита

Аудит — это последнее действие проверки политики при создании или обновлении ресурса. В режиме Resource Manager Политика Azure затем отправляет ресурс в поставщик ресурсов. При оценке запроса на создание или обновление ресурса Политика Azure добавляет операцию Microsoft.Authorization/policies/audit/action в журнал действий и помечает ресурс как несоответствующий. В ходе стандартного цикла оценки соответствия обновляется только состояние соответствия для ресурса.

Свойства аудита

В режиме Resource Manager эффект аудита не имеет других свойств для использования в then условии определения политики.

Для режима Microsoft.Kubernetes.Dataпоставщика ресурсов эффект аудита имеет следующие вложенные ресурсы details. Использование параметра templateInfo является обязательным для новых или обновленных определений политик, так как constraintTemplate является устаревшим.

  • templateInfo (обязательно)

    • Не может использоваться с constraintTemplate.
    • sourceType (обязательно)
      • Определяет тип источника для шаблона ограничения. Допустимые значения: PublicURL или Base64Encoded.

      • Значение if PublicURL, парное с свойством url , чтобы указать расположение шаблона ограничения. Расположение должно быть общедоступным.

        Предупреждение

        Не используйте URI SAS, маркеры URL-адресов или что-либо другое, которое может предоставлять секреты в виде обычного текста.

      • Значение if Base64Encoded, парированное со свойством content для предоставления шаблона ограничения в кодировке Base 64. См. раздел "Создание определения политики из шаблона ограничения", чтобы создать пользовательское определение из существующего шаблона ограничения "Агент политики Open Policy Agent( OPA) версии 3.

  • constraint (не рекомендуется)

    • Не может использоваться с templateInfo.
    • Реализация CRD шаблона ограничения. Использует параметры, передаваемые через values как {{ .Values.<valuename> }}. В приведенном ниже примере 2 это значения {{ .Values.excludedNamespaces }} и {{ .Values.allowedContainerImagesRegex }}.
  • constraintTemplate (не рекомендуется)

    • Не может использоваться с templateInfo.
    • Необходимо заменить на templateInfo при создании или обновлении определения политики.
    • Шаблон ограничения CustomResourceDefinition (CRD), который определяет новые ограничения. Шаблон определяет логику Rego, схему ограничения и параметры ограничения, передаваемые через values Политика Azure. Дополнительные сведения см. в ограничениях Gatekeeper.
  • constraintInfo (необязательно)

    • Нельзя использовать с constraint, constraintTemplate, scopekindsnamespacesapiGroups, excludedNamespacesили .labelSelector
    • Если constraintInfo это не указано, ограничение можно создать из templateInfo и политики.
    • sourceType (обязательно)
      • Определяет тип источника для ограничения. Допустимые значения: PublicURL или Base64Encoded.

      • Значение if PublicURL, в сочетании с свойством url для предоставления расположения ограничения. Расположение должно быть общедоступным.

        Предупреждение

        Не используйте URI или маркеры SAS в url или другие объекты, которые могут предоставить доступ к секрету.

  • namespaces (необязательно)

    • Массивпространства имен Kubernetes, которым ограничивается вычисление политики.
    • Пустое или отсутствующее значение приводит к тому, что оценка политики включает все пространства имен, не определенные в исключенных пространствахname.
  • excludedNamespaces (необязательно)

  • labelSelector (необязательно)

    • Объект, содержащий свойства matchLabels (объект) и matchExpression (массив), чтобы разрешить указывать ресурсы Kubernetes, которые следует включить в вычисление политики, сопоставленное с указанными метками и селекторами.
    • Пустое или отсутствующее значение приводит к тому, что вычисление политики будет включать все метки и селекторы, за исключением определенных в ExcludedNamespaces.
  • scope (необязательно)

    • Строка, содержащая свойство область, позволяющее указать, совпадают ли ресурсы кластера с область или пространства имен область.
  • apiGroups (требуется при использовании templateInfo)

    • Массив, содержащий группы API для сопоставления. Пустой массив ([""]) — это основная группа API.
    • Определение ["*"] для apiGroups запрещено.
  • kinds (требуется при использовании templateInfo)

    • Массив, включающий тип объекта Kubernetes, которым ограничивается вычисление.
    • Определение ["*"] для параметра kinds запрещено.
  • values (необязательно)

    • Определяет все параметры и значения, передаваемые ограничению. Каждое значение должно существовать и соответствовать свойству в разделе проверки openAPIV3Schema шаблона ОГРАНИЧЕНИЯ CRD.

Пример аудита

Пример 1. Использование эффекта аудита для режимов Resource Manager.

"then": {
  "effect": "audit"
}

Пример 2. Использование эффекта аудита для режима поставщика ресурсов Microsoft.Kubernetes.Data. Дополнительные сведения, приведенные в details.templateInfo объявлении использования PublicURL и задает url расположение шаблона ограничения для использования в Kubernetes для ограничения разрешенных образов контейнеров.

"then": {
  "effect": "audit",
  "details": {
    "templateInfo": {
      "sourceType": "PublicURL",
      "url": "https://store.policy.core.windows.net/kubernetes/container-allowed-images/v1/template.yaml",
    },
    "values": {
      "imageRegex": "[parameters('allowedContainerImagesRegex')]"
    },
    "apiGroups": [
      ""
    ],
    "kinds": [
      "Pod"
    ]
  }
}

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