Защищённый путь от коммита до прода
Вопрос
Интервьюер: «Как гарантировать, что в проде работает ровно тот код, который прошёл ревью, и ничего больше?»
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Защищённые ветки, обязательное ревью и CODEOWNERS, включая файлы пайплайна
Изолированная сборка: одноразовые раннеры, минимальные права, OIDC вместо ключей
Зафиксированные зависимости, actions и базовые образы, свой прокси-реестр
Provenance и подпись артефакта в CI: из какого коммита и каким пайплайном собран
Проверка подписи и происхождения при деплое admission-политикой
Запрет ручных изменений в проде, аудит
Что могут спросить следом
- Как защититься от администратора CI, который может изменить пайплайн?
- Что такое воспроизводимая сборка и зачем она?
Разбор
Образцовый ответ: «Цепочка доверия от ревью до кластера. Main защищён: мерж только после ревью и зелёного CI, файлы пайплайна под CODEOWNERS платформенной команды. Сборка на одноразовых раннерах, зависимости по lock-файлам через наш прокси-реестр, базовые образы и actions по digest и SHA. CI генерирует SBOM и provenance по SLSA и подписывает образ cosign в keyless-режиме, удостоверением выступает OIDC-токен пайплайна main нашего репозитория. В кластере Kyverno пропускает только образы из нашего реестра с подписью именно этого удостоверения. Ручной kubectl set image невозможен: права только у GitOps-агента. От злонамеренного админа CI защищает разделение ролей и журнал прозрачности: подпись не от того пайплайна не пройдёт проверку».
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.