Оценка безопасности Docker в Kubernetes (+ Rancher) - PullRequest
1 голос
/ 14 февраля 2020

Я оценил конфигурацию безопасности контейнеров Docker в кластере Kubernetes, используя docker-bench. Я отметил, что все контейнеры Kubernetes, такие как

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

, работают как root. Это необходимо?

Кроме того, некоторые контейнеры Kubernetes, такие как k8s_trident-main_trident, kube-proxy и kubelet, работали в привилегированном режиме. Я думаю, что это необходимо для правильной работы Kubernetes.

Мой вопрос: как вы правильно оцениваете конфигурацию безопасности Docker в Kubernetes? Я понимаю, что большинство настроек охватываются Kubernetes, таких как использование процессора / памяти, ограничение группы PID и проверки работоспособности. Однако теперь я не знаю, могу ли я что-нибудь сказать о конфигурации безопасности Docker, когда она управляется через Kubernetes и Rancher (также используется RancherOS). Перефразируя предыдущий вопрос: какие шаги / элементы управления необходимо предпринять, чтобы укрепить Docker в дополнение к укреплению Кубернетеса?

1 Ответ

0 голосов
/ 14 февраля 2020

... работает как root. Это необходимо?

Если некоторые из них это сделают, вы можете предположить, что для этого должна быть достаточно веская причина. Я считаю, что создатели kubernetes достаточно знакомы с концепцией принципа наименьших привилегий . Поэтому я бы сказал: да, скорее всего, необходимо иметь возможность выполнять необходимые операции в системе узлов. Однако это можно обсудить, как, например, здесь .

Например, kubeadm действительно нужны привилегии root? Ну ... чтобы иметь возможность выполнять все необходимые операции, да. Сравните с этим ответом.

Однако также возникают идеи о запуске всего кластера kubernetes как пользователя, не являющегося root. Я нашел интересную презентацию , обсуждающую эту концепцию.

Вы затронули действительно широкий топи c в своем вопросе, и невозможно дать ни одного правильного ответа. Я бы сказал, что это скорее материал для обширной статьи в блоге или даже электронной книги (сравните с этой ).

Более того, некоторые контейнеры 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/

Надеюсь, это поможет.

...