我使用docker-bench
评估了 Kubernetes 集群中 Docker 容器的安全配置。我注意到所有 Kubernetes 容器,例如
kube-proxy
kubelet
kube-apiserver
k8s_kube-flannel_canal
k8s_POD_canal
k8s_trident-main_trident-csi
...
以根用户身份运行。这有必要吗?
此外,一些 Kubernetes 容器,如k8s_trident-main_trident
、kube-proxy
和kubelet
以特权模式运行。我想这对于 Kubernetes 正常工作是必要的。
我的问题是:你如何正确评估 Kubernetes 中 Docker 的安全配置?我知道 Kubernetes 涵盖了大多数设置,例如 CPU/内存使用情况、PID cgroup 限制和运行状况检查。但是,现在我不知道我是否可以对Docker的安全配置说些什么,当它通过Kubernetes和Rancher管理时(也使用RancherOS(。重新构建上一个问题:除了强化 Kubernetes 之外,应该采取哪些步骤/控制来强化 Docker?
...以根用户身份运行。这有必要吗?
如果他们中的一些人这样做,你可以假设应该有一个很好的理由。我相信kubernetes的创建者非常熟悉最小特权原则的概念。所以我会说:是的,很可能有必要能够在节点系统上执行所需的操作。但是,可以在此处进行讨论。
例如kubeadm真的需要 root 权限吗?井。。。为了能够执行所有必需的操作,是的。与这个答案比较。
然而,关于以非 root 用户身份运行整个kubernetes集群的想法也出现了。我发现了一个有趣的演示文稿来讨论这个概念。
您在问题中触及了非常广泛的主题,不可能提供单一的正确答案。我会说这是一篇广泛的博客文章甚至电子书(与这本相比(的材料。
此外,一些 Kubernetes 容器,例如
k8s_trident-main_trident
,kube-proxy
和kubelet
跑了进来 特权模式。我想这对于 Kubernetes 工作是必要的 适当地。
如果希望容器也能够在主机系统上执行某些操作,则无法避免特权模式。
您可能还想熟悉官方 kubernetes 文档中的以下文章:
https://kubernetes.io/docs/concepts/security/overview/
https://kubernetes.io/docs/tasks/administer-cluster/securing-a-cluster/
我希望它有所帮助。