Работая на кластере Kubernetes с одним узлом, я хочу применить ограничительную политику безопасности pod к группе пользователей, аутентифицированных с помощью openid.Итак, последовательность шагов такая.
- Инициализируйте кластер и создайте политики безопасности модуля.
- Примените контроллер доступа
PodSecurityPolicy
на сервере API (который вызывает перезапуск сервера API) - Создайте
ClusterRole
и RoleBinding
для пользователей.
Аутентификация пользователей с помощью openid и выборка их групп работает хорошо, однако ограничение PodSecurityPolicy
для этой группы не работает.Примеры ClusterRole
и RoleBinding
приведены ниже.Если я использую system:authenticated
вместо mygroup
, политика будет принята для создания новых модулей.
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: psp:restricted
rules:
- apiGroups:
- extensions
resources:
- podsecuritypolicies
resourceNames:
- restricted # the psp we are giving access to
verbs:
- use
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: psp:restricted
subjects:
- kind: Group
name: mygroup # My group from openid, DOESN'T WORK.
# name: system:authenticated # all authenticated users, WORKS.
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: ClusterRole
name: psp:restricted # A references to the role above
apiGroup: rbac.authorization.k8s.io
- Как настроить политику безопасности модуля
RoleBinding
для определенной группы?Есть ли ошибки в моих шагах выше.У меня есть другие RoleBinding
s в этой группе, которые прекрасно работают. - Вторая проблема заключается в том, что Flannel pod не может появиться, так как кажется, что он выбирает ограничительную политику, которая предотвращаетмонтирование тома и т. д. Я прочитал, что порядок политик имеет значение , и попытался назвать политику с именем, которое сортирует политику как последнюю.Если я вставлю политики намного позже и добавлю
PodSecurityPolicy
контроллер доступа после инициализации Flannel, все будет хорошо.Есть ли порядок, которому мы должны следовать при вставке политик, контроллеров доступа?