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

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

Роли, доступные в кластерах до релиза 2.7.0, будут автоматически мигрированы на новый тип ресурса.

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

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

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

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

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

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

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

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

- apiGroups:
  - '*'
  resources:
  - '*'
  verbs:
  - '*'
- nonResourceURLs:
  - '*'
  verbs:
  - '*'

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

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

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

Доступы в OpenSearch

Название разрешения Полномочия Уровни набора разрешений
platform-admin Полный доступ ко всем объектам кластера управления и клиентских кластеров в интерфейсе OpenSearch Платформа
sec-platform-audit Доступ на чтение информации об объектах кластера управления и клиентских кластеров в интерфейсе OpenSearch Платформа
cluster-admin Полный доступ ко всем объектам клиентского кластера в интерфейсе OpenSearch Кластер
sec-cluster-audit Доступ на чтение информации об объектах клиентского кластера в интерфейсе OpenSearch Кластер

Роли в ArgoCD

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

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