Менеджер доступов

В платформе “Штурвал” управление правами доступа осуществляется с помощью ресурса “permissions” (набор доступов), который позволяет гибко настроить доступы к разным частям платформы. Создать набор доступов можно в разделе “Управление доступом” платформы. Наборы доступов, созданные в менеджере доступов, доступны для назначения на пользователей и группы во всех клиентских кластерах и неймспейсах в соответствии с уровнем, для которого создан набор доступа.

Вы можете создать наборы доступов, которые назначат права:

  • к платформенным ресурсам (инфраструктура и права доступа);
  • к кластерным ресурсам (в т.ч. неймспейсам);
  • к ArgoCD.

Вы можете компоновать права доступа так, как требуется для реализации задач. Набор доступов позволяет выдавать права доступа в том числи сегментировано, например, только к ArgoCD. Для создания такого набора доступов оставьте незаполненными кластерные и платформенные разрешения.

Обратите внимание!

  • Изменение набора доступов в менеджере доступов приведет к изменению прав доступа всех пользователей и групп, на которых назначен этот набор доступов.
  • Если набор доступов назначен хотя бы одному пользователю или группе, то полное его удаление возможно только после снятия назначений с пользователей и групп.
  • Преднастроенные наборы доступов недоступны для внесения изменений или удаления. Разрешения в них строго зашиты. При необходимости создайте новые наборы доступов.
Скриншот

permissions

Есть 3 уровня, для которых может быть создан набор доступов:

Уровень набора доступа Описание возможностей уровня
Платформа Позволяет открыть доступ ко всей платформе в целом; к клиентским кластерам без доступа к кластеру управления; только к кластеру управления; к логам кластера управления и клиентских кластеров; к ArgoCD клиентских кластеров и кластера управления
Кластер Позволяет открыть доступ к определенному клиентскому кластеру в целом или только к некоторым его объектам; к логам клиентского кластера; к инфраструктуре клиентского кластера; к проектам ARGO CD определенного кластера
Неймспейс Позволяет открыть доступ к определенному неймспейсу клиентского кластера в целом или только к некоторым его объектам; к проекту ARGO CD этого неймспейса
Скриншот

permissionscreate

На каждом уровне доступа страница набора доступов содержит:

  • имя набора доступов. Задается при создании набора. Обязательное и неизменяемое.
  • описание набора доступов. Необязательное поле, позволяет внести короткое описание для удобства дальнейшего назначения. Рекомендуем поддерживать в актуальном состоянии для удобства использования наборов доступа.
  • роль в Argo CD. Необязательное поле, позволяет назначить роль в интерфейсе ArgoCD.
  • кластерные разрешения. Необязательные, позволяют задать набор правил в формате YAML. Каждое правило должно содержать API-группу, глаголы и ресурсы, к которым назначаются права.
  • платформенные разрешения. Необязательные, позволяют задать права к тем ресурсам, которыми управляет кластер управления. Для уровней “кластер” и “неймспейс” это управление объектами инфраструктуры (узлы, машины), неймспейсами и правами доступа. Для уровня “платформа” это управление ресурсами кластера управления.

Кластерные разрешения

Эти разрешения относятся только к клиентским кластерам. Так, например, кластерные разрешения, прописанные в набор доступов уровня “Платформа”, откроют доступ до указанных ресурсов клиентских кластеров. Ожидается валидный YAML. Первой строкой должна быть API-группа.

Пример
- apiGroups:
  - '*'
  resources:
  - '*'
  verbs:
  - '*'
- nonResourceURLs:
  - '*'
  verbs:
  - '*'

Платформенные разрешения

Т.к. созданием кластеров, объектов инфраструктуры и доступа управляет кластер управления (платформа), разрешения называются платформенными. В зависимости от уровня создаваемого набора доступны следующие платформенные разрешения:

Платформенные разрешения
Название разрешения Полномочия Уровни набора разрешений Комментарий
access-map-get Просмотр назначенных ролей, дерева доступов Платформа -
cluster-create Создание клиентских кластеров Платформа Дополнительно требует как минимум разрешений provider-get, provider-edit и ippool-get. Рекомендуется для создания кластеров использовать только набор доступов platform-admin
permissions-edit Управление правами пользователей и групп в кластере управления Платформа -
permissions-get Получение сведений о правах доступа в кластере управления Платформа -
platform-roles-edit Управление правами доступа Service-accounts Платформа -
platform-roles-get Получение сведений о правах доступа Service-accounts Платформа -
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 Управление тенантами Платформа, Кластер Изменить информацию о самом тенанте могут только пользователи с платформенными назначениями

Роли в ArgoCD

