Итак, я пытаюсь реализовать авторизацию ABAC в API kubernetes со следующими аргументами в файле манифеста kube-api.Какое имя пользователя использует kubernetes kubelet при обращении в API kubernetes?
- --authorization-mode=ABAC
- --authorization-policy-file=/etc/kubernetes/auth/abac-rules.json
И следующее содержание в файле abac-rulse.json.
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user":"*", "nonResourcePath": "*", "readonly": true}}
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user":"admin", "namespace": "*", "resource": "*", "apiGroup": "*" }}
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user":"scheduler", "apiGroup": "*", "namespace": "*", "resource": "*", "readonly": false}}
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user":"kubelet", "apiGroup": "*", "namespace": "*", "resource": "*", "readonly": false }}
Однако, kubelets, похоже, не может подключаться к серверам api. Я прочитал, что имя пользователя берется из поля CN в -subject в сертификате, используемом для аутентификации соединения, see here. В этом случае это fqdn шланга, я тоже пробовал, что не повезло.
Любые идеи, что я делаю неправильно?
Приветствия заранее
Edit:
Я использую Kubernetes версии 1.2.2, как kubectl и hyperkube докер изображения.
Это, безусловно, помогло мне. Благодаря! –