Стадия жизненного цикла модуля: General Availability

Что такое Audit Policy

Audit Policy — это YAML-файл, который определяет, какие события должен записывать API-сервер.
Когда происходит запрос, Kubernetes проверяет его на соответствие правилам в файле.
Первое сработавшее правило определяет уровень логирования.

Структура политики

Документация Kubernetes Структура полей ресурса Policy

Политика аудита в Kubernetes задается в файле формата YAML и состоит из набора правил, определяющих какие события и с каким уровнем детализации будут зафиксированы в журнале. Файл имеет следующую структуру:

apiVersion: audit.k8s.io/v1  # Версия API, используемая для политики аудита
kind: Policy                 # Тип ресурса — всегда Policy
rules:                       # Набор правил для аудита
  - level:                     # Уровень детализации логов. Обязательное поле
    users:                     # Список пользователей, чьи действия логируются
    userGroups:                # Группы пользователей (например, system:serviceaccounts)
    verbs:                     # Действия/операции, которые логируются (create, update, delete и т.д.)
    resources:                 # Ресурсы Kubernetes, для которых применяется правило
    namespaces:                # Неймспейсы, которые охватывает правило

Массив rules описывает правила аудита. Каждое правило содержит следующие поля:

  • level — уровень детализации логируемого события. Возможные значения (от наиболее детализированного к наименее):
    • None — не логировать вообще,
    • Metadata — только метаданные запроса (кто, когда, что, откуда; без содержимого объекта),
    • Request — также сохраняет тело запроса (только для запросов на изменение),
    • RequestResponse — сохраняет и тело запроса и содержимое ответа.
  • users — перечень имен пользователей, на которых действует правило (например, ["admin"]). Если это сервисные аккаунты, то имя обычно выглядит как system:serviceaccount:<namespace>:<serviceaccount-name>. Для обычных пользователей имя зависит от настроек системы аутентификации. Для объектов deckhouse.io/v1 Users в качестве имени используется email.

  • userGroups — группы пользователей (например, ["system:authenticated"]). После аутентификации kube-apiserver присваивает каждому пользователю список групп (например, все аутентифицированные пользователи — часть system:authenticated, сервисные аккаунты — в дополнительных группах). Если запрос пришёл от пользователя, который состоит хотя бы в одной из групп, указанных в userGroups, то правило применяется к этому запросу.

    Встроенные группы Kubernetes:

    • system:authenticated — все, кто прошёл аутентификацию.
    • system:unauthenticated — запросы от анонимных пользователей.
    • system:serviceaccounts — все сервисные аккаунты всех namespaces.
    • system:serviceaccounts:<namespace> — сервисные аккаунты в конкретном namespace.
  • verbs — список операций API (get, list, create, delete и т.д.).

  • resources — массив целевых ресурсов:
    • group — API-группа (например, "apps", "batch", "" для core),
    • resources — виды ресурсов (например, ["pods", "deployments"]). Полный перечень ресурсов и их групп может быть получен с помощью команды kubectl api-resources.
  • namespaces — массив неймспейсов, в которых применяется правило.

  • nonResourceURLs —— набор URL-путей, подлежащих аудиту. Символ * разрешен, но только в качестве полного, последнего шага пути. Примеры:
    • /metrics — регистрировать запросы к метрикам apiserver,
    • /healthz* — регистрировать все health-запросы.

Встроенные правила аудита

В Deckhouse Kubernetes Platform (DKP) по умолчанию разворачивается базовая политика аудита, которая может быть дополнена пользовательскими правилами.

В этой политике реализованы следующие правила:

Манифесты правил

1. Не логировать частые обновления Endpoints, EndpointSlices и Events.

level: None
resources:
  - resources:
      - endpoints
      - endpointslices
      - events

2. Не логировать операции выбора лидера на ресурсах Lease.

level: None
resources:
  - group: coordination.k8s.io
    resources:
      - leases

3. Не логировать ConfigMap cert-manager, используемые для выбора лидера.

level: None
resources:
  - resources:
      - configmaps
    resourceNames:
      - cert-manager-cainjector-leader-election
      - cert-manager-controller

4. Не логировать ресурсы VerticalPodAutoscalerCheckpoints.

level: None
resources:
  - group: autoscaling.k8s.io
    resources:
      - verticalpodautoscalercheckpoints

