Я создал один мастер, один рабочий кластер kubeadm, используя все настройки по умолчанию (кроме изменения версии kubernetes на 1.13.4). В частности, включена только авторизация Node и RBAC, и я использую учетные данные администратора по умолчанию для доступа к кластеру, который аутентифицирует меня как пользователя kubernetes-admin и group system: masters (который привязан к роли кластера-администратора) с сертификатом клиента. .

Затем я удалил кластерную роль cluster-admin, но у меня все еще есть полный доступ, включая, например, перечисление модулей. Почему это? Я заметил, что роль кластера администратора кластера действительно возвращается через некоторое время, но тем временем я ожидал, что моих разрешений там не будет.

Версия kubeadm:

kubeadm version: &version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.4", GitCommit:"c27b913fddd1a6c480c229191a087698aa92f0b1", GitTreeState:"clean", BuildDate:"2019-02-28T13:35:32Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}

Версия kubernetes: 1.13.4

0
dippynark 7 Мар 2019 в 17:24

1 ответ

Лучший ответ

Группа system:masters (которая была указана как организация в моем клиентском сертификате) может обходить проверки RBAC: https://github.com/kubernetes/kubernetes/blob/master/pkg/registry/rbac/escalation_check.go#L38-L44

3
dippynark 8 Мар 2019 в 16:04