Настройка разрешений
Полный список наборов доступов, платформенных и кластерных разрешений.
Управление правами в платформе «Штурвал» осуществляется с помощью наборов доступов (permissions). На этой странице — полный список преднастроенных наборов, платформенных и кластерных разрешений, а также ролей в ArgoCD и прав доступа Kubeflow.
Уровни наборов доступов
| Уровень | Описание возможностей |
|---|---|
| Платформа | Доступ ко всей платформе; к клиентским кластерам без доступа к кластеру управления; только к кластеру управления; к логам; к ArgoCD; к Kubeflow |
| Кластер | Доступ к определённому клиентскому кластеру; к логам кластера; к инфраструктуре; к проектам ArgoCD и профилям Kubeflow кластера |
| Неймспейс | Доступ к определённому неймспейсу; к проекту ArgoCD и профилю Kubeflow неймспейса |
Обратите внимание! Изменение набора доступов изменит права всех пользователей и групп, которым он назначен. Если набор назначен хотя бы одному пользователю или группе, удалить его можно только после снятия всех назначений. Преднастроенные наборы недоступны для изменения или удаления — создайте новый набор при необходимости.
Примечание: Наборы доступов (Permissions) применяются только к пользователям и группам. Для ServiceAccounts используется отдельный механизм назначения прав (см. скриншот ниже).

Платформенные разрешения
Платформенные разрешения управляют доступом к ресурсам, которыми управляет кластер управления.
| Разрешение | Полномочия | Уровни | Комментарий |
|---|---|---|---|
| access-map-get | Просмотр назначенных ролей, дерева доступов | Платформа | — |
| cluster-create | Создание клиентских кластеров | Платформа | Дополнительно требует как минимум provider-get, provider-edit и ippool-get. Рекомендуется использовать набор platform-admin |
| permissions-edit | Управление правами пользователей и групп в кластере управления | Платформа | — |
| permissions-get | Получение сведений о правах в кластере управления | Платформа | — |
| platform-roles-edit | Управление правами ServiceAccounts | Платформа | — |
| platform-roles-get | Получение сведений о правах ServiceAccounts | Платформа | — |
| provider-edit | Управление провайдерами инфраструктуры | Платформа | Рекомендуется совместно с ippool-get |
| provider-get | Получение сведений о провайдерах | Платформа | Рекомендуется совместно с ippool-get |
| ippool-edit | Управление пулами IP-адресов | Платформа | Рекомендуется совместно с ippool-get, provider-get, provider-edit |
| ippool-get | Получение пулов IP-адресов | Платформа | Пулы назначаются в провайдер, поэтому рекомендуется совместно с provider-get, provider-edit |
| cluster-delete | Удаление клиентских кластеров | Платформа, Кластер | — |
| cluster-edit | Аннотации, приостановка реконсиляции, информационные сообщения | Платформа, Кластер | Дополнительно требует как минимум cluster-get и cluster-info |
| cluster-get | Получение кластера, информационного сообщения | Платформа, Кластер, Неймспейс | На уровне «Неймспейс» позволяет получить объекты кластера |
| cluster-info | Получение информации о кластере | Платформа, Кластер | — |
| cluster-infra-edit | Управление узлами, машинами | Платформа, Кластер | — |
| cluster-infra-get | Получение сведений об узлах, машинах | Платформа, Кластер | — |
| cluster-roles-edit | Управление правами в кластере | Платформа, Кластер | — |
| cluster-roles-get | Получение сведений о правах в кластере | Платформа, Кластер | — |
| namespace-roles-edit | Управление правами в неймспейсах | Платформа, Кластер, Неймспейс | — |
| namespace-roles-get | Получение сведений о правах в неймспейсах | Платформа, Кластер, Неймспейс | — |
| tenant-get | Получение информации о тенанте | Платформа, Кластер, Неймспейс | Получить информацию о самом тенанте могут только пользователи с платформенными назначениями |
| tenant-edit | Управление тенантами | Платформа, Кластер | Изменить информацию о самом тенанте могут только пользователи с платформенными назначениями |
Кластерные разрешения
Задаются в формате YAML. Первая строка — API-группа. Пример полного доступа:
- apiGroups: ['*']
resources: ['*']
verbs: ['*']
- nonResourceURLs: ['*']
verbs: ['*']
Роли в ArgoCD
Все роли доступны на любом уровне набора разрешений. Если роль ArgoCD задана в наборе уровня «Платформа», она назначается в каждом клиентском кластере. В кластере управления роль не создаётся.
| Роль | Разрешения в ArgoCD | Описание |
|---|---|---|
| admin | policyAppCreate, policyAppGet, policyAppUpdate, policyAppSync, policyAppDelete, policyAppSetCreate, policyAppSetGet, policyAppSetUpdate, policyAppSetDelete, policyExecCreate, policyLogsGet | Полный доступ: создание проектов, приложений |
| edit | policyAppCreate, policyAppGet, policyAppSync, policyAppSetCreate, policyAppSetGet | Создание приложений, без изменения репозитория и удаления |
| view | policyAppGet, policyAppSetGet | Только чтение |
Права доступа Kubeflow
| Роль | Разрешения Kubeflow | Описание |
|---|---|---|
| kubeflow-admin | Полный доступ к notebooks, pipelines, runs, jobs, experiments, KServe/Knative, Argo Workflows, Spark/Training, TensorBoard/PVC, связанным Kubernetes-ресурсам, также управление roles/rolebindings, создание localsubjectaccessreviews и полный доступ к Knative-ресурсам | Полное администрирование Kubeflow-окружения и связанных ресурсов, включая управление доступами |
| kubeflow-edit | Создание, изменение, удаление и просмотр: notebooks, pipelines, runs, jobs, experiments, KServe/Knative, Argo Workflows, Spark/Training, TensorBoard/PVC и связанных Kubernetes-ресурсов | Работа с ML-ресурсами: запуск, изменение и удаление рабочих нагрузок, без администрирования-окружения и управления доступами |
| kubeflow-view | Просмотр notebooks, pipelines, runs, jobs, experiments, KServe/Knative, Spark/Training, TensorBoard/PVC, pods, logs, статусов и событий; дополнительно создание visualizations и создание/удаление viewer | Только чтение на Kubeflow-ресурсы |
Иллюстрация: Права доступа Kubeflow

