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 - Основные параметры#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Количество реплик для основных компонентов |
|
|
Лимит истории ревизий развертывания |
|
|
Интервал между аудитами в секундах |
|
|
Бэкенды для метрик |
|
|
Аудит только соответствующих типов ресурсов |
|
|
Максимальное количество нарушений для логирования |
|
|
Выполнение аудита из кеша |
|
|
Отключение функции аудита |
|
|
Отключение мутирующего webhook |
|
|
Отключение валидирующего webhook |
|
|
Имя конфигурации валидирующего webhook |
|
|
Время ожидания валидирующего webhook в секундах |
|
|
Политика обработки сбоев валидирующего |
|
|
Аннотации для валидирующего |
|
|
Метки для исключения пространств имен из валидирующего |
|
|
Селектор объектов для валидирующего |
|
|
Условия соответствия для валидирующего |
|
|
Политика игнорирования сбоев проверок |
|
|
Пользовательские правила для валидирующего |
|
|
Подресурсы для валидирующего |
|
|
URL для валидирующего |
|
|
Область видимости валидирующего |
|
|
Включение операций удаления |
|
|
Включение операций подключения |
|
|
Включение поддержки внешних данных |
|
|
Включение расширения ресурсов генератора |
|
|
Включение TLS-проверок здоровья |
|
|
Максимальное количество потоков обслуживания |
|
|
Имя конфигурации мутирующего |
|
|
Политика обработки сбоев мутирующего |
|
|
Политика повторного вызова мутирующего |
|
|
Аннотации для мутирующего |
|
|
Метки для исключения пространств имен из мутирующего |
|
|
Селектор объектов для мутирующего |
|
|
Условия соответствия для мутирующего |
|
|
Время ожидания мутирующего |
|
|
Пользовательские правила для мутирующего |
|
|
Подресурсы для мутирующего |
|
|
URL для мутирующего |
|
|
Область видимости мутирующего |
|
|
Включение аннотаций мутаций |
|
|
Размер chunk для аудита |
|
|
Уровень логирования |
|
|
Логирование отклоненных запросов |
|
|
Логирование мутаций |
|
|
События admission в соответствующем пространстве имен |
|
|
События аудита в соответствующем пространстве имен |
|
|
Включение поддержки квот ресурсов |
|
|
TTL кеша ответов провайдера внешних данных |
|
|
Включение нативной валидации Kubernetes |
|
|
Создание VAP-привязки для ограничений |
|
|
Создание VAP для шаблонов |
|
|
Синхронизация области применения VAP |
|
|
Общие аннотации |
|
|
Дополнительные точки монтирования |
|
|
Дополнительные |
|
|
Аннотации для pod |
|
|
Аннотации для pod аудита |
|
|
Метки для pod |
|
|
Максимальное количество pod |
|
|
Аннотации для |
|
|
Включение профиля |
|
|
Экспорт бэкенд |
|
image - настройки образов контейнеров#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Репозиторий основного образа |
|
|
Репозиторий образа CRD |
|
|
Версия релиза |
|
|
Политика загрузки образа |
|
|
|
|
preInstall - настройки pre-install хуков#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Репозиторий образа для CRD |
|
|
Тег образа для CRD |
|
postUpgrade - настройки post-upgrade хуков#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя |
|
|
Создание |
|
|
Включение обновления меток пространств имен |
|
|
Репозиторий образа |
|
|
Тег образа |
|
|
Политика загрузки образа |
|
|
|
|
|
Дополнительные пространства имен |
|
|
Настройки безопасности pod |
|
|
Дополнительные аннотации |
|
|
Класс приоритета pod |
|
|
Настройки affinity |
|
|
Tolerations для размещения pod |
|
|
Селектор узлов |
|
|
Ресурсные требования |
|
|
Разрешение эскалации привилегий |
|
|
Сбрасываемые capabilities |
|
|
Файловая система только для чтения |
|
|
ID группы для запуска |
|
|
Запуск от имени не-root пользователя |
|
|
ID пользователя для запуска |
|
postInstall - настройки post-install хуков#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя |
|
|
Создание |
|
|
Включение обновления меток пространств имен |
|
|
Дополнительные RBAC-правила |
|
|
Репозиторий образа |
|
|
Тег образа |
|
|
Политика загрузки образа |
|
|
|
|
|
Дополнительные пространства имен |
|
|
Настройки безопасности pod |
|
|
Дополнительные аннотации |
|
|
Класс приоритета pod |
|
|
Включение проверки |
|
|
Реестр образа для проверки |
|
|
Репозиторий образа curl |
|
|
Тег образа curl |
|
|
Политика загрузки образа |
|
|
|
|
|
Время ожидания в секундах |
|
|
HTTP-тайм-аут в секундах |
|
|
Разрешение небезопасных HTTPS-соединений |
|
|
Класс приоритета pod |
|
|
Настройки affinity |
|
|
Tolerations для размещения pod |
|
|
Селектор узлов |
|
|
Разрешение эскалации привилегий |
|
|
Сбрасываемые capabilities |
|
|
Файловая система только для чтения |
|
|
ID группы для запуска |
|
|
Запуск от имени не-root пользователя |
|
|
ID пользователя для запуска |
|
preUninstall - настройки pre-uninstall хуков#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя |
|
|
Создание |
|
|
Дополнительные RBAC-правила |
|
|
Включение удаления конфигураций |
|
|
Репозиторий образа |
|
|
Тег образа |
|
|
Политика загрузки образа |
|
|
|
|
|
Класс приоритета pod |
|
|
Настройки affinity |
|
|
Tolerations для размещения pod |
|
|
Селектор узлов |
|
|
Ресурсные требования |
|
|
Разрешение эскалации привилегий |
|
|
Сбрасываемые capabilities |
|
|
Файловая система только для чтения |
|
|
ID группы для запуска |
|
|
Запуск от имени не-root пользователя |
|
|
ID пользователя для запуска |
|
controllerManager - настройки менеджера контроллера#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Имя |
|
|
Автоматическое монтирование токена |
|
|
Имя контейнера |
|
|
Исключенные пространства имен |
|
|
Исключенные префиксы пространств имен |
|
|
Использование сети хоста |
|
|
Политика DNS |
|
|
Порт |
|
|
Порт для метрик |
|
|
Включение метрик |
|
|
Порт для проверок здоровья |
|
|
Время ожидания readiness-проверок |
|
|
Время ожидания liveness-проверок |
|
|
Класс приоритета pod |
|
|
Отключение ротации сертификатов |
|
|
Минимальная версия TLS |
|
|
Имя клиентского сертификата |
|
|
Тип стратегии развертывания |
|
|
Настройки rolling update |
|
|
Метки для pod менеджера контроллера |
|
|
Настройки anti-affinity pod |
|
|
Ограничения распределения топологии |
|
|
Tolerations для размещения pod |
|
|
Селектор узлов |
|
|
Лимиты и запросы ресурсов для контейнера |
|
|
Разрешение эскалации привилегий |
|
|
Сбрасываемые capabilities |
|
|
Файловая система только для чтения |
|
|
ID группы для запуска |
|
|
Запуск от имени не-root пользователя |
|
|
ID пользователя для запуска |
|
|
Группа файловой системы |
|
|
Дополнительные группы |
|
|
Дополнительные RBAC-правила |
|
|
Включение |
|
|
Правила входящего трафика ingress. |
|
|
Отключение операции |
|
|
Отключение операции генерации |
|
audit - настройки компонента аудита#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Путь для экспорта соединений |
|
|
Максимальное количество результатов аудита |
|
|
Путь монтирования |
|
|
Имя |
|
|
Пустой |
|
|
Имя sidecar-экспорта |
|
|
Образ sidecar-экспорта |
|
|
Политика загрузки образа sidecar-экспорта |
|
|
Разрешение эскалации привилегий |
|
|
Сбрасываемые capabilities |
|
|
Файловая система только для чтения |
|
|
ID группы для запуска |
|
|
Запуск от имени не-root пользователя |
|
|
ID пользователя для запуска |
|
|
Тип профиля seccomp |
|
|
Точки монтирования |
|
|
Имя |
|
|
Автоматическое монтирование токена |
|
|
Имя контейнера аудита |
|
|
Использование сети хоста |
|
|
Политика DNS |
|
|
Порт для метрик |
|
|
Включение метрик аудита |
|
|
Порт для проверок здоровья |
|
|
Время ожидания readiness-проверок |
|
|
Время ожидания liveness-проверок |
|
|
Класс приоритета pod |
|
|
Отключение ротации сертификатов |
|
|
Метки для pod аудита |
|
|
Настройки affinity |
|
|
Tolerations для размещения pod |
|
|
Селектор узлов |
|
|
Лимиты и запросы ресурсов для контейнера |
|
|
Разрешение эскалации привилегий |
|
|
Сбрасываемые capabilities |
|
|
Файловая система только для чтения |
|
|
ID группы для запуска |
|
|
Запуск от имени не-root пользователя |
|
|
ID пользователя для запуска |
|
|
Группа файловой системы |
|
|
Дополнительные группы |
|
|
Запись данных на RAM-диск |
|
|
Дополнительные RBAC-правила |
|
|
Отключение операции генерации |
|
|
Отключение операции аудита |
|
|
Отключение операции статусов |
|
crds - настройки Custom Resource Definitions#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Настройки affinity |
|
|
Tolerations для размещения pod |
|
|
Селектор узлов |
|
|
Ресурсные требования |
|
|
Разрешение эскалации привилегий |
|
|
Сбрасываемые capabilities |
|
|
Файловая система только для чтения |
|
|
ID группы для запуска |
|
|
Запуск от имени не-root пользователя |
|
|
ID пользователя для запуска |
|
pdb - настройки PodDisruptionBudget#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Минимальное количество доступных pod менеджера контроллера |
|
service - настройки сервисов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Настройки сервисов Kubernetes |
|
disabledBuiltins - отключенные встроенные функции OPA#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список отключенных встроенных функций OPA |
|
upgradeCRDs - настройки обновления CRD#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание |
|
|
Имя |
|
|
Включение обновления CRD |
|
|
Дополнительные RBAC-правила |
|
|
Класс приоритета pod |
|
rbac - настройки RBAC#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание ресурсов RBAC |
|
externalCertInjection - внешнее внедрение сертификатов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение внешнего внедрения сертификатов |
|
|
Имя |
|
serviceAccount - настройки сервисных аккаунтов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание |
|
constraints - предустановленные политики безопасности#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение политики разрешенных реестров образов |
|
|
Список разрешенных реестров образов |
|
|
Включение требования SHA256 для образов контейнеров |
|
|
Исключенные пространства имен |
|
|
Включение ограничения типов монтируемых |
|
|
Исключенные пространства имен |
|
|
Разрешенные типы |
|
|
Включение лимитов ресурсов контейнеров |
|
|
Исключенные пространства имен |
|
|
Максимальный лимит CPU |
|
|
Максимальный лимит памяти |
|
|
Включение требования read-only корневой файловой системы |
|
|
Пространства имен для применения политики |
|