minikube VM 共享文件夹对于集群的在线使用是否安全?

minikube VM 共享文件夹对于集群的在线使用是否安全?

我在装有 VirtualBox 虚拟机管理程序的 MacOSX 主机上运行 minikube。它与主机共享一个文件夹 (/Users)。这是为了什么?它有多安全?是否足够安全以在线运行我的集群?

我猜想逃离容器、然后逃离 pod、然后逃离 VM 是比较困难的,但我只是简单地进入了那里minikube ssh,并不知道共享文件夹,而且 shell 允许我探索主机。

答案1

不,这并不安全。想象一下,有一个 pod 部署了一个容器镜像,该镜像是在 Dockerfile 中使用 USER daemon 指令构建的,这使得容器在守护进程用户下运行。如果攻击者可以访问您的镜像注册表并推送同一标签下的不同镜像,会怎么样?攻击者的镜像配置为以 root 用户身份运行。当 Kubernetes 调度您的 pod 的新实例时,Kubelet 将下载攻击者的镜像并运行他们放入其中的任何代码。尽管容器大多与主机系统隔离,但以 root 身份运行其进程仍被视为一种不好的做法。例如,当主机目录挂载到容器中时,如果容器中运行的进程以 root 身份运行,则它可以完全访问挂载的目录,而如果它以非 root 身份运行,则不能。为了防止前面描述的攻击场景,您可以指定 pod 的容器需要以非 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

相关内容