CKS (специалист по безопасности Kubernetes): предварительные требования и 6-недельный план обучения
CKS сложнее, чем CKA, имеет более узкий охват и требует активного сертификата CKA для регистрации. Вот как подготовиться к нему, не выгорая.
CKS — Certified Kubernetes Security Specialist — на мой взгляд, самый сложный из трех профессиональных экзаменов Kubernetes, он уже по объему, чем CKA, и более беспощаден в условиях ограниченного времени. Два часа, практический, $445, включает бесплатную пересдачу. PSI Bridge, только онлайн, без тестовых центров. Проходной балл — 67%. CNCF не публикует официальные показатели сдачи, но по данным опросов сообщества, показатель сдачи с первой попытки колеблется в районе 40–50%, что ниже, чем у CKA, и это соответствует моему опыту наблюдения за коллегами, сдающими его.
Самое главное, что многие упускают: вы не можете просто так зарегистрироваться. CNCF требует наличия активного сертификата CKA в вашей учетной записи на момент регистрации. Не просто "вы когда-то сдавали CKA". А активный. Если срок действия вашего CKA истек (что теперь происходит через 2 года вместо 3 после изменения политики от 1 апреля 2024 года), вам необходимо продлить его, прежде чем вы сможете зарегистрироваться на CKS. Это жесткое требование, а не мягкая рекомендация, и оно удивляет людей каждый квартал.
Реальные предварительные требования
Официальное: активный CKA. И всё.
Неофициальные:
- Уверенное владение
kubectl, чтобы вам не приходилось задумываться о синтаксисе. Если вы всё ещё гуглите "kubectl create deployment", вы не готовы. - Основы Linux — вам придется подключаться по SSH к узлам, читать журналы systemd, редактировать флаги kubelet и отлаживать сбои профилей seccomp / AppArmor. Если
journalctl -u kubeletдля вас незнакомо, исправьте это в первую очередь. - Знание
vim. Не мастерство Vim. Но редактирование YAML в vim за 2 часа без потери 30 секунд на "подождите, как мне снова сохранить" является обязательным. - Рабочая ментальная модель NetworkPolicy. Это самый большой камень преткновения на экзамене. Подробнее об этом ниже.
- Некоторый опыт работы с Falco, Trivy, AppArmor, seccomp, mTLS через service mesh и Pod Security Standards. Вам не обязательно быть экспертом в чем-либо из этого; вы должны их узнавать.
Если вам не хватает более двух из них, потратьте еще месяц на практические упражнения в стиле CKA, прежде чем приступать к CKS. Попытка изучать операции и безопасность Kubernetes одновременно в условиях ограниченного времени — это путь к использованию бесплатной пересдачи.
Что на самом деле проверяется
Учебная программа CNCF разделяет это следующим образом (проценты меняются с каждой редакцией программы; актуально на начало 2026 года):
- Настройка и усиление безопасности кластера (~15%): бенчмарки CIS, kube-bench, ограничение внешнего доступа, отключение анонимной аутентификации, флаги усиления безопасности kubelet.
- Усиление безопасности системы (~15%): усиление безопасности ядра (seccomp, AppArmor), уменьшение поверхности атаки, минимизация IAM на стороне облака.
- Минимизация уязвимостей микросервисов (~20%): Pod Security Standards (которые заменили PSP в 1.25), токены ServiceAccount, OPA / Gatekeeper или Kyverno, mTLS.
- Безопасность цепочки поставок (~20%): сканирование образов с помощью Trivy, подписание с помощью cosign, контроллеры допуска, блокирующие неподписанные образы, основы SBOM, минимизация базовых образов.
- Мониторинг, логирование, безопасность во время выполнения (~20%): правила Falco, поведенческий анализ, неизменяемость, аудит логирования на уровне API-сервера.
- Сетевая политика (NetworkPolicy) (~10%): default-deny, изоляция пространств имен, правила исходящего трафика. Указан как небольшой процент, но на практике каждая другая категория также затрагивает NetworkPolicy.
Экзамен не проверяет, как Falco работает внутри. Он проверяет, можете ли вы написать правило Falco, которое срабатывает при запуске оболочки в контейнере. Экзамен не проверяет криптографию cosign. Он проверяет, можете ли вы настроить контроллер допуска для отклонения неподписанных образов. Работа является операционной, а не академической.
6-недельный план
Предполагается около 10 часов в неделю при уже имеющемся активном CKA. Скорректируйте, если у вас больше или меньше времени.
Неделя 1: NetworkPolicy до полного изнеможения.
Настройте локальный кластер kind с Calico или Cilium (kindnet по умолчанию не применяет NetworkPolicy, что многих сбивает с толку). Напишите политику default-deny для пространства имен. Напишите политику allow-from-namespace. Напишите политику исходящего трафика, которая разрешает только DNS. Напишите политику, которая разрешает трафик от определенной метки пода между пространствами имен. Повторите всё это из памяти, пока не сможете писать их в vim, не обращаясь к kubernetes.io. YAML NetworkPolicy — это единственная область контента с наибольшим объемом на экзамене, и именно здесь большинство людей ошибаются. Потратьте здесь больше времени, чем, по вашему мнению, вам нужно.
Неделя 2: Pod Security Standards, ServiceAccounts, ужесточение RBAC.
Примените профили restricted, baseline и privileged к пространствам имен. Настройте ServiceAccounts с automountServiceAccountToken: false. Создайте RBAC, который следует принципу наименьших привилегий для развертывания, которому необходимо читать ConfigMaps только в своем пространстве имен и ничего более. Практикуйтесь в диагностике "этот под не может выполнить X из-за RBAC", пока поток kubectl auth can-i не станет автоматическим.
Неделя 3: Цепочка поставок — Trivy, cosign, admission control.
Сканируйте образ с помощью Trivy и интерпретируйте вывод CVE. Подпишите образ с помощью cosign. Настройте ImagePolicyWebhook или политику Kyverno, которая отклоняет образы, не подписанные вашим ключом. Настройте локальный реестр OCI, если хотите полностью отработать. Экзамен, вероятно, предоставит вам установленный Trivy; вы должны знать его основные флаги наизусть (--severity HIGH,CRITICAL, --ignore-unfixed).
Неделя 4: Время выполнения — Falco, AppArmor, seccomp.
Установите Falco на кластер kind. Прочитайте правила по умолчанию. Напишите пользовательское правило. Примените профиль AppArmor к поду (экзамен обычно предоставляет вам профиль, уже находящийся на узле, и просит подключить его через аннотацию — что означает знание синтаксиса container.apparmor.security.beta.kubernetes.io/<container>: localhost/<profile>). Примените профиль seccomp через securityContext.seccompProfile. Оба этих механизма имеют устаревший синтаксис на основе аннотаций и текущий синтаксис на основе полей; экзамен, как правило, проверяет текущий синтаксис, но вы должны распознавать оба.
Неделя 5: Усиление безопасности кластера и хоста.
Запустите kube-bench, интерпретируйте сбои, исправьте простые (анонимная аутентификация, аудит логирования, флаги kubelet). Настройте политику аудита на API-сервере. Ограничьте доступ к etcd. Отключите ненужные порты kubelet. Это в основном работа с Linux на уровне узла, и именно здесь инженеры без сильного опыта системного администрирования замедляются.
Неделя 6: Killer Shell, полные симуляции и отдых.
Используйте обе включенные сессии Killer Shell на этой неделе. Они намеренно сложнее реального экзамена; ожидайте, что наберете меньше баллов, чем надеялись. Используйте пробелы для изучения. Сдайте сам экзамен в последние 2–3 дня 6-й недели, пока мышечная память свежа. Не откладывайте дальше — каждую неделю задержки вы теряете рефлексы.
Выспитесь накануне. Не занимайтесь до глубокой ночи. Не меняйте свои kubectl алиасы в день экзамена.
Камни преткновения, которые сбивают с толку
NetworkPolicy в условиях ограниченного времени. Уже упоминалось и стоит повторить дважды. Структура YAML неумолима — неправильный отступ незаметно убивает политику, и под продолжает маршрутизировать трафик. Практикуйтесь в vim, пока не сможете писать default-deny + избирательный allow на уровне мышечной памяти.
Забывать, что NetworkPolicy требует CNI, который её применяет. kindnet этого не делает. flannel (по умолчанию в некоторых конфигурациях) тоже не делает. Calico, Cilium, Weave — делают. Убедитесь, что ваш тренировочный кластер использует CNI, который применяет политики, иначе вы усвоите неправильные уроки.
Путать PSP и Pod Security Standards. PSP были удалены в 1.25 (уже много лет назад, но старые учебные материалы всё ещё ссылаются на них). Текущий механизм — Pod Security Admission с профилями restricted, baseline, privileged, применяемыми через метки пространств имен. Не изучайте PSP.
Конфигурация etcd encryption-at-rest. Часто проверяется. А именно: редактирование EncryptionConfiguration, перезапуск API-сервера с правильным флагом и проверка с помощью etcdctl get, что значение зашифровано. Практикуйтесь в этом.
Ловушка вкладок браузера. Вам разрешено использовать kubernetes.io, falco.org, app-armor.net и несколько других. Вы не можете полагаться на поиск по ним в условиях ограниченного времени. Запомните структуру. Используйте вкладку для копирования и вставки определенных фрагментов, а не для изучения синтаксиса.
Стоит ли вам сдавать его?
Сдавайте CKS, если ваша работа связана или будет связана с безопасностью платформы, инженерией безопасности в Kubernetes-компании или соблюдением нормативных требований в регулируемых отраслях. Пропустите его, если вы инженер по платформе широкого профиля — CKA охватывает то, что нужно большинству таких ролей, а CKS — это избыточность, которая истекает через 2 года.
Если вы решились, просмотрите банк вопросов CKS на CertLabPro или начните пробный экзамен с таймером. Концептуальное покрытие в банках вопросов дополняет практические упражнения, которые вам нужно выполнять на реальных кластерах. Оба необходимы; ни один из них сам по себе недостаточен.