5. Не логировать PATCH-операции VerticalPodAutoscaler от recommender.

level: None
users:
  - system:serviceaccount:kube-system:d8-vertical-pod-autoscaler-recommender
verbs:
  - patch
resources:
  - group: autoscaling.k8s.io
    resources:
      - verticalpodautoscalers

6. Не логировать ресурсы UpmeterHookProbes.

level: None
resources:
  - group: deckhouse.io
    resources:
      - upmeterhookprobes

7. Не логировать любые операции в неймспейсе d8-upmeter.

level: None
namespaces:
  - d8-upmeter

8. Не логировать обновления ConfigMap ingress-nginx для выборов лидера.

level: None
users:
  - system:serviceaccount:d8-ingress-nginx:ingress-nginx
verbs:
  - update
resources:
  - resources:
      - configmaps
namespaces:
  - d8-ingress-nginx

9. Не логировать операции create/delete AuthRequest от health-check dex.

level: None
users:
  - system:serviceaccount:d8-user-authn:dex
verbs:
  - create
  - delete
resources:
  - group: dex.coreos.com
    resources:
      - authrequests
namespaces:
  - d8-user-authn

10. Логировать операции create/delete для ресурсов Node с телом запроса/ответа.

level: RequestResponse
verbs:
  - create
  - delete
resources:
  - resources:
      - nodes

11. Логировать запросы kubectl logs (pods/log) на уровне Metadata.

level: Metadata
resources:
  - resources:
      - pods/log

12. Логировать операции create/update/patch/delete от системных ServiceAccount (kube-system, d8-*).

