Kubernetes: объекты, доступ, сеть и секреты
DevOps: контейнеры, оркестрация, инфраструктура как кодКак устроен кластер, где сосредоточены риски и как настроить контроль доступа и изоляцию.
Зачем это нужно
- Kubernetes управляет большинством современных сервисов, и ошибки его конфигурации приводят к массовым инцидентам.
- Модель доступа к кластеру нетривиальна и требует отдельного изучения.
- Понимание Kubernetes необходимо и защитнику, и инженеру.
Теория
Кластер строится из управляющей части и рабочих узлов. Объекты описывают желаемое состояние: модули и их наборы, сервисы, точки входа, тома, конфигурации и секреты. Управляющая часть принимает решения о размещении и хранит состояние; компрометация управляющей части означает контроль над кластером.
Контроль доступа строится на аутентификации (сертификаты, токены, интеграция с внешним провайдером удостоверений) и авторизации по ролям и привязкам ролей. Особое внимание: учётные записи сервисов (какие права у приложений внутри кластера), доступ к управляющей части по сети, возможность выполнить команду в контейнере, монтирование каталогов узла, доступ к метаданным облака, привилегированные модули, права на создание модулей с параметрами, затрагивающими узел.
Сеть: базовые правила разрешают обмен внутри кластера, поэтому нужны сетевые политики, ограничивающие связи между сервисами. Секреты хранятся в кластере в кодированном виде и требуют шифрования в хранилище состояния, ограничения доступа и предпочтительно внешнего хранилища секретов. Практики: минимальные права, отдельные пространства имён для сред и команд, квоты и лимиты, запрет запуска привилегированных модулей, аудит действий, обновление версий.
Ключевые концепции
- Управляющая часть и рабочие узлы
- Компоненты кластера: принятие решений и запуск рабочих нагрузок.
- Учётная запись сервиса
- Идентификатор для процессов внутри кластера: её права определяют, что может приложение.
- Роли и привязки ролей
- Механизм авторизации: что кому разрешено в пространствах имён и кластере.
- Сетевые политики
- Правила, ограничивающие сетевые связи между модулями.
- Шифрование секретов в хранилище состояния
- Защита секретов в базе кластера: без неё они доступны читающим состояние.
- Квоты и лимиты
- Ограничения ресурсов: защищают кластер от исчерпания.
Инструменты
- Локальные кластеры: kind, minikube, k3s.
- Средства проверки конфигурации и политик (OPA/Gatekeeper, Kyverno).
- Сканеры конфигурации кластера и проверки по эталонам.
- Внешние хранилища секретов, интегрированные с кластером.
- Средства наблюдаемости и аудита действий в кластере.
Практика в легальных лабораториях
- Разверните локальный кластер и опишите его структуру: управляющая часть, узлы, пространства имён.
- Проверьте, какие права у учётных записей сервисов в учебных приложениях.
- Настройте сетевую политику, разрешающую только необходимые связи.
- Включите шифрование секретов в хранилище состояния и проверьте.
- Включите аудит и найдите в журналах изменения объектов.
Защита, детект и защитные меры
- Ограничивайте доступ к управляющей части и к возможности выполнения команд в контейнерах.
- Используйте минимальные права для учётных записей сервисов.
- Включайте сетевые политики и изоляцию пространств имён.
- Храните секреты во внешнем хранилище и шифруйте состояние кластера.
Правовая рамка и этика
- Облачные кластеры тарифицируются: следите за ресурсами, особенно в учебных целях.
- Конфигурации кластеров могут содержать чувствительные данные: ограничивайте доступ и распространение.
Типичные ошибки
- Давать приложениям широкие права в кластере.
- Запускать привилегированные модули без необходимости.
- Оставлять секреты в кодированном виде без шифрования и без ограничения доступа.
- Не включать аудит и терять возможность разбора.
Чек-лист «умею»
- Понимаю устройство кластера и его компоненты.
- Проверяю права учётных записей сервисов.
- Настраиваю сетевые политики и изоляцию.
- Шифрую секреты и использую внешнее хранилище.
- Включаю аудит и слежу за изменениями.
Вопросы на интервью
- Где в Kubernetes сосредоточены основные риски?
- Как вы ограничите связи между сервисами в кластере?
- Как защитить секреты в кластере?