Как раздать права в кластере
Вопрос
В компании 5 команд и общий кластер. Как организуешь доступ людей и приложений?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Namespace на команду или сервис, права через группы из SSO (OIDC), а не через персональные сертификаты
Стандартные роли (`view`, `edit`) через RoleBinding в своих namespace, `cluster-admin` только у платформенной команды
Для прода разработчикам чтение и логи, изменения через CI/GitOps
Приложениям отдельные ServiceAccount с минимальными правами, без токена, если API не нужен
Ограничения на поды: Pod Security Admission, политики Kyverno/Gatekeeper, квоты
Аудит: audit log API server, регулярный пересмотр прав (`kubectl auth can-i --list`)
Что могут спросить следом
- Как дать временный доступ на запись в прод при инциденте?
- Почему не стоит раздавать
pods/execв проде?
Разбор
Людей авторизую через SSO компании по OIDC, а права выдаю группам, а не персонально: человек ушёл из команды, и доступ пропал вместе с членством в группе. Каждой команде свои namespace. В них RoleBinding на встроенные роли: edit в dev и staging, view плюс чтение логов в проде. Изменения в прод идут только через CI или GitOps, поэтому человеку права на запись там не нужны. cluster-admin только у платформенной команды и желательно через механизм временного повышения прав. Приложениям отдельные ServiceAccount с минимальными правами, а если приложению не нужен API, токен не монтируется. Отдельно ограничиваю, какие поды вообще можно создавать: Pod Security Admission с профилем restricted и политики вроде «только образы из нашего реестра». Добавляю ResourceQuota и LimitRange на namespace. И включаю audit log API server, чтобы видеть, кто что делал, а права пересматриваю регулярно.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.