Gatekeeper#
Gatekeeper - это инструмент для управления политиками в Kubernetes, основанный на движке Open Policy Agent (OPA). Он позволяет централизованно управлять и применять политики безопасности и конфигурации на уровне всего кластера.
Основные задачи и возможности
Проверка запросов к API Kubernetes: Gatekeeper выступает в роли validating admission webhook, перехватывая запросы на создание или обновление ресурсов и проверяя их на соответствие заданным политикам.
Управление политиками через ограничения (Constraints): политики определяются с помощью Constraints — это правила, которые описывают, какие действия разрешены или запрещены при развертывании ресурсов в кластере.
Интеграция с Open Policy Agent (OPA): Gatekeeper использует OPA как движок для оценки политик, что позволяет писать гибкие и высокоэффективные правила на языке Rego.
Контроль соответствия (Compliance): позволяет не только блокировать нежелательные изменения, но и отслеживать состояние кластера в целом, выявляя отклонения от заданных политик.
Поддержка Kubernetes-нативного подхода: Gatekeeper является проектом, активно поддерживаемым сообществом Kubernetes, и предназначен для простой интеграции в экосистему Kubernetes.
Гибкость и расширяемость: поддерживает как стандартные политики, так и пользовательские, что делает его универсальным решением для обеспечения безопасности и соблюдения стандартов в кластере.
Примечание
Gatekeeper в стандартной версии DropApp является единственным инструментом в компоненте Security и устанавливается по умолчанию с установкой компонента. Также, по умолчанию DropApp предоставляет несколько встроенных, реализованных constraints, которые изначально выключены, но могу быть включены через инструмент Gatekeeper → spec.values
Конфигурация values#
Значения можно переопределить через редактирование инструмента с именем gatekeeper и указанием нужных values в spec.values. Общее описание конфигурации values для инструментов описано в разделе «Конфигурации инструментов дополнительных компонентов».
general – основные параметры#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Количество реплик pod |
|
|
Количество предыдущих версий ресурса, сохраняемых для отката |
|
|
Интервал между циклами аудита в секундах |
|
|
Бэкенды для метрик |
|
|
Активация аудита только по типу ресурсов |
|
|
Максимальное количество нарушений, логлируемых за один цикл аудита |
|
|
Выполнение аудита из кеша |
|
|
Активация функции аудита |
|
|
Активация «мутирующего» |
|
|
Активация валидирующего |
|
|
Имя конфигурации валидирующего |
|
|
Тайм-аут валидирующего |
|
|
Политика обработки сбоев валидирующего |
|
|
Аннотации для валидирующего |
|
|
Метки для исключения пространств имен из валидирующего |
|
|
Селектор объектов для валидирующего |
|
|
Условия соответствия для валидирующего |
|
|
Политика игнорирования сбоев проверок валидирующего |
|
|
Пользовательские правила для валидирующего |
|
|
Подресурсы для валидирующего |
|
|
URL-адрес валидирующего |
|
|
Область видимости валидирующего |
|
|
Активация операций удаления |
|
|
Активация операций подключения |
|
|
Активация поддержки внешних данных |
|
|
Активация расширения ресурсов генератора |
|
|
Активация TLS-проверок работоспособности |
|
|
Максимальное количество потоков обслуживания |
|
|
Имя конфигурации «мутирующего» |
|
|
Политика обработки сбоев «мутирующего» |
|
|
Политика повторного вызова «мутирующего» |
|
|
Аннотации для «мутирующего» |
|
|
Метки для исключения пространств имен из «мутирующего» |
|
|
Селектор объектов для «мутирующего» |
|
|
Условия соответствия для «мутирующего» |
|
|
Тайм-аут «мутирующего» |
|
|
Пользовательские правила для «мутирующего» |
|
|
Подресурсы для «мутирующего» |
|
|
URL-адрес «мутирующего» |
|
|
Область видимости «мутирующего» |
|
|
Активация аннотаций мутаций |
|
|
Размер чанка для аудита |
|
|
Уровень логирования |
|
|
Логирование отклоненных запросов |
|
|
Логирование мутаций |
|
|
Добавление пространства имен в события admission |
|
|
Добавление пространства имен в события аудита |
|
|
Активация поддержки |
|
|
TTL кеша ответов провайдера внешних данных |
|
|
Активация нативной валидации Kubernetes |
|
|
Создание привязки VAP для ограничений по умолчанию |
|
|
Создание VAP для шаблонов по умолчанию |
|
|
Синхронизация области применения VAP |
|
|
Общие аннотации для всех ресурсов |
|
|
Список дополнительных точек монтирования томов ( |
|
|
Дополнительные тома ( |
|
|
Аннотации для pod |
|
|
Аннотации для pod аудита |
|
|
Метки для pod |
|
|
Максимальное количество pod |
|
|
Аннотации для |
|
|
Включение Seccomp-профиля по умолчанию |
|
|
Экспорт бэкенда |
|
image – параметры контейнерного образа#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Репозиторий основного образа |
|
|
Репозиторий образа для CRD |
|
|
Версия релиза |
|
|
Параметры контейнерного образа |
|
|
Список |
|
preInstall – настройки pre-install хуков#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Репозиторий образа для CRD |
|
|
Тег образа контейнера |
|
postUpgrade – настройки post-upgrade хуков#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя |
|
|
Создание |
|
|
Включение обновления меток пространств имен |
|
|
Репозиторий образа |
|
|
Тег образа контейнера |
|
|
Политика загрузки образа |
|
|
|
|
|
Дополнительные пространства имен для разметки |
|
|
Аннотации безопасности pod для пространств имен |
|
|
Дополнительные аннотации |
|
|
Имя |
|
|
Настройки правила привязки ( |
|
|
|
|
|
Селектор узлов для планирования pod |
|
|
Запросы и ограничения ресурсов для контейнера |
|
|
Активация разрешения на эскалацию привилегий в контейнере |
|
|
Список возможностей ( |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
ID группы для запуска контейнера |
|
|
Запуск от имени пользователя без административных полномочий |
|
|
ID пользователя для запуска контейнера |
|
postInstall – настройки post-install хуков#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя |
|
|
Создание |
|
|
Включение обновления меток пространств имен |
|
|
Дополнительные RBAC-правила |
|
|
Репозиторий образа |
|
|
Тег образа контейнера |
|
|
Политика загрузки образа |
|
|
|
|
|
Дополнительные пространства имен для разметки |
|
|
Аннотации безопасности pod для пространств имен |
|
|
Дополнительные аннотации |
|
|
Имя |
|
|
Включение проверки |
|
|
Реестр образа для проверки |
|
|
Репозиторий образа curl для проверки |
|
|
Тег образа контейнера |
|
|
Политика загрузки образа |
|
|
|
|
|
Время ожидания в секундах |
|
|
HTTP-тайм-аут в секундах |
|
|
Разрешение небезопасных HTTPS-соединений |
|
|
Имя |
|
|
Настройки правила привязки ( |
|
|
|
|
|
Селектор узлов для планирования pod |
|
|
Активация разрешения на эскалацию привилегий в контейнере |
|
|
Список возможностей ( |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
ID группы для запуска контейнера |
|
|
Запуск от имени пользователя без административных полномочий |
|
|
ID пользователя для запуска контейнера |
|
preUninstall – настройки pre-uninstall хуков#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя |
|
|
Создание |
|
|
Дополнительные RBAC-правила |
|
|
Включение удаления конфигураций |
|
|
Репозиторий образа |
|
|
Тег образа контейнера |
|
|
Политика загрузки образа |
|
|
|
|
|
Имя |
|
|
Настройки правила привязки ( |
|
|
|
|
|
Селектор узлов для планирования pod |
|
|
Запросы и ограничения ресурсов для контейнера |
|
|
Активация разрешения на эскалацию привилегий в контейнере |
|
|
Список возможностей ( |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
ID группы для запуска контейнера |
|
|
Запуск от имени пользователя без административных полномочий |
|
|
ID пользователя для запуска контейнера |
|
controllerManager – настройки менеджера контроллера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя |
|
|
Автоматическое монтирование токена |
|
|
Имя контейнера |
|
|
Пространства имен, исключенные из проверки |
|
|
Префиксы пространств имен, исключенные из проверки |
|
|
Использование сети хоста |
|
|
Политика разрешения DNS для pod |
|
|
Порт |
|
|
Порт для метрик |
|
|
Включение метрик |
|
|
Порт для проверок работоспособности |
|
|
Тайм-аут ожидания проверки готовности |
|
|
Тайм-аут ожидания проверки работоспособности |
|
|
Имя |
|
|
Активация ротации сертификатов |
|
|
Минимальная версия TLS |
|
|
Имя клиентского сертификата |
|
|
Тип стратегии развертывания |
|
|
Настройки стратегии rolling update |
|
|
Метки для pod менеджера контроллера |
|
|
Правила anti-affinity для pod |
|
|
Ограничения топологии для равномерного распределения pod по зонам доступности и узлам |
|
|
|
|
|
Селектор узлов для планирования pod |
|
|
Запросы и ограничения ресурсов для контейнера |
|
|
Активация разрешения на эскалацию привилегий в контейнере |
|
|
Список возможностей ( |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
ID группы для запуска контейнера |
|
|
Запуск от имени пользователя без административных полномочий |
|
|
ID пользователя для запуска контейнера |
|
|
Идентификатор группы файловой системы для pod, назначаемый владельцем всех файлов и каталогов на подключенных томах |
|
|
Дополнительные группы |
|
|
Дополнительные RBAC-правила |
|
|
Включение |
|
|
Правила входящего трафика ingress |
|
|
Активация операции |
|
|
Активация операции генерации |
|
audit – настройки компонента аудита#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Путь для экспорта соединений |
|
|
Максимальное количество результатов аудита |
|
|
Путь монтирования |
|
|
Имя |
|
|
Пустой |
|
|
Имя sidecar-контейнера для экспорта |
|
|
Параметры контейнерного образа |
|
|
Политика загрузки образа sidecar-контейнера |
|
|
Активация разрешения на эскалацию привилегий в контейнере |
|
|
Список возможностей ( |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
ID группы для запуска контейнера |
|
|
Запуск от имени пользователя без административных полномочий |
|
|
ID пользователя для запуска контейнера |
|
|
Тип Seccomp-профиля |
|
|
Точки монтирования |
|
|
Имя |
|
|
Автоматическое монтирование токена |
|
|
Имя контейнера аудита |
|
|
Использование сети хоста |
|
|
Политика разрешения DNS для pod |
|
|
Порт для метрик аудита |
|
|
Включение метрик аудита |
|
|
Порт для проверок работоспособности |
|
|
Тайм-аут ожидания проверки готовности |
|
|
Тайм-аут ожидания проверки работоспособности |
|
|
Имя |
|
|
Активация ротации сертификатов |
|
|
Метки для pod аудита |
|
|
Настройки правила привязки ( |
|
|
|
|
|
Селектор узлов для планирования pod |
|
|
Запросы и ограничения ресурсов для контейнера |
|
|
Активация разрешения на эскалацию привилегий в контейнере |
|
|
Список возможностей ( |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
ID группы для запуска контейнера |
|
|
Запуск от имени пользователя без административных полномочий |
|
|
ID пользователя для запуска контейнера |
|
|
Идентификатор группы файловой системы для pod, назначаемый владельцем всех файлов и каталогов на подключенных томах |
|
|
Дополнительные группы |
|
|
Запись данных на RAM-диск |
|
|
Дополнительные RBAC-правила |
|
|
Активация операции генерации |
|
|
Активация операции аудита |
|
|
Активация sidecar-контейнера аудита |
|
|
Активация операции статусов |
|
crds – настройки установки и обновления Custom Resource Definitions (CRD)#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Настройки правила привязки ( |
|
|
|
|
|
Селектор узлов для планирования pod |
|
|
Запросы и ограничения ресурсов для контейнера |
|
|
Активация разрешения на эскалацию привилегий в контейнере |
|
|
Список возможностей ( |
|
|
Монтирование корневой файловой системы в режиме «только для чтения» |
|
|
ID группы для запуска контейнера |
|
|
Запуск от имени пользователя без административных полномочий |
|
|
ID пользователя для запуска контейнера |
|
pdb – настройки PodDisruptionBudget#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Минимальное количество доступных pod менеджера контроллера |
|
service – настройки Service#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Настройки |
|
disabledBuiltins – отключенные встроенные функции OPA#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список отключенных встроенных функций OPA |
|
upgradeCRDs – настройки обновления CRD#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание |
|
|
Имя |
|
|
Включение обновления CRD |
|
|
Дополнительные RBAC-правила |
|
|
Имя |
|
rbac – настройки RBAC (управление доступом на основе ролей)#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Активация автоматического создания ресурсов RBAC |
|
externalCertInjection – внешнее внедрение сертификатов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Активация внешнего внедрения сертификатов |
|
|
Имя |
|
serviceAccount – настройки сервисного аккаунта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание |
|
constraints – предустановленные политики безопасности#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Активация политики разрешенных реестров образов |
|
|
Список разрешенных реестров образов |
|
|
Активация требования указывать SHA256 для образов контейнеров |
|
|
Исключенные пространства имен |
|
|
Активация ограничения типов монтируемых |
|
|
Исключенные пространства имен |
|
|
Разрешенные типы |
|
|
Активация лимитов ресурсов контейнеров |
|
|
Исключенные пространства имен |
|
|
Максимальный лимит CPU |
|
|
Максимальный лимит памяти |
|
|
Активация требования монтирования корневой файловой системы в режиме «только для чтения» |
|
|
Пространства имен для применения политики |
|