Политика аудита кластеров
Для кластеров Kubernetes второго поколения в сервисе Cloud Containers настроена политика аудита (audit policy). Она определяет, какие события Kubernetes API в кластере и в каком объеме записываются в журнал аудита Cloud Audit на платформе VK Cloud. Политика аудита настроена для всех кластеров, которые вы создаете в сервисе Cloud Containers, и изменить ее нельзя.
Политика аудита помогает:
- обеспечивать соответствие кластера установленным требованиям безопасности;
- отслеживать действия в кластерах, ошибки и попытки получения несанкционированного доступа;
- предотвращать и расследовать инциденты безопасности в работе кластеров.
Политика аудита определяет правила, через которые последовательно проходят все события в кластере. Если событие подходит под какое-то правило, то оно применяется. Попадет ли событие в журнал, зависит от установленного уровня аудита и дополнительных настроек.
Ниже представлен полный файл с настройками политики аудита кластеров Kubernetes второго поколения.
Здесь:
-
Блок
omitStagesуказывает этапы обработки запросов к API Kubernetes, которые не нужно записывать в журнал событий:RequestReceived— получение запроса;ResponseStarted— начало формирования ответа.
Это помогает сократить объем логов, так как эти этапы не несут критической информации для целей аудита.
-
Блок
rulesсодержит конкретные правила политики. Для каждого правила определены:-
level— уровень аудита, то есть степень детализации, с которой Kubernetes должен записывать события в журнал аудита:None— указанные ресурсы и события исключены из аудита (не записываются в журнал аудита).Metadata— записываются только метаданные запроса (например, имя пользователя, время, тип ресурса, метод), но не содержимое ресурса (например, содержимое секрета, токена, конфигурации).Request— записывается весь запрос, но не ответ.RequestResponse— записывается и запрос, и ответ, то есть осуществляется полный аудит событий.
-
users,userGroups— пользователь или группа пользователей, для которых определено правило. -
verbs— операции (watch,create,update,patch,delete) над пользователем или группой пользователей, которые, в зависимости от уровня, должны или не должны записываться в журнал аудита. Подробнее об этих операциях в официальной документации Kubernetes. -
resources— ресурсы кластера, к которым применяется правило.
-
-
Все запросы на изменение (
create,update,patch,delete) на уровнеRequestResponse:- Для всех запросов от анонимных пользователей
system:anonymous. - Для всех запросов на изменение перечисленных в правиле ресурсов, не попавших под другие правила.
- Для всех запросов от анонимных пользователей
-
Все запросы к чувствительным ресурсам (
secrets,configmaps,serviceaccounts/token,tokenreviews) на уровнеMetadata. -
Запросы на чтение информации (
get,list,watch) на уровнеMetadataдля большинства ресурсов, не попавших под другие правила. -
Все остальные запросы на изменение (
create,update,patch,delete) на уровнеRequestдля ресурсов, не попавших под другие правила.
-
Запросы на наблюдение (
watch) за ресурсамиendpoints,services,services/statusот системного пользователяkube-proxy. -
Запросы на получение информации (
get) о ресурсахnodes,nodes/statusот служб kubelet. -
Массовые запросы на чтение информации (
get,list,watch) о системных компонентах и сервисных аккаунтах:system:nodes;system:serviceaccounts;calico-node;calico-kube-controllers;system:kube-controller-manager;system:kube-scheduler;cluster-autoscaler;system:serviceaccounts:monitoring;csi-cinder-controller-sa.
Такой подход помогает значительно сократить объем логов.
-
Запросы на чтение информации (
get,list,watch) о специальных эндпоинтах Kubernetes API:healthz,livez,version,swagger. Эти эндпоинты предназначены для проверки состояния самого API-сервера, а не для работы с ресурсами кластера. -
Запросы на чтение информации (
get,list,watch) о событиях API-сервера от пользователяsystem:apiserver. -
Любые события специфических ресурсов
eventsиleases, а такжеtiersдля сервисных аккаунтов Calico. -
Обновление ресурсов
configmapsиendpointsв пространстве именkube-systemдля пользователяcluster-autoscaler.