Простое изменение примера конфигурации .yaml
не решит вашу проблему. Необходимо точно понимать, как работает файл политики аудита.
Когда событие обрабатывается, оно сравнивается с правилами политики аудита по порядку, и первое соответствующее правило устанавливает уровень аудита события.
Вот пример правила, которое вы хотите настроить в вашем случае использования. Если событие соответствует правилу, сервер API Kubernetes создает запись журнала на уровне RequestResponse.
- level: RequestResponse
verbs: ["create"]
resources:
- group: "" # core
resources: ["pods", "pods/status"]
omitStages:
- "RequestReceived"
Событие соответствует правилу, если выполняются все следующие условия:
- Событие не соответствует ни одному предыдущему правилу в файле политики.
- Вызов
create
. - Запрос к ресурсу
pods
или pods/status
. - Событие не относится к этапу
RequestReceived
вызова.
Если вы по-прежнему регистрируете записи, которые вы хотели бы отфильтровать, добавьте правила level: None
до Приведенный выше пример, поскольку файл политики аудита Kubernetes начинается с правил, которые указывают, что определенные события вообще не должны регистрироваться.
Пожалуйста, дайте мне знать, если это поможет.
РЕДАКТИРОВАТЬ:
как я могу убедиться, что я охватываю все варианты аудита K8S? Есть ли какое-либо «общее» правило, которое говорит «ничего не регистрировать», и перед этим правилом я добавлю только мои специфичные c журналы?
Это зависит от вашего кластера. Самый простой способ добиться этого:
- установить правило, которое вы хотите регистрировать
- проверить журналы, если они ловят то, что вы не хотите
- добавьте
level: None
правило перед тем, которое вы создали, чтобы исключить ненужные события
относительно создания модуля, если я хочу быть подробнее c и получать журналы только из пространства имен "по умолчанию" и не формировать другие пространства имен
То же самое можно применить здесь. Просто добавьте правило level: None
, которое исключает события из других пространств имен.