level: Metadata
users:
  - system:serviceaccount:d8-cert-manager:cainjector
  - system:serviceaccount:d8-cert-manager:cert-manager
  - system:serviceaccount:d8-cert-manager:webhook
  - system:serviceaccount:d8-chrony:chrony-exporter
  - system:serviceaccount:d8-chrony:chrony-exporter-master
  - system:serviceaccount:d8-cloud-instance-manager:caps-controller-manager
  - system:serviceaccount:d8-cloud-instance-manager:cluster-autoscaler
  - system:serviceaccount:d8-cloud-instance-manager:fencing-agent
  - system:serviceaccount:d8-cloud-instance-manager:integrity-containerd-configurator
  - system:serviceaccount:d8-cloud-instance-manager:integrity-controller
  - system:serviceaccount:d8-cloud-instance-manager:machine-controller-manager
  - system:serviceaccount:d8-cloud-instance-manager:node-controller
  - system:serviceaccount:d8-cloud-instance-manager:node-feature-discovery-gc
  - system:serviceaccount:d8-cloud-instance-manager:node-feature-discovery-master
  - system:serviceaccount:d8-cloud-instance-manager:node-feature-discovery-worker
  - system:serviceaccount:d8-cloud-instance-manager:node-group
  - system:serviceaccount:d8-cloud-instance-manager:node-group-exporter
  - system:serviceaccount:d8-cloud-instance-manager:nvidia-dcgm-exporter
  - system:serviceaccount:d8-cloud-instance-manager:nvidia-device-plugin
  - system:serviceaccount:d8-cloud-instance-manager:nvidia-gpu-feature-discovery
  - system:serviceaccount:d8-cloud-instance-manager:nvidia-mig-manager
  - system:serviceaccount:d8-cloud-instance-manager:registry-packages-proxy
  - system:serviceaccount:d8-cloud-provider-aws:cloud-controller-manager
  - system:serviceaccount:d8-cloud-provider-aws:cloud-data-discoverer
  - system:serviceaccount:d8-cloud-provider-aws:node-termination-handler
  - system:serviceaccount:d8-cloud-provider-azure:cloud-controller-manager
  - system:serviceaccount:d8-cloud-provider-azure:cloud-data-discoverer
  - system:serviceaccount:d8-cloud-provider-dvp:capdvp-controller-manager
  - system:serviceaccount:d8-cloud-provider-dvp:cloud-controller-manager
  - system:serviceaccount:d8-cloud-provider-dvp:cloud-data-discoverer
  - system:serviceaccount:d8-cloud-provider-dvp:validation-webhook
  - system:serviceaccount:d8-cloud-provider-dynamix:capd-controller-manager
  - system:serviceaccount:d8-cloud-provider-dynamix:cloud-controller-manager
  - system:serviceaccount:d8-cloud-provider-dynamix:cloud-data-discoverer
  - system:serviceaccount:d8-cloud-provider-gcp:cloud-controller-manager
  - system:serviceaccount:d8-cloud-provider-gcp:cloud-data-discoverer
  - system:serviceaccount:d8-cloud-provider-huaweicloud:caphc-controller-manager
  - system:serviceaccount:d8-cloud-provider-huaweicloud:cloud-controller-manager
  - system:serviceaccount:d8-cloud-provider-huaweicloud:cloud-data-discoverer
  - system:serviceaccount:d8-cloud-provider-openstack:capo-controller-manager
  - system:serviceaccount:d8-cloud-provider-openstack:cloud-controller-manager
  - system:serviceaccount:d8-cloud-provider-openstack:cloud-data-discoverer
  - system:serviceaccount:d8-cloud-provider-vcd:capcd-controller-manager
  - system:serviceaccount:d8-cloud-provider-vcd:cloud-controller-manager
  - system:serviceaccount:d8-cloud-provider-vcd:cloud-data-discoverer
  - system:serviceaccount:d8-cloud-provider-vcd:infra-controller-manager
  - system:serviceaccount:d8-cloud-provider-vsphere:cloud-controller-manager
  - system:serviceaccount:d8-cloud-provider-vsphere:cloud-data-discoverer
  - system:serviceaccount:d8-cloud-provider-yandex:capy-controller-manager
  - system:serviceaccount:d8-cloud-provider-yandex:cloud-controller-manager
  - system:serviceaccount:d8-cloud-provider-yandex:cloud-data-discoverer
  - system:serviceaccount:d8-cloud-provider-yandex:cloud-metrics-exporter
  - system:serviceaccount:d8-cloud-provider-zvirt:capz-controller-manager
  - system:serviceaccount:d8-cloud-provider-zvirt:cloud-controller-manager
  - system:serviceaccount:d8-cloud-provider-zvirt:cloud-data-discoverer
  - system:serviceaccount:d8-cni-cilium:agent
  - system:serviceaccount:d8-cni-cilium:egress-gateway-agent
  - system:serviceaccount:d8-cni-cilium:operator
  - system:serviceaccount:d8-cni-cilium:relay
  - system:serviceaccount:d8-cni-cilium:safe-agent-updater
  - system:serviceaccount:d8-cni-cilium:ui
  - system:serviceaccount:d8-cni-flannel:cni-flannel
  - system:serviceaccount:d8-cni-simple-bridge:cni-simple-bridge
  - system:serviceaccount:d8-csi-vsphere:cloud-data-discoverer
  - system:serviceaccount:d8-descheduler:descheduler
  - system:serviceaccount:d8-istio:alliance-healthcheck
  - system:serviceaccount:d8-istio:alliance-ingressgateway
  - system:serviceaccount:d8-istio:alliance-metadata-exporter
  - system:serviceaccount:d8-istio:cni
  - system:serviceaccount:d8-istio:config-analyzer
  - system:serviceaccount:d8-istio:ingress-gateway-controller
  - system:serviceaccount:d8-istio:kiali
  - system:serviceaccount:d8-istio:multicluster-api-proxy
  - system:serviceaccount:d8-istio:multicluster-metrics-exporter
  - system:serviceaccount:d8-istio:waypoint-controller
  - system:serviceaccount:d8-istio:ztunnel
  - system:serviceaccount:d8-local-path-provisioner:local-path-provisioner
  - system:serviceaccount:d8-metallb:controller
  - system:serviceaccount:d8-metallb:l2lb-controller
  - system:serviceaccount:d8-metallb:l2lb-speaker
  - system:serviceaccount:d8-metallb:speaker
  - system:serviceaccount:d8-multitenancy-manager:multitenancy-manager
  - system:serviceaccount:d8-openvpn:openvpn
  - system:serviceaccount:d8-service-with-healthchecks:agent
  - system:serviceaccount:d8-service-with-healthchecks:controller
  - system:serviceaccount:d8-system:deckhouse
  - system:serviceaccount:d8-system:documentation
  - system:serviceaccount:d8-system:network-policy-engine
  - system:serviceaccount:d8-system:registry-nodeservices
  - system:serviceaccount:d8-system:terraform-auto-converger
  - system:serviceaccount:d8-system:terraform-state-exporter
  - system:serviceaccount:d8-system:webhook-handler
  - system:serviceaccount:d8-user-authn:basic-auth-proxy
  - system:serviceaccount:d8-user-authn:dex
  - system:serviceaccount:d8-user-authz:permission-browser-apiserver
  - system:serviceaccount:d8-user-authz:webhook
  - system:serviceaccount:kube-system:d8-control-plane-manager
  - system:serviceaccount:kube-system:d8-control-plane-manager-control-plane-proxy
  - system:serviceaccount:kube-system:d8-kube-dns
  - system:serviceaccount:kube-system:d8-kube-proxy
  - system:serviceaccount:kube-system:d8-node-local-dns
  - system:serviceaccount:kube-system:d8-vertical-pod-autoscaler-admission-controller
  - system:serviceaccount:kube-system:d8-vertical-pod-autoscaler-recommender
  - system:serviceaccount:kube-system:d8-vertical-pod-autoscaler-updater
  - system:serviceaccount:kube-system:node-local-dns-safe-updater
  - system:serviceaccount:kube-system:stale-dns-connections-cleaner
