Kubernetes обновил свою авторизацию kubelet API до общего доступного статуса в версии 1.36. Эта функция значительно улучшает безопасность, предоставляя более тонкий контроль доступа к API kubelet, что позволяет избежать нарушения принципа минимальных прав.
Предыстория проблемы доступа
Ранее авторизация kubelet использовала общую модель контроля доступа, что означало, что инструменты мониторинга и сбора логов получали права, позволяющие выполнять команды в любых контейнерах. Это создавало риск повышенной уязвимости, поскольку при компрометации инструмента злоумышленники могли получить доступ к всем контейнерам на узле.
Ключевые изменения в новой версии
С переходом к тонкой авторизации kubelet API была осуществлена переработка контроля доступа. Теперь множество популярных API-эндпоинтов kubelet имеют собственные подресурсы, что позволяет выполнять дополнительные проверки прав доступа перед окончательным решением. Например, эндпоинты для получения метрик, статистики и логов теперь имеют отдельные подресурсы.
Согласно рекомендациям безопасности, это изменение дает возможность запрашивать только те права, которые действительно необходимы для выполнения конкретных задач, что существенно снижает потенциальный риск для кластера.
Что это значит для разработчиков
Для команд, работающих с Kubernetes, это улучшение означает, что при использовании новых возможностей kubelet API можно более строго разграничивать права доступа. Такой подход особенно важен для осуществления безопасной работы с мониторингом и логированием. Тем, кто использует Kubernetes в своих проектах, стоит проанализировать свои текущие настройки авторизации и адаптировать их к новым возможностям.
Следующий шаг — продолжение усилий по улучшению безопасности в Kubernetes, используя отзывы сообщества о нововведениях и возникающих проблемах.