Как я могу создать роль Kubernetes, в которой пользователи могут создавать пространства имен, в которых они могут делать что угодно? - PullRequest
0 голосов
/ 11 октября 2019

Я создал роль, ниже приводится определение роли:

---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: ${SERVICE_ACCOUNT_NAME}-full-access-role
  namespace: ${NAMESPACE}
rules:
- apiGroups: ["", "extensions", "apps"]
  resources: ["*"]
  verbs: ["*"]
- apiGroups: ["batch"]
  resources:
  - jobs
  - cronjobs
  verbs: ["*"]

Используя эту роль, пользователь может создавать, перечислять и удалять любые ресурсы в пространстве имен, но проблема в том, что он также может перечислять все пространства имен вcluster.

Я хочу, чтобы пользователи могли создавать пространства имен и могли также выполнять в нем какие-либо действия, но они также не могут перечислять ресурсы, даже другие пространства имен, которые не созданы пользователем.

Ответы [ 2 ]

1 голос
/ 14 октября 2019

Я думаю, что вы не можете отказать пользователю в праве доступа, чтобы перечислить все пространства имен и предоставить им доступ, который вам нужен одновременно. По крайней мере, не в голых металлических кубернетах. Прочитайте следующую проблему GH , о похожей проблеме, с которой вы столкнулись.

0 голосов
/ 11 октября 2019

Будет полезно, если вы сообщите нам, на какой облачной платформе вы находитесь. Насколько мне известно, разные облачные платформы по-разному обрабатывают доступ на основе ролей.

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

...