Что ж задокументируем часть подготовки, будет что воспомнить а может кто почитает пригодится…
Что было бы не плохо знать.
Инфа об окружении экзамeна
Тут про то как копировать/вставить и тд https://docs.linuxfoundation.org/tc-docs/certification/important-instructions-cks
Ресурсы доступные во время экзамена
Когда начнется экзамен в браузере будет открыта страница Avaliable Resources
Собственно на ней расположен список доступных ресурсов.
- https://kubernetes.io/docs/ - kuber
- https://kubernetes.io/blog/ - kuber
- https://aquasecurity.github.io/trivy/ - trivy
- https://falco.org/docs/ - falco
- https://etcd.io/docs/ - etcd
- https://gitlab.com/apparmor/apparmor/-/wikis/Documentation - apparmor
- Доки нет но знать надо sysdig (может быть было бы не плохо уметь запускать kubesec его нету в окружении)!!!
Тут я добавил некий неймниг к этим ресурсам что бы подробнее остановится на том за фига они вообще могут пригодится
Kuber Resources
Main
- https://kubernetes.io/docs/ - kuber
- https://kubernetes.io/blog/ - kuber
В экзамене присутствую вопросы из разряда редактирования Network Policy/kube-apiserver/audit и тд (полный список тем можно посмотреть тут
Все “шаблоны” из которых можно сделать network policy/audit и тд проще искать в этих доках. Желательно заранее запомнить какой нить хороший шаблон и по время предварительной практики брать его за основу, удалять от туда не нужноe оставлять нужное).
На самом деле по ходу экзамена в некоторых вопросах вам будут класть шаблоны yaml файлов для дальнейшего редактирования. В целом можно брать их и “конкатенировать” с шаблоном из доки. Потому что тот шаблон который вам положат на сервере во время экзамена как правило минимальный, и я не уверен что кто-то в здравом уме запомнит все yaml параметры которые туда надо засунуть если у него только не 20 лет опыта администрирования кубера.
Kubernetes API Reference
Kubernetes API Reference запомните эту словосочетание если надо будет делать какую нить audit policy и задача будет логировать Request для Deployment то как бы не плохо знать что группа у него не core а apps
1
2
3
4
- level: Request
resources:
- group: "apps"
resources: ["deployments"]
Security Context
На что тут стоит обратить внимание, это все ради экономии времени.
Capabilities
Если вы хотите добавить какие то дополнительные capabilities они задаются на уровне контейнера а не пода.
1
2
3
4
5
6
7
8
9
10
11
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo-4
spec:
containers:
- name: sec-ctx-4
image: gcr.io/google-samples/hello-app:2.0
securityContext:
capabilities:
add: ["NET_ADMIN", "SYS_TIME"]
При этом если вы хотите использовать seccompProfile то его можно задать в рамках пода или контейнера
1
2
3
4
securityContext:
seccompProfile:
type: Localhost
localhostProfile: my-profiles/profile-allow.json
appArmorProfile - использовать в рамках контейнера
1
2
3
4
5
6
containers:
- name: container-1
securityContext:
appArmorProfile:
type: Localhost
localhostProfile: k8s-apparmor-example-deny-write
В целом рекомендовал бы тут по эксперементировать с тем какие вообще опции из securityContext можно написать в pod какие конкретно к контейнеру.
Trivy
Что тут сказать скорее всего будет вопрос как и в лабах вида:
“У вас есть какие то поды удалите все которые имеют CRITICAL уязвимости”
Тут я бы порекомендовал набить руку предварительно сканируя сразу пачки подов. Т.к вопрос по сути элементарный а копировать image нескольких подов это вообще ни фига не быстро… Учитывая что время это удинственный наш ограничитель, то на подобные задания хотелось бы тратить несколько секунд=)
Либо как минимум надо уметь выводить pod+img т.е опеределнные поля из описания пода (custom-columns)
1
kubectl get po -h
там есть вариант в выводом конкретных полей из json
falco/sysdig
Предположим что вы встретите вопрос вида
“Вот у нас тут какой то под с именем trololo подозрительный залогируйте модифицирование файла /etc/passwd в формате timestamp,username,cmd,file”
И будет предложено сделать это тулзой на ваш выбор т.е falco или sysdig Выбирайте sysdig если вы конечно не хотите долго долбаться с выводом falco с помощью какого нить awk/cut/sed и тд + все сильно проще… Дока по falco вам все равно пригодится а именно страница:
https://falco.org/docs/reference/rules/supported-fields/ - вот прям надо запомнить где она в иерархии страниц находится потому что эти сраные поля вам понадобятся везде от написание правила для sysdig до написания condition + rule если вы выберете falco.
Так же не плохо было бы иметь понимание макросов в falco т.к если придется писать condition для sysdig используя доку falco, там довольно много завязанно на макросы. (Если бы точнее эт syscall)
Опять же задание само по себе простое, но необходимо пыщ пыщ что бы за пару минут вы накидали в правило те поля которые они просят и вывели это.
Понятно что в реальной жизни falco конечно неговно… демон, настриваемый логирует в форматах разных и веселых, но когда надо вот быстро здесь и сейчас что-то получить это не про него
etcd
Как минимум понимать где в доке находятся опции которые можно задать для etcd…
Apparmor
Загрузить профиль… использовать в поде.. короче все как в доке.
END
Всем удачи в сертификации. Было бы круто если бы кто-нить написал на кой хер он вообще ее сдает… ито я до сих пор задаю себе этот вопрос…