Как создать пользователя?
Как ограничить права пользователю конкретными namespace?
Использовать параметр limitNamespaces
в CR ClusterAuthorizationRule
.
Что если два ClusterAuthorizationRules подходят для одного пользователя?
Представьте что пользователь jane.doe@example.com
состоит в группе administrators
. Созданы два cluster authorization rules:
apiVersion: deckhouse.io/v1
kind: ClusterAuthorizationRule
metadata:
name: jane
spec:
subjects:
- kind: User
name: jane.doe@example.com
accessLevel: User
limitNamespaces:
- review-.*
---
apiVersion: deckhouse.io/v1
kind: ClusterAuthorizationRule
metadata:
name: admin
spec:
subjects:
- kind: Group
name: administrators
accessLevel: ClusterAdmin
limitNamespaces:
- prod
- stage
jane.doe@example.com
имет права запрашивать и просматривать объекты среди всех review namespace’ов.Administrators
могут запрашивать, редактировать, получать и удалять объекты на уровне кластера и из namespace’овprod
иstage
.
Так как для Jane Doe
подходят два правила, необходимо провести вычисления:
- Она будет иметь самый сильный accessLevel среди всех подходящих правил —
ClusterAdmin
. - Опции
limitNamespaces
будут объединены так, что Jane будет иметь доступ в их общее множество.
Итоговые выданные права будут такими:
accessLevel: ClusterAdmin
limitNamespaces:
- prod
- stage
- review-.*
Note! Если есть правило без опции limitNamespaces, это значит, что доступ разрешен во все namespace’ы, кроме системных, что повлияет на результат вычисления доступных namespace для пользователя.