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

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

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

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

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

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

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

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Получение информации о тенантеПлатформа, Кластер, НеймспейсВ релизе 2.11.0 получить информацию о самом тенанте могут только пользователи с платформенными назначениями
tenant-editУправление тенантамиПлатформа, КластерВ релизе 2.11.0 изменить информацию о самом тенанте могут только пользователи с платформенными назначениями

Роли в ArgoCD

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

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