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

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

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

0
задан 9 December 2020 в 12:54
2 ответа

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

1
ответ дан 4 January 2021 в 09:23

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

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

Группа докеров предоставляет привилегии, эквивалентные пользователю root. Для получения подробной информации о том, как это влияет на безопасность в вашей системе, см. Docker Daemon Attack Surface .

manage-docker-as-a-non-root-user

Итак, любой пользователь Linux, имеющий разрешение на Выполнение команд docker может получить привилегии суперпользователя в системе.

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

1
ответ дан 4 January 2021 в 09:23

Теги

Похожие вопросы