Проблемы с простым примером RBAC - PullRequest
0 голосов
/ 24 сентября 2018

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

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: dev
  name: dev-readpods-role
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch", "list"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: dev-tester-rolebinding
  namespace: dev
subjects:
- kind: User
  name: Tester
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: dev-readpods-role
  apiGroup: rbac.authorization.k8s.io

Роль и ролевая привязка созданы.

Когда я вхожу в Tester и пытаюсь

kubectl get pods -n dev

Iget

Error from server (Forbidden): pods is forbidden: User "<url>:<port>/oidc/endpoint/OP#Tester" cannot list pods in the namespace "dev"

Я прочитал здесь ( Ошибка RBAC в Кубернетесе ), что api-сервер должен быть запущен с --authorization-mode =…, RBAC.Как я могу это проверить?Я где-то читал, что, если я запускаю

kubectl api-versions | findstr rbac

и нахожу записи, RBAC должен быть активирован.Это правда?

Что я делаю не так?Есть хороший способ устранения неполадок?

Спасибо!

PS Я использую kubernetes внутри IBM Cloud Private.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

В ICP выглядит обнадеживающим использование команд (я думаю, это собственный термин ICP).Попробуйте начать с этого.Но вам нужен сервер LDAP вне ICP.https://www.ibm.com/support/knowledgecenter/en/SSBS6K_2.1.0.3/user_management/admin.html

0 голосов
/ 24 сентября 2018

Вам нужно будет определить вызов сервера, чтобы увидеть, какой флаг --authorization-mode был ему передан.Обычно это содержится в файле системного модуля или манифесте модуля.Я не уверен, как IBM Cloud запускает аписервер

...