Дефолтные наборы доступов
Иллюстрация: Дефолтные наборы доступов

Уровень «Платформа»
| Набор | Назначение | Описание | Kubeflow | ArgoCD |
|---|---|---|---|---|
| platform-admin | Администратор платформы | Полный доступ ко всем ресурсам платформы и кластеров | kubeflow-admin | admin |
| sec-platform-admin | Администратор безопасности | Управление назначениями на всех уровнях, ClusterIssuers; просмотр логов, сертификатов кластера, метрик, доступности сервисов, Issuers на уровне неймспейсов, сетевых политик Cilium и страниц раздела «Безопасность» (политики безопасности, отчёт о результатах сканирования, отчёт о нарушенных политиках, отчёт о найденных уязвимостях) | kubeflow-view | view |
| sec-platform-audit | Аудитор основных объектов | Просмотр страниц платформы и кластеров, кроме Secrets, NCI, SSC, Ingress Controllers | kubeflow-view | view |
| sec-platform-audit-full | Аудитор всех объектов | Просмотр всех страниц платформы и кластеров | kubeflow-view | view |
| tenant-role-binder | Менеджер тенантных доступов | Управление доступами в тенантах, просмотр тенантов, раздела «Управление доступом». Нет доступа к кластерам | — | — |
| tenant-role-viewer | Аудитор тенантных доступов | Просмотр доступов в тенантах, менеджера и дерева доступов. Нет доступа к кластерам | — | — |
Уровень «Кластер»
| Набор | Назначение | Описание | Kubeflow | ArgoCD |
|---|---|---|---|---|
| cluster-admin | Администратор кластера | Полный доступ к ресурсам выбранного кластера | kubeflow-admin | admin |
| cluster-admin-restricted | Управление кластером | Все ресурсы, кроме узлов, машин, тенантов и удаления кластера | kubeflow-admin | admin |
| sec-cluster-audit | Аудитор основных объектов кластера | Просмотр страниц кластера, кроме Secrets, NCI, SSC, Ingress Controllers | kubeflow-view | view |
| sec-cluster-audit-full | Аудитор всех объектов кластера | Просмотр всех страниц кластера | kubeflow-view | view |
| sec-security-report | Просмотр отчётов по ИБ | Доступ на уровне выбранного кластера к просмотру страниц раздела «Безопасность» (политики безопасности, отчёт о результатах сканирования, отчёт о нарушенных политиках, отчёт о найденных уязвимостях), событий и отчётов о нарушенных политиках и найденных уязвимостях во всех неймспейсах кластера | — | — |
Уровень «Неймспейс»
| Набор | Назначение | Описание | Kubeflow | ArgoCD |
|---|---|---|---|---|
| dev-basic | Просмотр ресурсов | Просмотр в выбранном неймспейсе разделов «Нагрузки», «Сеть», страниц PersistentVolumeClaims, Configmaps, Quotas. Доступен просмотр событий, отчёта о сработавших политиках безопасности и найденных уязвимостях. Нет доступа к подресурсам, например pods/logs, pods/exec |
— | view |
| dev-debugger | Поиск ошибок | Просмотр отчёта о найденных уязвимостях, Pods выбранного неймспейса, чтение логов (pods/logs), пробрасывание портов (pods/portforward) и подключение к удалённому доступу (pods/exec) |
— | — |
| dev-deployer | Разворачивание приложения | Управление ресурсами в разделах «Нагрузки» и «Сеть», на страницах PersistentVolumeClaims, Configmaps, Quotas. Доступен просмотр событий, отчёта о сработавших политиках безопасности и найденных уязвимостях. Нет доступа к подресурсам, например pods/logs, pods/exec |
kubeflow-edit | edit |
| edit | Изменение ресурсов | Изменение всех ресурсов в неймспейсе, включая подресурсы services/proxy, deployments/rollback, pods/attach, pods/exec, pods/portforward, pods/proxy, deployments/scale, replicasets/scale, statefulsets/scale, serviceaccounts/token. Доступен просмотр событий, отчёта о сработавших политиках безопасности и найденных уязвимостях, логов (pods/log) |
kubeflow-edit | edit |
| namespace-admin | Администратор неймспейса | Полный доступ к ресурсам неймспейса | kubeflow-admin | admin |
| ops-ns-manager | Управление квотами | Управление Quotas в неймспейсе | — | — |
| ops-role-manager | Управление доступами | ServiceAccounts и права доступа в неймспейсе | — | — |
| view | Просмотр ресурсов | Просмотр всех ресурсов в неймспейсе, кроме Secrets. Доступен просмотр событий, отчёта о сработавших политиках безопасности и найденных уязвимостях, логов (pods/log) |
kubeflow-view | view |
Создание кастомного набора доступов
Пошаговая инструкция
- Перейдите в Управление доступом → Менеджер доступов.
- Создайте набор, выберите уровень (Платформа, Кластер, Неймспейс).
- Задайте имя (обязательно, неизменяемо), описание, при необходимости роль Kubeflow и роль в ArgoCD.
- Добавьте кластерные разрешения (YAML) и/или платформенные разрешения.
- Сохраните. Набор станет доступен для назначения пользователям и группам (см. скриншот ниже).

