Как создать пользователя?
Как ограничить права пользователю конкретными пространствами имён?
Чтобы ограничить права пользователя конкретными пространствами имён, используйте в RoleBinding
use-роль с соответствующим уровнем доступа. Пример….
Как ограничить права пользователю конкретными пространствами имён (устаревшая ролевая модель)
Используется устаревшая ролевая модель.
Использовать параметры 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
имеет право запрашивать и просматривать объекты среди всех пространств имён, помеченныхenv=review
.Administrators
могут запрашивать, редактировать, получать и удалять объекты на уровне кластера и из пространств имён, помеченныхenv=prod
иenv=stage
.
Так как для Jane Doe
подходят два правила, необходимо провести вычисления:
- Она будет иметь самый сильный accessLevel среди всех подходящих правил —
ClusterAdmin
. - Опции
namespaceSelector
будут объединены так, чтоJane Doe
будет иметь доступ в пространства имён, помеченные меткойenv
со значениемreview
,stage
илиprod
.
Note! Если есть правило без опции
namespaceSelector
и без опцииlimitNamespaces
(устаревшая), это значит, что доступ разрешен во все пространства имён, кроме системных, что повлияет на результат вычисления доступных пространств имён для пользователя.