userGroups:
  - system:serviceaccounts
verbs:
  - create
  - update
  - patch
  - delete
omitStages:
  - RequestReceived

13. Логировать операции create/update/patch/delete для ресурсов Pod.

level: Request
verbs:
  - create
  - delete
  - patch
  - update
resources:
  - resources:
      - pods
omitStages:
  - RequestReceived

14. Логировать операции create/update/patch/delete в системных неймспейсах (kube-system, d8-*).

level: Metadata
verbs:
  - create
  - update
  - patch
  - delete
namespaces:
  - d8-admission-policy-engine
  - d8-cert-manager
  - d8-chrony
  - d8-cloud-instance-manager
  - d8-cloud-provider-aws
  - d8-cloud-provider-azure
  - d8-cloud-provider-dvp
  - d8-cloud-provider-dynamix
  - d8-cloud-provider-gcp
  - d8-cloud-provider-huaweicloud
  - d8-cloud-provider-openstack
  - d8-cloud-provider-vcd
  - d8-cloud-provider-vsphere
  - d8-cloud-provider-yandex
  - d8-cloud-provider-zvirt
  - d8-cni-cilium
  - d8-cni-flannel
  - d8-cni-simple-bridge
  - d8-csi-vsphere
  - d8-descheduler
  - d8-istio
  - d8-keepalived
  - d8-local-path-provisioner
  - d8-metallb
  - d8-monitoring
  - d8-multitenancy-manager
  - d8-network-gateway
  - d8-okmeter
  - d8-openvpn
  - d8-service-with-healthchecks
  - d8-system
  - d8-user-authn
  - d8-user-authz
  - kube-system
omitStages:
  - RequestReceived

15. Логировать все LIST-запросы во всех неймспейсах.

level: Metadata
verbs:
  - list

16. Логировать операции create/delete для ресурсов ServiceAccount.

level: Metadata
verbs:
  - create
  - delete
resources:
  - resources:
      - serviceaccounts
omitStages:
  - RequestReceived

17. Логировать операции create/update/delete/patch для ресурсов Role и ClusterRole.

level: Request
verbs:
  - create
  - update
  - delete
  - patch
resources:
  - group: rbac.authorization.k8s.io
    resources:
      - roles
      - clusterroles
omitStages:
  - RequestReceived

18. Логировать операции create/update/delete для ресурсов ClusterRoleBinding.

level: Request
verbs:
  - create
  - update
  - delete
resources:
  - group: rbac.authorization.k8s.io
    resources:
      - clusterrolebindings
omitStages:
  - RequestReceived

19. Логировать операции с pod subresource для attach и ephemeral-контейнеров.

level: Request
verbs:
  - get
  - patch
  - create
resources:
  - resources:
      - pods/attach
      - pods/ephemeralcontainers
omitStages:
  - RequestReceived

20. Логировать создание ресурсов VirtualMachineOperation с телом запроса/ответа.

level: RequestResponse
verbs:
  - create
resources:
  - group: virtualization.deckhouse.io
    resources:
      - virtualmachineoperations

21. Логировать операции create/update/patch/delete для ресурсов virtualization.deckhouse.io.