Платформенные и кластерные разрешения
Платформенные разрешения управляют доступом к ресурсам, которыми распоряжается кластер управления. Эти объекты хранятся в кластере управления, даже если назначение сделано на уровне «Кластер» или «Неймспейс»:
- Объекты Cluster API:
cluster.x-k8s.io,bootstrap.cluster.x-k8s.io,infrastructure.cluster.x-k8s.io(Cluster, Machine, KubeadmControlPlane и др.); - Объекты управления доступом:
permissions.shturval.tech(UserRole, GroupRole, Permissions); - Провайдеры, пулы IP, тенанты и др.
Список платформенных разрешений — в таблице Платформенные разрешения выше.
Кластерные разрешения — это RBAC в формате Kubernetes. Они задают доступ к ресурсам клиентских кластеров (Pods, Deployments, Services, ConfigMaps и т.д.). Формат — стандартный для ClusterRole: apiGroups, resources, verbs, при необходимости nonResourceURLs. Кластерные разрешения из набора уровня «Платформа» применяются ко всем клиентским кластерам; из набора уровня «Кластер» — к выбранному кластеру; из набора уровня «Неймспейс» — к выбранному неймспейсу.
Можно создать набор только с ролью ArgoCD или только с ролью Kubeflow — тогда кластерные и платформенные разрешения оставьте пустыми.
Кастомные ресурсы под капотом
При создании кастомного набора доступов платформа создаёт ресурс Permissions (API-группа permissions.shturval.tech) в неймспейсе shturval-backend кластера управления. Архитектура оператора согласования прав и справочник полей CRD — в документе Оператор согласования прав (permissions operator). В ресурсе Permissions хранятся:
- Имя набора;
- Уровень (Платформа, Кластер, Неймспейс);
- Список платформенных разрешений;
- Кластерные разрешения (YAML);
- роль Kubeflow (kubeflow-admin, kubeflow-edit, kubeflow-view);
- Роль в ArgoCD (admin, edit, view).
При назначении набора пользователю или группе создаются UserRole или GroupRole — они ссылаются на один или несколько Permissions.
При синхронизации контроллер модуля управления доступом:
- Читает UserRole/GroupRole и связанные Permissions;
- Объединяет разрешения из всех назначенных наборов;
- Создаёт или обновляет в целевых кластерах:
- ClusterRole — из кластерных разрешений набора;
- RoleBinding — привязка ClusterRole к субъекту (пользователь или члены группы);
- При наличии роли Kubeflow — выдаёт пользователю или группе соответствующие права доступа к Kubeflow;
- При наличии роли ArgoCD — создаёт или обновляет роли в проектах ArgoCD.
Подробнее: Кастомные ресурсы для управления правами доступа, Как происходит назначение прав доступа.