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

В платформе “Штурвал” управление правами доступа осуществляется с помощью ресурса “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Описание разрешений
adminpolicyAppCreate, policyAppGet, policyAppUpdate, policyAppSync, policyAppDelete, policyAppSetCreate, policyAppSetGet, policyAppSetUpdate, policyAppSetDelete, policyExecCreate, policyLogsGetПолный доступ на создание проектов, приложений
editpolicyAppCreate, policyAppGet, policyAppSync, policyAppSetCreate, policyAppSetGetможет создавать приложения, но не может менять репозиторий или удалять приложения
viewpolicyAppGet, policyAppSetGetдоступ на чтение информации в проектах ArgoCD

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

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

Набор доступовНазначениеОписание разрешенийРоль в ArgoCD
platform-adminАдминистратор платформыПолный доступ на управление всеми ресурсами платформы и на уровне всех кластеровadmin
sec-platform-adminАдминистратор безопасностиДоступ на управление назначениями на всех уровнях (Платформа, Тенант, Кластер, Неймспейс) и ClusterIssuers. Доступ к просмотру логов, сертификатов кластера, метеринга, доступности сервисов, Issuers на уровне неймспейсов, сетевых политик Cilium и страниц раздела “Безопасность” (политики безопасности, отчет о результатах сканирования, отчет о нарушенных политиках, отчет о найденных уязвимостях)view
sec-platform-auditАудитор основных объектов платформы и кластеровДоступ на просмотр всех страниц на уровне платформы и всех кластеров, за исключением Secrets, страниц: “Конфигурация узлов” (NCI), “Установленные сервисы” (SSC) и Ingress Controllersview
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 Controllersview
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