docker - 在Kubernetes(+ Rancher)中评估Docker的安全性

标签 docker security kubernetes rancher

我已经使用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_tridentkube-proxykubelet)以特权模式运行。我想这对于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 and kubelet 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/

相关文章:

mongodb - 由于缺少 featureCompatibilityVersion 文档,无法启动 mongod。 Docker 问题

docker - 如何创建子域以公开运行到 Jenkins 管道中的 docker 容器中的应用程序

AJAX 登录调用中的 Javascript 散列,更安全?

amazon-web-services - 按标签 AGE 删除 kubernetes pvc 的自动化脚本

kubernetes - GitLab集成响应401中的helm安装

docker - 无法在无人机 docker build : Error parsing reference: ":latest" is not a valid repository/tag: invalid reference format 上标记图像

检查 docker alpine musl 版本

security - 如何对我自己域中的 iframe 实现同源策略 iframe 限制?

android - 在 Android 应用程序中安全下载数据

docker - Flink 1.5.4 没有在 Kubernetes 中注册 Google Cloud Storage (GCS) 文件系统,尽管它可以在 docker 容器中运行