我已经使用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限制和运行状况检查。但是,现在我不知道当通过Kubernetes和Rancher(也使用RancherOS)进行管理时,关于Docker的安全性配置我是否还能说什么。重新思考上一个问题:除了加强Kubernetes之外,还应采取哪些步骤/控制来加强Docker?
最佳答案
...run as root. Is this necessary?
如果其中某些人这样做,您可以认为应该有充分的理由。我相信 kubernetes 的创建者非常熟悉最小特权原则的概念。所以我会说:是的,很可能必须能够在节点系统上执行所需的操作。但是,可以将其讨论为here。
是否例如 kubeadm 真的需要root特权吗?好吧...能够执行所有必需的操作,是的。与this答案进行比较。
但是,关于以非root用户身份运行整个 kubernetes 集群的想法也出现了。我发现一个有趣的presentation讨论了这个概念。
您在问题中触及到了非常广泛的话题,因此不可能提供一个适当的答案。我想说,对于大量博客文章甚至是电子书(与this one相比),这都是相当重要的。
Furthermore, some Kubernetes containers, such as
k8s_trident-main_trident
,kube-proxy
andkubelet
ran in privileged mode. I guess this is necessary for Kubernetes to work properly.
如果希望容器也能够在主机系统上执行某些操作,则无法避免特权模式。
您可能还需要熟悉kubernetes官方文档中的以下文章:
https://kubernetes.io/docs/concepts/security/overview/
https://kubernetes.io/docs/tasks/administer-cluster/securing-a-cluster/
希望对您有所帮助。
关于docker - 在Kubernetes(+ Rancher)中评估Docker的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60227217/