Как создать пользователя?
Как ограничить права пользователю конкретными namespace?
Чтобы ограничить права пользователя конкретными namespace, используйте в RoleBinding
use-роль с соответствующим уровнем доступа. Пример….
Как ограничить права пользователю конкретными namespace (устаревшая ролевая модель)
Используется устаревшая ролевая модель.
Использовать параметры namespaceSelector
или limitNamespaces
(устарел) в custom resource ClusterAuthorizationRule
.
Что, если два ClusterAuthorizationRules подходят для одного пользователя?
Представьте, что пользователь jane.doe@example.com
состоит в группе administrators
. Созданы два ClusterAuthorizationRules:
apiVersion: deckhouse.io/v1
kind: ClusterAuthorizationRule
metadata:
name: jane
spec:
subjects:
- kind: User
name: jane.doe@example.com
accessLevel: User
namespaceSelector:
labelSelector:
matchLabels:
env: review
---
apiVersion: deckhouse.io/v1
kind: ClusterAuthorizationRule
metadata:
name: admin
spec:
subjects:
- kind: Group
name: administrators
accessLevel: ClusterAdmin
namespaceSelector:
labelSelector:
matchExpressions:
- key: env
operator: In
values:
- prod
- stage
jane.doe@example.com
имеет право запрашивать и просматривать объекты среди всех namespace’ов, помеченныхenv=review
.Administrators
могут запрашивать, редактировать, получать и удалять объекты на уровне кластера и из namespace’ов, помеченныхenv=prod
иenv=stage
.
Так как для Jane Doe
подходят два правила, необходимо провести вычисления:
- Она будет иметь самый сильный accessLevel среди всех подходящих правил —
ClusterAdmin
. - Опции
namespaceSelector
будут объединены так, чтоJane Doe
будет иметь доступ в namespace’ы, помеченные меткойenv
со значениемreview
,stage
илиprod
.
Note! Если есть правило без опции
namespaceSelector
и без опцииlimitNamespaces
(устаревшая), это значит, что доступ разрешен во все namespace’ы, кроме системных, что повлияет на результат вычисления доступных namespace’ов для пользователя.