Все роли доступны на любом из уровней набора разрешений. При создании на уровне “Платформа” роль будет назначена в каждом клиентском кластере. В кластере управления роль не создается.

Название роли Разрешения в ArgoCD Описание разрешений
admin policyAppCreate, policyAppGet, policyAppUpdate, policyAppSync, policyAppDelete, policyAppSetCreate, policyAppSetGet, policyAppSetUpdate, policyAppSetDelete, policyExecCreate, policyLogsGet Полный доступ на создание проектов, приложений
edit policyAppCreate, policyAppGet, policyAppSync, policyAppSetCreate, policyAppSetGet может создавать приложения, но не может менять репозиторий или удалять приложения
view policyAppGet, policyAppSetGet доступ на чтение информации в проектах ArgoCD

Дефолтные наборы доступов

Уровень Платформа

Набор доступов Назначение Описание разрешений Роль в ArgoCD
platform-admin Администратор платформы Полный доступ на управление всеми ресурсами платформы и на уровне всех кластеров admin
sec-platform-admin Администратор безопасности Доступ на управление назначениями на всех уровнях (Платформа, Тенант, Кластер, Неймспейс) и ClusterIssuers. Доступ к просмотру логов, сертификатов кластера, метеринга, доступности сервисов, Issuers на уровне неймспейсов, сетевых политик Cilium и страниц раздела “Безопасность” (политики безопасности, отчет о результатах сканирования, отчет о нарушенных политиках, отчет о найденных уязвимостях) view
sec-platform-audit Аудитор основных объектов платформы и кластеров Доступ на просмотр всех страниц на уровне платформы и всех кластеров, за исключением Secrets, страниц: “Конфигурация узлов” (NCI), “Установленные сервисы” (SSC) и Ingress Controllers view
sec-platform-audit-full Аудитор всех объектов платформы и кластеров Доступ на просмотр всех страниц платформы и на уровне всех кластеров view
tenant-role-binder Менеджер тенантных доступов Вспомогательный набор для управления доступами в тенантах, просмотра тенантов и страниц раздела платформы: “Управление доступом” (Менеджер доступов, Управление ролями, Интеграция с LDAP, Дерево доступов). Отсутствует доступ к кластерам -
tenant-role-viewer Аудитор тенантных доступов Вспомогательный набор для просмотра доступов в тенантах, тенантов, страниц менеджера и дерева доступов. Отсутствует доступ к кластерам -

Уровень Кластер

Набор доступов Назначение Описание разрешений Роль в ArgoCD
cluster-admin Администратор кластера Полный доступ к управлению всеми ресурсами на уровне выбранного кластера admin
cluster-admin-restricted Управление кластером Управление всеми ресурсами кластера за исключением: управления узлами, машинами и тенантами, возможности удаления кластера admin
sec-cluster-audit Аудитор основных объектов кластера Доступ на просмотр всех страниц на уровне выбранного кластера, за исключением Secrets, “Конфигурация узлов” (NCI), “Установленные сервисы” (SSC) и Ingress Controllers view
sec-cluster-audit-full Аудитор всех объектов кластера Доступ на просмотр всех страниц на уровне выбранного кластера view
sec-security-report Просмотр отчетов по ИБ Доступ на уровне выбранного кластера на просмотр страниц раздела “Безопасность” (политики безопасности, отчет о результатах сканирования, отчет о нарушенных политиках, отчет о найденных уязвимостях). В том числе доступ на просмотр событий и к отчетам о нарушенных политиках и найденных уязвимостях во всех неймспейсах кластера -

Уровень Неймспейс

Набор доступов Назначение Описание разрешений Роль в 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 и т.д) edit
edit Изменение ресурсов Доступ на изменение всех ресурсов в неймспейсе в том числе подресурсов (services/proxy, deployments/rollback, pods/attach, pods/exec, pods/portforward, pods/proxy deployments/scale, replicasets/scale, statefulsets/scale, serviceaccounts/token). Есть доступ в определенном неймспейсе к просмотру событий, отчета о сработавших политиках безопасности и найденных уязвимостях, просмотру логов (pods/log) edit
namespace-admin Администратор неймспейса Полный доступ на управление всеми ресурсами на уровне выбранного неймспейса admin
ops-ns-manager Управление квотами в неймспейсе Полный доступ на управление Quotas на уровне выбранного неймспейса -
ops-role-manager Управление доступами Доступ к управлению ServiceAccounts и распределению прав доступа на уровне выбранного неймспейса -
view Просмотр ресурсов Обладает правами на просмотр всех ресурсов в неймспейсе за исключением Secrets. Есть доступ в определенном неймспейсе к просмотру событий, отчета о сработавших политиках безопасности и найденных уязвимостях, просмотру логов (pods/log) view
×