level: Metadata
verbs:
  - create
  - update
  - patch
  - delete
resources:
  - group: virtualization.deckhouse.io

22. Логировать операции update/patch для внутренних virtualization subresources.

level: Metadata
verbs:
  - update
  - patch
resources:
  - group: internal.virtualization.deckhouse.io
    resources:
      - internalvirtualizationvirtualmachineinstances

23. Логировать GET-операции для API-группы subresources.virtualization.deckhouse.io.

level: Metadata
verbs:
  - get
resources:
  - group: subresources.virtualization.deckhouse.io

24. Логировать операции create/update/patch/delete для ресурсов Pod.

level: Metadata
verbs:
  - create
  - update
  - patch
  - delete
resources:
  - resources:
      - pods

25. Логировать операции create/update/patch/delete в неймспейсе d8-virtualization.

level: Metadata
verbs:
  - create
  - update
  - patch
  - delete
namespaces:
  - d8-virtualization

26. Логировать операции create/update/patch/delete для ресурсов ModuleConfig.

level: Metadata
verbs:
  - create
  - update
  - patch
  - delete
resources:
  - group: deckhouse.io
    resources:
      - moduleconfigs

27. Не логировать запросы аутентифицированных пользователей.

level: None
userGroups:
  - system:authenticated

28. Логировать все оставшиеся (неаутентифицированные) запросы на уровне Metadata.

level: Metadata

Пример полной политики

