По умолчанию контейнеры в Kubernetes наследуют определённый набор возможностей (
capabilities) — кучу привилегий словно с root-доступом.Это называется
Default Capabilities, и вот что в них есть:— Разрешить менять владельцев файлов (
cap_chown).— Игнорировать права доступа к файлам (
cap_dac_override).— Привязываться к портам (<1024,
cap_net_bind_service).— И даже писать в журнал ядра (
cap_audit_write) или создавать файлы (cap_mknod)Всего — 14 привилегий, которые могут выйти боком.
Чтобы избежать рисков, добавьте в настройки workloads:
securityContext:
capabilities:
drop:
- ALL
Это выключает все лишние привилегии.
С инфраструктурными сервисами принцип тот же — давайте как можно меньше привилегий.
@DevOpsKaz 😛
