Реализовать всеобъемлющую стратегию наблюдаемости для распределенной системы.
→Собирать и коррелировать три столпа: метрики (числовые временные ряды через Prometheus), логи (структурированные события через Fluent Bit) и трассировки (потоки запросов через OpenTelemetry).
Почему: Ни один из столпов не достаточен сам по себе. Корреляция их (например, встраивание идентификаторов трассировки в логи) необходима для быстрого диагностирования проблем в сложных микросервисных архитектурах.
Автоматически обеспечивать соблюдение политик безопасности и организационных политик во всех кластерах Kubernetes.
→Использовать механизм политик, такой как OPA/Gatekeeper или Kyverno, интегрированный как контроллер допуска (validating/mutating admission controller). Хранить политики в Git и синхронизировать их через GitOps.
Почему: Это обеспечивает автоматические, превентивные меры безопасности, предоставляя разработчикам быструю обратную связь в их CI/CD конвейере вместо медленных, ручных этапов проверки.
Выбрать механизм политик для Kubernetes на основе навыков команды и сложности политик.
→Использовать Kyverno для политик, которые могут быть выражены в знакомом формате YAML Kubernetes. Использовать OPA/Gatekeeper для сложных политик, требующих более мощного, специально разработанного языка (Rego) и интеграции внешних данных.
Почему: Kyverno имеет более низкий порог входа для специалистов по Kubernetes. OPA/Rego более мощный, но требует изучения нового языка.
Обеспечить целостность и подлинность образов контейнеров, развертываемых в production.
→Внедрить подписание образов в CI-конвейере с использованием Sigstore/Cosign. Использовать контроллер политик (Kyverno, Gatekeeper) для создания политики допуска, которая проверяет подписи образов перед разрешением создания пода.
Почему: Это гарантирует, что в кластере могут запускаться только образы, созданные доверенными CI-конвейерами и не подвергавшиеся изменениям, предотвращая несанкционированное выполнение кода.
Источник↗
Защитить все взаимодействия между сервисами внутри кластера с помощью подхода "нулевого доверия".
→Развернуть service mesh (например, Istio, Linkerd) и включить строгий взаимный TLS (mTLS) для всего трафика внутри mesh.
Почему: mTLS обеспечивает как шифрование в процессе передачи, так и надежную, криптографически проверяемую идентификацию как для клиента, так и для сервера, предотвращая спуфинг и атаки "человек посередине" внутри кластера.
Обеспечить соблюдение лучших практик безопасности для всех рабочих нагрузок, запущенных в кластере.
→Включить встроенный контроллер Pod Security Admission. Настроить пространства имен для принудительного применения профиля `restricted` для рабочих нагрузок и `baseline` для компонентов платформы.
Почему: Профиль `restricted` обеспечивает критическое усиление безопасности (например, запуск от имени непривилегированного пользователя, отказ от всех возможностей, запрет повышения привилегий) и является фундаментальной мерой безопасности.
Источник↗
Обнаруживать аномальное или вредоносное поведение внутри запущенных контейнеров на уровне ОС.
→Развернуть инструмент безопасности во время выполнения, использующий eBPF, такой как Falco или Tetragon. Определить правила для обнаружения подозрительных системных вызовов, доступа к файлам и выполнения процессов.
Почему: Традиционные инструменты безопасности не видят активность внутри контейнеров. eBPF обеспечивает глубокую, низкозатратную видимость событий на уровне ядра, позволяя обнаруживать угрозы, которые другие инструменты пропускают.
Создать масштабируемый и отказоустойчивый конвейер данных наблюдаемости.
→Использовать OpenTelemetry (OTel) Collector. Последовательно применять обработчики для преобразования данных (например, обработчик `attributes` для удаления PII, обработчик `batch` для эффективности). Использовать обработчик `memory_limiter` в начале конвейера для предотвращения переполнения памяти (OOM).
Почему: Collector разделяет инструментарий и бэкэнды, предоставляя гибкий, независимый от поставщика способ обработки, фильтрации и маршрутизации телеметрических данных перед экспортом.
Источник↗