apiVersion: audit.k8s.io/v1
kind: Policy
rules:
  # 1: Не логировать частые обновления `Endpoints`, `EndpointSlices` и `Events`.
  - level: None
    resources:
      - resources:
          - endpoints
          - endpointslices
          - events

  # 2: Не логировать операции выбора лидера на ресурсах `Lease`.
  - level: None
    resources:
      - group: coordination.k8s.io
        resources:
          - leases

  # 3: Не логировать ConfigMap cert-manager, используемые для выбора лидера.
  - level: None
    resources:
      - resources:
          - configmaps
        resourceNames:
          - cert-manager-cainjector-leader-election
          - cert-manager-controller

  # 4: Не логировать ресурсы VerticalPodAutoscalerCheckpoints.
  - level: None
    resources:
      - group: autoscaling.k8s.io
        resources:
          - verticalpodautoscalercheckpoints

  # 5: Не логировать PATCH-операции `VerticalPodAutoscaler` от recommender.
  - level: None
    users:
      - system:serviceaccount:kube-system:d8-vertical-pod-autoscaler-recommender
    verbs:
      - patch
    resources:
      - group: autoscaling.k8s.io
        resources:
          - verticalpodautoscalers

  # 6: Не логировать ресурсы UpmeterHookProbes.
  - level: None
    resources:
      - group: deckhouse.io
        resources:
          - upmeterhookprobes

  # 7: Не логировать любые операции в неймспейсе `d8-upmeter`.
  - level: None
    namespaces:
      - d8-upmeter

  # 8: Не логировать обновления ConfigMap ingress-nginx для выборов лидера.
  - level: None
    users:
      - system:serviceaccount:d8-ingress-nginx:ingress-nginx
    verbs:
      - update
    resources:
      - resources:
          - configmaps
    namespaces:
      - d8-ingress-nginx

  # 9: Не логировать операции create/delete `AuthRequest` от health-check dex.
  - level: None
    users:
      - system:serviceaccount:d8-user-authn:dex
    verbs:
      - create
      - delete
    resources:
      - group: dex.coreos.com
        resources:
          - authrequests
    namespaces:
      - d8-user-authn

  # 10: Логировать операции create/delete для ресурсов Node с телом запроса/ответа.
  - level: RequestResponse
    verbs:
      - create
      - delete
    resources:
      - resources:
          - nodes

  # 11: Логировать запросы kubectl logs (pods/log) на уровне Metadata.
  - level: Metadata
    resources:
      - resources:
          - pods/log

  # 12: Логировать операции create/update/patch/delete от системных ServiceAccount (`kube-system`, `d8-*`).
  - level: Metadata
    users:
      - system:serviceaccount:d8-cert-manager:cainjector
      - system:serviceaccount:d8-cert-manager:cert-manager
      - system:serviceaccount:d8-cert-manager:webhook
      - system:serviceaccount:d8-chrony:chrony-exporter
      - system:serviceaccount:d8-chrony:chrony-exporter-master
      - system:serviceaccount:d8-cloud-instance-manager:caps-controller-manager
      - system:serviceaccount:d8-cloud-instance-manager:cluster-autoscaler
      - system:serviceaccount:d8-cloud-instance-manager:fencing-agent
      - system:serviceaccount:d8-cloud-instance-manager:integrity-containerd-configurator
      - system:serviceaccount:d8-cloud-instance-manager:integrity-controller
      - system:serviceaccount:d8-cloud-instance-manager:machine-controller-manager
      - system:serviceaccount:d8-cloud-instance-manager:node-controller
      - system:serviceaccount:d8-cloud-instance-manager:node-feature-discovery-gc
      - system:serviceaccount:d8-cloud-instance-manager:node-feature-discovery-master
      - system:serviceaccount:d8-cloud-instance-manager:node-feature-discovery-worker
      - system:serviceaccount:d8-cloud-instance-manager:node-group
      - system:serviceaccount:d8-cloud-instance-manager:node-group-exporter
      - system:serviceaccount:d8-cloud-instance-manager:nvidia-dcgm-exporter
      - system:serviceaccount:d8-cloud-instance-manager:nvidia-device-plugin
      - system:serviceaccount:d8-cloud-instance-manager:nvidia-gpu-feature-discovery
      - system:serviceaccount:d8-cloud-instance-manager:nvidia-mig-manager
      - system:serviceaccount:d8-cloud-instance-manager:registry-packages-proxy
      - system:serviceaccount:d8-cloud-provider-aws:cloud-controller-manager
      - system:serviceaccount:d8-cloud-provider-aws:cloud-data-discoverer
      - system:serviceaccount:d8-cloud-provider-aws:node-termination-handler
      - system:serviceaccount:d8-cloud-provider-azure:cloud-controller-manager
      - system:serviceaccount:d8-cloud-provider-azure:cloud-data-discoverer
      - system:serviceaccount:d8-cloud-provider-dvp:capdvp-controller-manager
      - system:serviceaccount:d8-cloud-provider-dvp:cloud-controller-manager
      - system:serviceaccount:d8-cloud-provider-dvp:cloud-data-discoverer
      - system:serviceaccount:d8-cloud-provider-dvp:validation-webhook
      - system:serviceaccount:d8-cloud-provider-dynamix:capd-controller-manager
      - system:serviceaccount:d8-cloud-provider-dynamix:cloud-controller-manager
      - system:serviceaccount:d8-cloud-provider-dynamix:cloud-data-discoverer
      - system:serviceaccount:d8-cloud-provider-gcp:cloud-controller-manager
      - system:serviceaccount:d8-cloud-provider-gcp:cloud-data-discoverer
      - system:serviceaccount:d8-cloud-provider-huaweicloud:caphc-controller-manager
      - system:serviceaccount:d8-cloud-provider-huaweicloud:cloud-controller-manager
      - system:serviceaccount:d8-cloud-provider-huaweicloud:cloud-data-discoverer
      - system:serviceaccount:d8-cloud-provider-openstack:capo-controller-manager
      - system:serviceaccount:d8-cloud-provider-openstack:cloud-controller-manager
      - system:serviceaccount:d8-cloud-provider-openstack:cloud-data-discoverer
      - system:serviceaccount:d8-cloud-provider-vcd:capcd-controller-manager
      - system:serviceaccount:d8-cloud-provider-vcd:cloud-controller-manager
      - system:serviceaccount:d8-cloud-provider-vcd:cloud-data-discoverer
      - system:serviceaccount:d8-cloud-provider-vcd:infra-controller-manager
      - system:serviceaccount:d8-cloud-provider-vsphere:cloud-controller-manager
      - system:serviceaccount:d8-cloud-provider-vsphere:cloud-data-discoverer
      - system:serviceaccount:d8-cloud-provider-yandex:capy-controller-manager
      - system:serviceaccount:d8-cloud-provider-yandex:cloud-controller-manager
      - system:serviceaccount:d8-cloud-provider-yandex:cloud-data-discoverer
      - system:serviceaccount:d8-cloud-provider-yandex:cloud-metrics-exporter
      - system:serviceaccount:d8-cloud-provider-zvirt:capz-controller-manager
      - system:serviceaccount:d8-cloud-provider-zvirt:cloud-controller-manager
      - system:serviceaccount:d8-cloud-provider-zvirt:cloud-data-discoverer
      - system:serviceaccount:d8-cni-cilium:agent
      - system:serviceaccount:d8-cni-cilium:egress-gateway-agent
      - system:serviceaccount:d8-cni-cilium:operator
      - system:serviceaccount:d8-cni-cilium:relay
      - system:serviceaccount:d8-cni-cilium:safe-agent-updater
      - system:serviceaccount:d8-cni-cilium:ui
      - system:serviceaccount:d8-cni-flannel:cni-flannel
      - system:serviceaccount:d8-cni-simple-bridge:cni-simple-bridge
      - system:serviceaccount:d8-csi-vsphere:cloud-data-discoverer
      - system:serviceaccount:d8-descheduler:descheduler
      - system:serviceaccount:d8-istio:alliance-healthcheck
      - system:serviceaccount:d8-istio:alliance-ingressgateway
      - system:serviceaccount:d8-istio:alliance-metadata-exporter
      - system:serviceaccount:d8-istio:cni
      - system:serviceaccount:d8-istio:config-analyzer
      - system:serviceaccount:d8-istio:ingress-gateway-controller
      - system:serviceaccount:d8-istio:kiali
      - system:serviceaccount:d8-istio:multicluster-api-proxy
      - system:serviceaccount:d8-istio:multicluster-metrics-exporter
      - system:serviceaccount:d8-istio:waypoint-controller
      - system:serviceaccount:d8-istio:ztunnel
      - system:serviceaccount:d8-local-path-provisioner:local-path-provisioner
      - system:serviceaccount:d8-metallb:controller
      - system:serviceaccount:d8-metallb:l2lb-controller
      - system:serviceaccount:d8-metallb:l2lb-speaker
      - system:serviceaccount:d8-metallb:speaker
      - system:serviceaccount:d8-multitenancy-manager:multitenancy-manager
      - system:serviceaccount:d8-openvpn:openvpn
      - system:serviceaccount:d8-service-with-healthchecks:agent
      - system:serviceaccount:d8-service-with-healthchecks:controller
      - system:serviceaccount:d8-system:deckhouse
      - system:serviceaccount:d8-system:documentation
      - system:serviceaccount:d8-system:network-policy-engine
      - system:serviceaccount:d8-system:registry-nodeservices
      - system:serviceaccount:d8-system:terraform-auto-converger
      - system:serviceaccount:d8-system:terraform-state-exporter
      - system:serviceaccount:d8-system:webhook-handler
      - system:serviceaccount:d8-user-authn:basic-auth-proxy
      - system:serviceaccount:d8-user-authn:dex
      - system:serviceaccount:d8-user-authz:permission-browser-apiserver
      - system:serviceaccount:d8-user-authz:webhook
      - system:serviceaccount:kube-system:d8-control-plane-manager
      - system:serviceaccount:kube-system:d8-control-plane-manager-control-plane-proxy
      - system:serviceaccount:kube-system:d8-kube-dns
      - system:serviceaccount:kube-system:d8-kube-proxy
      - system:serviceaccount:kube-system:d8-node-local-dns
      - system:serviceaccount:kube-system:d8-vertical-pod-autoscaler-admission-controller
      - system:serviceaccount:kube-system:d8-vertical-pod-autoscaler-recommender
      - system:serviceaccount:kube-system:d8-vertical-pod-autoscaler-updater
      - system:serviceaccount:kube-system:node-local-dns-safe-updater
      - system:serviceaccount:kube-system:stale-dns-connections-cleaner
    userGroups:
      - system:serviceaccounts
    verbs:
      - create
      - update
      - patch
      - delete
    omitStages:
      - RequestReceived

  # 13: Логировать операции create/update/patch/delete для ресурсов Pod.
  - level: Request
    verbs:
      - create
      - delete
      - patch
      - update
    resources:
      - resources:
          - pods
    omitStages:
      - RequestReceived

  # 14: Логировать операции create/update/patch/delete в системных неймспейсах (`kube-system`, `d8-*`).
  - level: Metadata
    verbs:
      - create
      - update
      - patch
      - delete
    namespaces:
      - d8-admission-policy-engine
      - d8-cert-manager
      - d8-chrony
      - d8-cloud-instance-manager
      - d8-cloud-provider-aws
      - d8-cloud-provider-azure
      - d8-cloud-provider-dvp
      - d8-cloud-provider-dynamix
      - d8-cloud-provider-gcp
      - d8-cloud-provider-huaweicloud
      - d8-cloud-provider-openstack
      - d8-cloud-provider-vcd
      - d8-cloud-provider-vsphere
      - d8-cloud-provider-yandex
      - d8-cloud-provider-zvirt
      - d8-cni-cilium
      - d8-cni-flannel
      - d8-cni-simple-bridge
      - d8-csi-vsphere
      - d8-descheduler
      - d8-istio
      - d8-keepalived
      - d8-local-path-provisioner
      - d8-metallb
      - d8-monitoring
      - d8-multitenancy-manager
      - d8-network-gateway
      - d8-okmeter
      - d8-openvpn
      - d8-service-with-healthchecks
      - d8-system
      - d8-user-authn
      - d8-user-authz
      - kube-system
    omitStages:
      - RequestReceived

  # 15: Логировать все LIST-запросы во всех неймспейсах.
  - level: Metadata
    verbs:
      - list

  # 16: Логировать операции create/delete для ресурсов ServiceAccount.
  - level: Metadata
    verbs:
      - create
      - delete
    resources:
      - resources:
          - serviceaccounts
    omitStages:
      - RequestReceived

  # 17: Логировать операции create/update/delete/patch для ресурсов Role и ClusterRole.
  - level: Request
    verbs:
      - create
      - update
      - delete
      - patch
    resources:
      - group: rbac.authorization.k8s.io
        resources:
          - roles
          - clusterroles
    omitStages:
      - RequestReceived

  # 18: Логировать операции create/update/delete для ресурсов ClusterRoleBinding.
  - level: Request
    verbs:
      - create
      - update
      - delete
    resources:
      - group: rbac.authorization.k8s.io
        resources:
          - clusterrolebindings
    omitStages:
      - RequestReceived

  # 19: Логировать операции с pod subresource для attach и ephemeral-контейнеров.
  - level: Request
    verbs:
      - get
      - patch
      - create
    resources:
      - resources:
          - pods/attach
          - pods/ephemeralcontainers
    omitStages:
      - RequestReceived

  # 20: Логировать создание ресурсов VirtualMachineOperation с телом запроса/ответа.
  - level: RequestResponse
    verbs:
      - create
    resources:
      - group: virtualization.deckhouse.io
        resources:
          - virtualmachineoperations

  # 21: Логировать операции create/update/patch/delete для ресурсов virtualization.deckhouse.io.
  - level: Metadata
    verbs:
      - create
      - update
      - patch
      - delete
    resources:
      - group: virtualization.deckhouse.io

  # 22: Логировать операции update/patch для внутренних virtualization subresources.
  - level: Metadata
    verbs:
      - update
      - patch
    resources:
      - group: internal.virtualization.deckhouse.io
        resources:
          - internalvirtualizationvirtualmachineinstances

  # 23: Логировать GET-операции для API-группы subresources.virtualization.deckhouse.io.
  - level: Metadata
    verbs:
      - get
    resources:
      - group: subresources.virtualization.deckhouse.io

  # 24: Логировать операции create/update/patch/delete для ресурсов `Pod`.
  - level: Metadata
    verbs:
      - create
      - update
      - patch
      - delete
    resources:
      - resources:
          - pods

  # 25: Логировать операции create/update/patch/delete в неймспейсе `d8-virtualization`.
  - level: Metadata
    verbs:
      - create
      - update
      - patch
      - delete
    namespaces:
      - d8-virtualization

  # 26: Логировать операции create/update/patch/delete для ресурсов ModuleConfig.
  - level: Metadata
    verbs:
      - create
      - update
      - patch
      - delete
    resources:
      - group: deckhouse.io
        resources:
          - moduleconfigs

  ############
  # Здесь вставляются пользовательские правила из секрета kube-system/audit-policy
  ############
  # 27: Не логировать запросы аутентифицированных пользователей.
  - level: None
    userGroups:
      - system:authenticated

  # 28: Логировать все оставшиеся (неаутентифицированные) запросы на уровне Metadata.
  - level: Metadata