Почему пользователь root по умолчанию разрешен в публичных облачных сервисах Kubernetes?

Почему пользователь root по умолчанию разрешен в публичных облачных сервисах Kubernetes?

В среде Kubernetes я предполагаю, что пользователю root не должно быть разрешено по умолчанию снижать риск в случае, если хостовая ОС была доступна изнутри контейнера. Эту настройку следует выполнить, прописав в PodSecurityPolicy.

Учитывая это, я просто задаюсь вопросом: почему мы можем использовать пользователя root для запуска контейнеров в публичных облачных сервисах Kubernetes, таких как EKS, AKE и GKE? Есть ли у них еще один уровень мер безопасности, чтобы предотвратить взлом контейнеров злоумышленниками?

решение1

Даже если существует вероятность того, что контейнеризованный процесс получит доступ к хостовой ОС из-за неисправленной уязвимости и, таким образом, получит полный контроль над системой, поскольку он работает как root, я считаю, что публичные облака предпочитают не применять это по умолчанию, поскольку многие известные программные пакеты имеют своиосновной процесс выполняется как root- например, служба nginx использует основной процесс-демон, работающий как root, который, в свою очередь, порождает рабочие процессы, работающие как www-dataдля повышения безопасности.

решение2

Пользователю root разрешено выполнять любые действия в системе Linux, включая запуск контейнеров Docker. Невозможно запретить пользователю root запускать контейнеры Docker. Вместо этого можно ограничить доступ пользователю root и использовать sudo, чтобы разрешить пользователям, не являющимся root, выполнять определенные действия в системе.

Однако в данном случае Dockerэто не имеет большого значения, потому что:

Группа docker предоставляет привилегии, эквивалентные пользователю root. Подробности о том, как это влияет на безопасность вашей системы, см.Поверхность атаки Docker Daemon.

управлять-docker-как-не-root-пользователь

Таким образом, любой пользователь Linux, имеющий разрешение на выполнение команд Docker, может получить права root в системе.

Привилегии root внутри контейнера не являются проблемой, поскольку Docker — это технология виртуализации на уровне ОС. Пользователь root внутри контейнера не имеет доступа к базовой ОС, на которой запущен демон docker.

Связанный контент