Аудит фиксирует действия с виртуальными машинами (ВМ) и с самим модулем, чтобы вы могли разобрать инцидент и восстановить последовательность событий.
Доступно в коммерческих редакциях Deckhouse Platform (DP).
Включение аудита
Чтобы включить аудит событий безопасности, выполните следующие шаги:
- Включите модули
log-shipperиruntime-audit-engine. - Включите аудит API Kubernetes, задав
.spec.settings.apiserver.auditPolicyEnabledв значениеtrueв модулеcontrol-plane-manager. -
Задайте
.spec.settings.audit.enabledв значениеtrueв настройках модуля:spec: settings: audit: enabled: true
Пока все три условия не выполнены, компонент аудита в кластере не запускается. Остальные параметры описаны в настройках модуля.
Состав событий
Тип события записан в поле type. Аудит различает следующие типы:
Access to VM— подключение к ВМ по консоли, VNC или через проброс портов, фиксируются начало и завершение сеанса.Manage VM— создание, изменение или удаление ресурса VirtualMachine.Control VM— изменение состояния ВМ, в том числе запуск, остановка, перезапуск, миграция и вытеснение через ресурс VirtualMachineOperation, а также остановка или перезапуск из гостевой ОС и аварийное завершение работы.Module control— создание, изменение, выключение или удаление ModuleConfig.Virtualization control— создание или удаление системного компонента модуля в неймспейсеd8-virtualization.Integrity check— несовпадение контрольной суммы конфигурации ВМ с эталонной.Forbidden operation— попытка выполнить запрещённую операцию.
Независимо от типа каждое событие содержит одни и те же поля:
name— описание произошедшего;datetime— время события;request_subject— имя пользователя или ServiceAccount, от имени которого выполнено действие;operation_result— результат операции;uid— идентификатор записи в аудите Kubernetes.
К ним добавляются уточняющие поля, состав которых зависит от типа события. Например, события с ВМ содержат поля virtual_machine_name и virtual_machine_namespace, а запрещённые операции описывают источник запроса в поле source_ip и причину отказа в поле forbid_reason.
Просмотр событий
События собирает системный компонент virtualization-audit в неймспейсе d8-virtualization. Чтобы перенаправить их в систему логирования кластера, например в Loki, создайте ClusterLoggingConfig:
apiVersion: deckhouse.io/v1alpha1
kind: ClusterLoggingConfig
metadata:
name: virtualization-audit-logs
spec:
destinationRefs:
- d8-loki
kubernetesPods:
namespaceSelector:
matchNames:
- d8-virtualization
labelSelector:
matchLabels:
app: virtualization-audit
type: KubernetesPods
Чтобы посмотреть события в Grafana, используйте запрос к Loki:
{namespace="d8-virtualization", pod=~"virtualization-audit-.*"}