Безопасна ли общая папка виртуальной машины minikube для использования кластера в режиме онлайн?

Безопасна ли общая папка виртуальной машины minikube для использования кластера в режиме онлайн?

Я запускаю minikube на хосте MacOSX с гипервизором VirtualBox. Он делит папку (/Users) с хостом. Зачем и насколько это безопасно, достаточно ли безопасно для запуска моего кластера в сети?

Полагаю, сложно выйти из контейнера, затем из модуля, а затем из виртуальной машины, но я просто вошел туда minikube sshи не знал об общей папке и о том, что оболочка позволяет мне исследовать хост.

решение1

Нет, это небезопасно. Представьте себе, что у вас есть модуль, развернутый с образом контейнера, который был создан с директивой USER daemon в Dockerfile, которая заставляет контейнер работать под пользователем daemon. Что, если злоумышленник получит доступ к вашему реестру образов и отправит другой образ под тем же тегом? Образ злоумышленника настроен на запуск от имени пользователя root. Когда Kubernetes планирует новый экземпляр вашего модуля, Kubelet загрузит образ злоумышленника и запустит любой код, который он в него поместит. Хотя контейнеры в основном изолированы от хост-системы, запуск их процессов от имени root по-прежнему считается плохой практикой. Например, когда каталог хоста монтируется в контейнер, если процесс, запущенный в контейнере, запущен от имени root, он имеет полный доступ к смонтированному каталогу, тогда как если он запущен от имени non-root, он не будет иметь полного доступа к смонтированному каталогу. Чтобы предотвратить сценарий атаки, описанный ранее, вы можете указать, что контейнер модуля должен запускаться от имени пользователя non-root, как показано в следующем листинге.

apiVersion: v1
kind: Pod
metadata:
  name: pod-run-as-non-root
spec:
  containers:
  - name: main
    image: alpine
    command: ["/bin/sleep", "999999"]
    securityContext:
      runAsNonRoot: true

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