Kubernetes и ничего не делать с capabilities (это подмножество привилегий, которые обычно предоставляются root), то в итоге у контейнера они все равно будут. Это так называемые Default Capabilities:-
cap_chown - Разрешает изменение владельца файлов.-
cap_dac_override - Разрешает доступ к файлам, игнорируя права.-
cap_fowner - Разрешает изменение владельца файлов.-
cap_fsetid - Разрешает установку битов setuid и setgid.-
cap_kill - Разрешает отправку сигналов процессам.-
cap_setgid - Разрешает изменение группы.-
cap_setuid - Разрешает изменение пользователя.-
cap_setpcap - Разрешает установку собственных способностей. -
cap_net_bind_service - Разрешает привязку к привилегированным портам (ниже 1024).-
cap_net_raw - Разрешает использование сырых сокетов. -
cap_sys_chroot - Разрешает изменение корневой директории.-
cap_mknod - Разрешает создание специальных файлов.-
cap_audit_write - Разрешает запись в журнал аудита ядра.-
cap_setfcap - Разрешает установку способностей для файлов.Поэтому всегда не забывайте прописывать в настройках рабочих нагрузок:
securityContext:
capabilities:
drop:
- ALL
Это спокойно работает для
99.9% любых бизнес микросервисов. С инфраструктурными сервисами разговор уже отдельный, но и там необходимо следовать принципу наименьших привилегий.