На прошлой неделе Google зарелизили GKE Autopilot. Это новый вид кластера в GKE, который подразумевает, что data plane тоже управляется облаком. По сути, под собой это обвязка над Node Pools + Cluster Autoscaler + Admission Webhook, но теперь предоставляется SLA на поды 99.9%. У самого control plane SLA такой-же, как и у регионального кластера, что говорит о готовности решения для прода.



А теперь к интересной нам части - что сделали с точки зрения безопасности



Nodes:

- Container optimized OS с заhardenin'ым ядром

- нет доступа к нодам - не видны в консоли, нет SSH

- Shielded GKE nodes

- Secure Boot



Runtime:

- priviledged mode убран

- ограниченные capabilities ("SETPCAP", "MKNOD", "AUDIT_WRITE", "CHOWN", "DAC_OVERRIDE", "FOWNER",

"FSETID", "KILL", "SETGID", "SETUID", "NET_BIND_SERVICE", "SYS_CHROOT", "SETFCAP"), отсутствует CAP_NET_RAW!

- Seccomp профиль runtime/default

- запрещен hostPath, кроме /var/log

- запрещены host namespaces



Resources:

- изменения в kube-system не доступны

- cluster-admin не существует, только локальный админ внутри namespace

- Workload Identity - SA внутри k8s работают, как облачный SA. Отсюда, нет завязки на SA из metadata API



Add-ons которые планируют добавить:

- Istio

- Confidential GKE Nodes

- Application-layer secrets encryption

- Binary authorisation

- RBAC Google Groups

- Network Policies



Из-за жестких runtime ограничений, большинство тулинга (логгинг, мониторинг, etc) не запустится на Autopilot. Но это обещают исправить. Предоставленная конфигурация позволяет избежать ряда атак на ваш кластер, но из-за этого он менее гибок (что так же верно и для on-prem решения с теми же включенными опциями).



В целом, выглядит как то, что именно таким Kubernetes должен выглядеть by default. Если вас устраивает тулинг от Google Cloud в части логгинга и мониторинга, то Autopilot может стать хорошей заменой Standard cluster. В будущем с введением add-ons будет покрыт полный scope атак, начиная шифрованием памяти и заканчивая supply-chain атаками на образы.