На прошлой неделе Google зарелизили GKE Autopilot. Это новый вид кластера в GKE, который подразумевает, что
А теперь к интересной нам части - что сделали с точки зрения безопасности
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"), отсутствует
- Seccomp профиль
- изменения в
-
- 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. Но это обещают исправить. Предоставленная конфигурация позволяет избежать ряда атак на ваш кластер, но из-за этого он менее гибок (что так же верно и для
В целом, выглядит как то, что именно таким Kubernetes должен выглядеть by default. Если вас устраивает тулинг от Google Cloud в части логгинга и мониторинга, то Autopilot может стать хорошей заменой
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
атаками на образы.