Менеджер доступов
Начиная с релиза 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 |