【问题标题】:Assessing the security of Docker in Kubernetes (+Rancher)评估 Kubernetes 中 Docker 的安全性(+Rancher)
【发布时间】:2020-02-15 03:50:58
【问题描述】:

我使用docker-bench 评估了 Kubernetes 集群中 Docker 容器的安全配置。我注意到所有 Kubernetes 容器,例如

kube-proxy
kubelet
kube-apiserver
k8s_kube-flannel_canal
k8s_POD_canal
k8s_trident-main_trident-csi
...

root 身份运行。这是必要的吗?

此外,一些 Kubernetes 容器,例如 k8s_trident-main_tridentkube-proxykubelet 以特权模式运行。我想这是 Kubernetes 正常工作所必需的。

我的问题是:如何正确评估 Kubernetes 中 Docker 的安全配置?据我了解,Kubernetes 涵盖了大多数设置,例如 CPU/内存使用、PID cgroup 限制和健康检查。不过现在不知道能不能说一下Docker通过Kubernetes和Rancher管理的时候的安全配置(也用RancherOS)。重新梳理上一个问题:除了加固 Kubernetes 之外,还应该采取哪些步骤/控制来加固 Docker?

【问题讨论】:

    标签: docker security kubernetes rancher


    【解决方案1】:

    ...以根用户身份运行。有必要吗?

    如果他们中的一些人这样做,您可以认为应该有一个很好的理由。相信kubernetes的创造者们对最小权限原则的概念是相当熟悉的。所以我会说:是的,很可能需要能够在节点系统上执行所需的操作。然而,它可以被讨论为例如here

    例如kubeadm 真的需要root 权限吗?嗯...能够执行所有必需的操作,是的。与this 答案比较。

    然而,关于以非 root 用户身份运行整个 kubernetes 集群的想法也出现了。我发现了一个有趣的presentation 讨论这个概念。

    您的问题涉及的主题非常广泛,无法提供一个正确的答案。我会说这是一篇广泛的博客文章甚至电子书的材料(与 this one 相比)。

    此外,一些 Kubernetes 容器,例如 k8s_trident-main_tridentkube-proxykubelet 跑进来 特权模式。我想这是 Kubernetes 工作所必需的 正确。

    如果您希望您的容器也能够在主机系统上执行某些操作,则无法避免特权模式。

    您可能还想熟悉 Kubernetes 官方文档中的以下文章:

    https://kubernetes.io/docs/concepts/security/overview/

    https://kubernetes.io/docs/tasks/administer-cluster/securing-a-cluster/

    希望对你有帮助。

    【讨论】:

    • 感谢您的广泛回答。我已阅读您发布的文档。我更多的是寻找有关 Docker 与 Kubernetes 结合的安全性以及它与 Kubernetes 中的功能重叠的信息。例如,在使用 docker-bench 进行审查时,Kubernetes 涵盖了一些(甚至可能是大多数)控件,例如“确保正确配置了默认 ulimit”和“确保容器的内存使用受到限制”,但不是全部(我猜)。而且我真的在寻找 Kubernetes 本身没有涵盖的控件。 :)
    猜你喜欢
    • 1970-01-01
    • 2015-01-12
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 2012-01-25
    相关资源
    最近更新 更多