Доступ

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

В РОСА Кубис управление правами доступа осуществляется с помощью ресурса "permissions" (набор доступов), который позволяет гибко настроить доступы к разным частям Комплекса. Набор доступов можно создать в разделе "Управление доступом" Комплекса (рисунок 19). Наборы доступов, созданные в менеджере доступов, доступны для назначения на пользователей и группы во всех клиентских кластерах и пространствах имен в соответствии с уровнем, для которого создан набор доступа.

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

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

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

Важно:

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

Рисунок 19 ‒ Управление доступом

Уровни, для которых может быть создан набор доступов, приведены в таблице 4.

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

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

Рисунок 20 ‒ Создание набора доступов

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

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

Пример:

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

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

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

Доступы в OpenSearch

Доступы в OpenSearch приведены в таблице 6.

Роли в ArgoCD

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

Аутентификация в Комплексе

По умолчанию в РОСА Кубис установлен сервис аутентификации собственной разработки.

Для входа в графический интерфейс Комплекса необходимо выполнить следующие действия:

  1. перейти по URL-ссылке, созданной на этапе развертывания Комплекса, в браузере;
  2. после открытия формы аутентификации ввести данные системной учетной записи (рисунок 21);

Рисунок 21 ‒ Окно для аутентификации

  1. нажать кнопку Войти.

В результате появится главное окно графического интерфейса Комплекса (рисунок 22).

Рисунок 22 ‒ Основное окно интерфейса

При необходимости можно перенастроить аутентификацию на внешний сервис. Доступны: Blitz, Keycloak. Подключение внешнего сервиса аутентификации описано в Инструкции "Как подключить внешний сервис аутентификации".

Следует обратить внимание, что, если аутентификация переключена на внешний сервис, интеграция с LDAP не будет использована. Пользователи и группы будут определены в соответствии с каталогом, подключенным к внешнему сервису.

Менеджер сессий

На странице "Менеджер сессий" можно просмотреть все активные сессии всех пользователей Комплекса вне зависимости от точки аутентификации. Есть возможность прервать сессию пользователя.

Отображается следующая информация о сессии пользователя (рисунок 23):

  • Имя пользователя;
  • Платформа;
  • Операционная система;
  • Браузер.

Рисунок 23 ‒ Страница "Менеджер сессий"

Дерево доступов

На странице "Дерево доступов" размещена полная структура доступов каждого заведенного пользователя и группы. Доступ к странице имеют только администратор Комплекса и администратор безопасности Комплекса. На этой странице можно только просмотреть доступы в разрезе пользователя/группы, но не управлять ими.

Доступы отображаются только по тем объектам, к которым есть назначения и имеют вид (рисунок 24):

  • Платформа ‒ перечень прав доступа, если у пользователя есть назначения уровня "Платформа";
  • Кластеры ‒ перечень кластеров, если у пользователя есть назначения уровня "Кластер";
  • Неймспейсы ‒ перечень пространств имен с указанием на кластер, в котором он находится.

Рисунок 24 ‒ Дерево доступов

Интеграция с LDAP

Настройка интеграции с LDAP-каталогом в Комплексе доступна администратору Комплекса. За получением сведений для подключения к LDAP-каталогу рекомендуется обратиться к администратору каталога.

РОСА Кубис совместима с каталогами:

  • Active Directory;
  • OpenLDAP;
  • FreeIPA;
  • ALD Pro;
  • Samba DC.

Для настройки интеграции с каталогом пользователей нужно:

  1. получить параметры подключения к LDAP-каталогу;
  2. получить атрибуты записей в LDAP-каталоге для корректной настройки поиска пользователей и групп в Комплексе;
  3. настроить интеграцию с LDAP-каталогом.

Пример заполнения полей для настройки интеграции с типовым каталогом Active Directory

Для настройки интеграции понадобятся параметры подключения к LDAP-каталогу:

  • адрес LDAP-сервера (FQDN или IP-адрес). Может потребоваться указать порт в адресе LDAP-сервера. Следует уточнить информацию у администратора LDAP-каталога;
  • пароль учетной записи для подключения к LDAP-каталогу;
  • DN (Distinguished Name) учетной записи пользователя для подключения к LDAP-каталогу;
  • DN (Distinguished Name) контейнеров, в которых будет выполняться поиск записей пользователей и групп пользователей.

Для получения атрибутов записей в LDAP-каталоге в интерфейсе командной строки с помощью утилиты ldapsearch (клиент OpenLDAP) указать:

  • адрес LDAP-сервера в параметре "-H";
  • DN контейнера (база поиска), в котором будет выполняться поиск записей, в параметре "-b";
  • DN учетной записи пользователя для подключения к LDAP-каталогу в параметре "-D";
  • пароль пользователя для подключения к LDAP-каталогу в параметре "-w";

Команда получения записей пользователей:

ldapsearch -H ldap://10.11.12.7 -b "cn=Users,dc=shturval,dc=lab" -D "cn=Administrator,cn=Users,dc=shturval,dc=lab" -w "dkjhdfss"

Пример ответа:

Users, shturval.lab
dn: CN=Users,DC=shturval,DC=lab
objectClass: top
objectClass: container
cn: Users
description: Default container for upgraded user accounts
distinguishedName: CN=Users,DC=shturval,DC=lab
instanceType: 4
whenCreated: 20220926131156.0Z
whenChanged: 20220926131156.0Z
uSNCreated: 5660
uSNChanged: 5660
showInAdvancedViewOnly: FALSE
name: Users
objectGUID:: UPW8kPVYR0K/vWQM8yxQMA==
systemFlags: -1946157056
objectCategory: CN=Container,CN=Schema,CN=Configuration,DC=shturval,DC=lab
isCriticalSystemObject: TRUE
dSCorePropagationData: 20220928141115.0Z
dSCorePropagationData: 20220926131239.0Z
dSCorePropagationData: 16010101000416.0Z
Maksim Maksimov, Users, shturval.lab
dn: CN=Maksim Maksimov,CN=Users,DC=shturval,DC=lab
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: Maksim Maksimov
sn: Maksimov
givenName: Maksim
distinguishedName: CN=Maksim Maksimov,CN=Users,DC=shturval,DC=lab
instanceType: 4
whenCreated: 20240306093015.0Z
whenChanged: 20241031085511.0Z
displayName: Maksim Maksimov
uSNCreated: 732
memberOf: CN=cluster-admin-restricted,OU=Groups,DC=shturval,DC=lab
uSNChanged: 986
name: Maksim Maksimov
objectGUID:: 1SzqRfN6b0GKCPYA==
userAccountControl: 660
badPwdCount: 1
codePage: 0
countryCode: 0
badPasswordTime: 1336256934
lastLogoff: 0
lastLogon: 13356799236
pwdLastSet: 1335077
primaryGroupID: 513
objectSid:: AQUAAAAAAA//PXEFSXmgQAAA==
accountExpires: 92275807
logonCount: 0
sAMAccountName: m.maksimov
sAMAccountType: 800668
userPrincipalName: m.maksimov@shturval.lab
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=shturval,DC=lab
dSCorePropagationData: 16010101000000.0Z
lastLogonTimestamp: 133748385110655368

В полученном ответе можно найти атрибуты, содержащие:

  • полное имя пользователя. В примере ‒ это атрибут displayName;
  • уникальное имя пользователя. В примере ‒ это атрибут sAMAccountName;
  • email-адрес пользователя с UPN-суффиксом и @. В примере email указан в атрибуте userPrincipalName;
  • UPN-суффикс к email-адресу пользователя. Можно указать email-суффикс вместо полного email-адреса. В примере суффикс ‒ shturval.lab.

Команда получения записей групп:

ldapsearch -H ldap://10.11.11.7 -b "OU=Groups,dc=shturval,dc=lab" -D "cn=Administrator,cn=Users,dc=shturval,dc=lab" -w "dkjhdfss"

Пример ответа:

extended LDIF
#
LDAPv3
base <OU=Groups,dc=shturval,dc=lab> with scope subtree
filter: (objectclass=*)
requesting: ALL
#
Groups, shturval.lab
dn: OU=Groups,DC=shturval,DC=lab
objectClass: top
objectClass: organizationalUnit
ou: Groups
distinguishedName: OU=Groups,DC=shturval,DC=lab
instanceType: 4
whenCreated: 20220928141115.0Z
whenChanged: 20220928141115.0Z
uSNCreated: 13006
uSNChanged: 13007
name: Groups
objectGUID:: uxe0CpQ7EBw==
objectCategory: CN=Organizational-Unit,CN=Schema,CN=Configuration,DC=shturval,
DC=lab
dSCorePropagationData: 20220928141115.0Z
dSCorePropagationData: 20220928141115.0Z
dSCorePropagationData: 16010101000000.0Z
cluster-admin, Groups, shturval.lab
dn: CN=cluster-admin,OU=Groups,DC=shturval,DC=lab
objectClass: top
objectClass: group
cn: cluster-admin
member: CN=Maksim Maksimov,CN=Users,DC=shturval,DC=lab
distinguishedName: CN=cluster-admin,OU=Groups,DC=shturval,DC=lab
instanceType: 4
whenCreated: 20240306092755.0Z
whenChanged: 20240306093217.0Z
uSNCreated: 73240
uSNChanged: 73251
name: cluster-admin
objectGUID:: G2n1dg==
objectSid:: AQUAAAAAA//PXEFSXUlmQQAAA==
sAMAccountName: cluster-admin
sAMAccountType: 268456
groupType: -2147646
objectCategory: CN=Group,CN=Schema,CN=Configuration,DC=shturval,DC=lab
dSCorePropagationData: 16010101000000.0Z

В полученном ответе можно определить атрибут записи, в котором содержится общее название группы. В примере ‒ это атрибут cn.

Наименования полученных атрибутов можно использовать для настройки поиска в LDAP-каталоге.

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

Для настройки интеграции с LDAP-каталогом в графическом интерфейсе:

  1. На странице "Интеграция с LDAP" раздела "Управление доступом" внести данные для проверки подключения к LDAP-каталогу (рисунок 25):
  • В поле "DN для подключения" указать Distinguished Name учетной записи пользователя для аутентификации к LDAP-каталогу. DN должна совпадать с данными, введенными на первом шаге в параметре "-D".
  • В поле "Пароль для подключения" указать пароль пользователя для аутентификации к LDAP-каталогу. Пароль должен совпадать с данными, введенными на первом шаге в параметре "-w".
  • В поле "Адрес LDAP-сервера" указать в формате FQDN или IP-адрес (например, ldap.example.ru, 10.11.112.33:636). Адрес должен совпадать с введенными данными на первом шаге в параметре "-H".

Рисунок 25 ‒ Интеграция с LDAP

  • При необходимости выполнить подключение с TLS-соединением в расширенных настройках интеграции изменить режим с помощью переключателя "Показать расширенные настройки".

При выборе "Использовать TLS" дополнительно доступны поля (рисунок 26):

  • Создавать TLS-сессию при подключении к LDAP;
  • Выключить верификацию CA;
  • Клиентский сертификат (файл для загрузки);
  • Доверенный корневой сертификат (файл для загрузки);
  • Клиентский приватный ключ (файл для загрузки).

Рисунок 26 ‒ Настройка TLS-соединения

Загруженные файлы будут переведены в формат base64. По завершении интеграции файлы будут доступны для скачивания из интерфейса.

Следует обратить внимание, что для изменения настроенной конфигурации необходимо ввести пароль в настройках подключения.

  • Выбрать режим настройки подключения ‒ "Ручной" или "Авто" (рисунок 27):
    • В ручном режиме поиск групп, пользователей и сопоставление пользователей заполняются вручную.
    • В автоматическом режиме настройки подключения необходимо выбрать каталог (ActiveDirectory, OpenLDAP, SambaDC, FreeIPA, ALDPro). При необходимости настроить базовый DN анализа групп и базовый DN поиска пользователей.

Рисунок 27 ‒ Выбор режима настройки подключения

  1. Нажать Проверить подключение и после успешного подключения:
  • Если выбран ручной режим подключения
    • В блоке "Поиск групп" указать (рисунок 28):
      • в поле "Базовый DN поиска групп" ‒ Distinguished Name контейнера (база поиска), в котором будет выполняться поиск записей. Значение должно совпадать с данными, введенными на первом шаге в параметре "-b".
      • в поле "Атрибут имени группы" ‒ атрибут записи, отвечающий за краткое название группы, определенный на первом шаге.

Рисунок 28 ‒ Блок "Поиск групп"

  • В блоке "Поиск пользователей" указать (рисунок 29):
    • в поле "Базовый DN поиска пользователей" ‒ Distinguished Name контейнера (база поиска), в котором будет выполняться поиск записей пользователей. Значение должно совпадать с данными, введенными на первом шаге в параметре "-b".
    • в полях "Email атрибут", "Name атрибут", "UserName атрибут", "Email суффикс" ‒ атрибуты, определенные на первом шаге. Для еmail-адреса сотрудника должно быть заполнено хотя бы одно из полей: "Email атрибут" или "Email суффикс". Пример маппинга приведен в таблице 8.

Рисунок 29 ‒ Блок "Поиск пользователей"

  • Если выбран автоматический режим подключения
    1. нажать на Выполнить анализ (рисунок 30);

Рисунок 30 ‒ Выполнение анализа

  1. проверить атрибуты в заполненных полях поиска групп и поиска пользователей (рисунки 31 и 32).

Рисунок 31 ‒ Проверка атрибутов в поиске групп

Рисунок 32 ‒ Проверка атрибутов в поиске пользователей

  • Если выбраны расширенные настройки, доступны дополнительные атрибуты "50":
    • Фильтр ‒ Дополнительное поле, применяемое для фильтрации при поиске в каталоге. В фильтре указывается атрибут записи и присваиваемое значение, по которому необходимо осуществить поиск, например "objectClass=person";
    • Scope ‒ Область поиска, например, "sub" ‒ поиск по всему дереву объектов, "one" ‒ поиск на один уровень;
    • PreferredUserName атрибут ‒ Поле уровня "пользователь" в LDAP, содержащее предпочтительное имя сотрудника.

Рисунок 33 ‒ Дополнительные атрибуты

  1. При необходимости в блоке "Сопоставление пользователей" задать шаблон связи атрибута пользователя и атрибута группы (рисунок 34).

Рисунок 34 ‒ Блок "Сопоставление пользователей"

  1. После заполнения обязательных полей станет доступна кнопка Протестировать, по которой можно инициировать попытку подключения к каталогу. В случае успешного подключения станет доступна кнопка Сохранить.
  2. По завершению успешного тестирования настройки сохранить данные, нажав кнопку Сохранить.

При необходимости внести изменения в сохраненную настройку нужно ввести пароль. После этого следует протестировать интеграцию с измененными настройками и сохранить их.

В интерфейсе командной строки:

  1. подготовить конфигурационный файл config.json с данными для интеграции с LDAP-каталогом.

Пример config.json:

{
"host": "10.11.11.7",
"insecureNoSSL": true,
"insecureSkipVerify": true,
"startTLS": false,
"rootCA": ",
"clientCert": ",
"clientKey": ",
"bindDN": "cn=Administrator,cn=Users,dc=shturval,dc=lab",
"bindPW": "dkjhdfss",
"usernamePrompt": ",
"userSearch": {
"baseDN": "cn=Users,dc=shturval,dc=lab",
"filter": ",
"username": "sAMAccountName",
"scope": ",
"idAttr": "DN",
"emailAttr": "userPrincipalName",
"nameAttr": "displayName",
"preferredUsernameAttr": "sAMAccountName",
"emailSuffix": "
},
"groupSearch": {
"baseDN": "OU=Groups,DC=shturval,DC=lab",
"filter": ",
"scope": ",
"userAttr": ",
"groupAttr": ",
"userMatchers": [
{
"UserAttr":  "DN",
"GroupAttr": "member"
}
],
"nameAttr": "cn"
}
}

Описание параметров из примера приведено в таблице 9.

  1. закодировать подготовленный конфигурационный файл в формате base64.

Команда:

cat ~/date/config.json | base64 --wrap=0

где вместо ~/date/config.json указать путь до конфигурационного файла.

Пример ответа:

ew0KICAiaG9zdCI6ICIxMC4zMS4xNDUuNyIsDQogICJpbnNlY3VyZU5vU1NMIjogdHJ1ZSwNCiAgImluc2VjdXJlU2tpcFZlcmlmeSI6IHRydWUsDQogICJzdGFydFRMUyI6IGZhbHNlLA0KICAicm9vdENBIjogIiIsDQogICJjbGllbnRDZXJ0IjogIiIsDQogICJjbGllbnRLZXkiOiAiIiwNCiAgInJvb3RDQURhdGEiOiBudWxsLA0KICAiYmluZEROIjogImNuPUFkbWluaXN0cmF0b3IsY249VXNlcnMsZGM9c2h0dXJ2YWwsZGM9bGFiIiwNCiAgImJpbmRQVyI6ICJQQHNzdzByZCIsDQogICJ1c2VybmFtZVByb21wdCI6ICIiLA0KICAidXNlclNlYXJjaCI6IHsNCiAgICAiYmFzZUROIjogImNuPVVzZXJzLGRjPXNodHVydmFsLGRjPWxhYiIsDQogICAgImZpbHRlciI6ICIiL
  1. в неймспейсе shturval-backend кластера управления создать secret с именем ldap-config и типом Opaque, содержащий в data закодированные данные config.json.

Команда:

kubectl apply -f <<EOF
apiVersion: v1
data:
config.json: ew0KICAiaG9zdCI6ICIxMC4zMS4xNDUuNyIsDQogICJpbnNlY3VyZU5vU1NMIjogdHJ1ZSwNCiAgImluc2VjdXJlU2tpcFZlcmlmeSI6IHRydWUsDQogICJzdGFydFRMUyI6IGZhbHNlLA0KICAicm9vdENBIjogIiIsDQogICJjbGllbnRDZXJ0IjogIiIsDQogICJjbGllbnRLZXkiOiAiIiwNCiAgInJvb3RDQURhdGEiOiBudWxsLA0KICAiYmluZEROIjogImNuPUFkbWluaXN0cmF0b3IsY249VXNlcnMsZGM9c2h0dXJ2YWwsZGM9bGFiIiwNCiAgImJpbmRQVyI6ICJQQHNzdzByZCIsDQogICJ1c2VybmFtZVByb21wdCI6ICIiLA0KICAidXNlclNlYXJjaCI6IHsNCiAgICAiYmFzZUROIjogImNuPVVzZXJzLGRjPXNodHVydmFsLGRjPWxhYiIsDQogICAgImZpbHRlciI6ICIiL
kind: Secret
metadata:
name: ldap-config
namespace: shturval-backend
type: Opaque
EOF

Для выполнения поиска пользователя в LDAP-каталоге в графическом интерфейсе Комплекса нужно перейти на страницу "Управление ролями" раздела "Управление доступом" и выбрать "Добавить назначение прав на пользователя" (рисунок 35):

  • В поле "Уникальное имя пользователя" начать вводить имя пользователя. Со второго введенного символа будет выполнен поиск пользователей по каталогу. В результате поиска отобразится список пользователей, имена которых содержат указанные символы.
  • Выбрать имя пользователя из списка. Поиск по каталогу регистрозависимый, поэтому, если пользователь не найден или отсутствует в списке, рекомендуется уточнить введенные данные.

Рисунок 35 ‒ Поиск пользователей

Пример заполнения полей для настройки интеграции с типовым каталогом OpenLDAP

Настройки подключения:

  • DN для подключения ‒ cn=admin,dc=example,dc=com (пример DN для технологической учетной записи пользователя);
  • Пароль для подключения ‒ password123;
  • Адрес LDAP-сервера ‒ ldap.example.ru (пример FQDN сервера LDAP).

Поиск групп:

  • Базовый DN поиска групп ‒ ou=Groups,dc=example,dc=com (пример базового полного названия группы);
  • Атрибут имени группы ‒ cn (пример атрибута, указывающего на краткое название группы в каталоге).

Поиск пользователей:

  • Базовый DN поиска пользователей ‒ ou=Users,dc=example,dc=com (пример базового полного названия организационной единицы "пользователь");
  • Email атрибут ‒ mail (пример поля уровня пользователя в LDAP, содержащего email сотрудника)
  • Email суффикс ‒ @example.com (пример общего суффикса, который будет добавляться к userName пользователя)

"Email суффикс" указывается, если в LDAP не указан Email-атрибут в явном виде.

При использовании TLS:

  • Создавать TLS-сессию при подключении к LDAP ‒ да/нет (выбор опции для создания TLS-сессии при подключении к серверу LDAP);
  • Выключить верификацию CA ‒ да/нет (выбор опции для отключения проверки сертификата удостоверяющего центра);
  • Клиентский сертификат ‒ file.pem (файл с клиентским сертификатом);
  • Доверенный корневой сертификат ‒ ca.pem (файл с доверенным корневым сертификатом)$
  • Клиентский приватный ключ ‒ key.pem (файл с клиентским приватным ключом).

В блоке "Сопоставление пользователей" можно задать шаблон связи атрибута пользователя и атрибута группы. Например, можно сопоставить атрибут "uid" пользователя с атрибутом "memberOf" группы, чтобы определить принадлежность пользователя к определенной группе.

Пример:

dn: uid=user1,ou=users,dc=example,dc=com
uid: user1
cn: User One
memberOf: cn=group1,ou=groups,dc=example,dc=com
memberOf: cn=group2,ou=groups,dc=example,dc=com

Пример заполнения полей для настройки интеграции с типовым каталогом Samba DC

Настройки подключения:

  • DN для подключения ‒ cn=admin,dc=example,dc=com (где "example" ‒ это имя домена, а "com" ‒ имя верхнего уровня домена);
  • Пароль для подключения ‒ password1234;
  • Адрес LDAP-сервера ‒ ldap.example.ru или 10.11.112.33:636 (ldap.example.ru ‒ полное доменное имя сервера LDAP, 10.11.112.33 ‒ IP-адрес сервера LDAP, 636 ‒ стандартный порт сервера LDAP с использованием TLS).

Поиск групп:

  • Базовый DN поиска групп ‒ ou=groups,dc=example,dc=com (где "example" ‒ это имя домена, а "com" ‒ имя верхнего уровня домена);
  • Атрибут имени группы ‒ cn (в типовом каталоге SambaDC группы имеют атрибут "cn" для указания их имени).

Поиск пользователей:

  • Базовый DN поиска пользователей ‒ ou=users,dc=example,dc=com (где "example" ‒ это имя домена, а "com" ‒ имя верхнего уровня домена);
  • Email атрибут ‒ mail (в типовом каталоге SambaDC пользователи имеют атрибут "mail", содержащий их адрес электронной почты);
  • Email суффикс ‒ @example.com (в типовом каталоге SambaDC доменное имя "example.com" используется как суффикс для email-адресов пользователей);
  • Name атрибут ‒ displayName (атрибут "displayName" содержит полное имя пользователя);
  • UserName атрибут ‒ sAMAccountName (атрибут "sAMAccountName" содержит уникальное имя пользователя).

В блоке "Сопоставление пользователей" можно указать шаблон связи атрибута пользователя и атрибута группы. Например, если в каталоге пользователей использован атрибут "uid", а в каталоге групп ‒ атрибут "cn", то шаблон связи может быть "uid=", где "" будет заменено на имя пользователя при поиске его групп.

Пример заполнения полей для настройки интеграции с типовым каталогом FreeIPA или ALD Pro

Cтруктура каталога FreeIPA или ALD Pro:

{
"host": "freeipa.xxx.xx.msk.ru",
"insecureNoSSL": true,
"insecureSkipVerify": false,
"startTLS": false,
"clientCertData": ",
"clientKeyData": ",
"bindDN": "uid=admin,cn=users,cn=accounts,dc=freeipa,dc=tech",
"bindPW": "dkjhdfss",
"usernamePrompt": ",
"userSearch": {
"baseDN": "cn=users,cn=accounts,dc=freeipa,dc=tech",
"filter": ",
"username": "uid",
"scope": ",
"idAttr": "uid",
"emailAttr": "mail",
"nameAttr": "uid",
"preferredUsernameAttr": "uid",
"emailSuffix": "freeipa.tech"
},
"groupSearch": {
"baseDN": "cn=groups,cn=accounts,dc=freeipa,dc=tech",
"filter": ",
"scope": ",
"userAttr": ",
"groupAttr": ",
"userMatchers": [
{
"userAttr": "DN",
"groupAttr": "member"
}
],
"nameAttr": "cn"
}
}
  • DN для подключения ‒ uid=admin,cn=users,cn=accounts,dc=freeipa,dc=tech;
  • Пароль для подключения ‒ pass1234;
  • Адрес LDAP-сервера ‒ freeipa.xxx.xx.msk.ru.

Поиск групп:

  • Базовый DN поиска групп ‒ cn=groups,cn=accounts,dc=freeipa,dc=tech;
  • Атрибут имени группы ‒ cn.

Поиск пользователей:

  • Базовый DN поиска пользователей ‒ cn=users,cn=accounts,dc=freeipa,dc=tech;
  • Email атрибут ‒ mail;
  • Email суффикс ‒ freeipa.tech;
  • Name атрибут ‒ uid;
  • UserName атрибут ‒ uid;
  • Атрибут пользователя ‒ DN;
  • Атрибут группы ‒ member.

Назначение прав

Назначение прав доступа ко всему Комплексу и тенантам доступно только из интерфейса Комплекса. Также доступно назначение прав для уровня кластера управления или клиентского кластера, неймспейса. Записи, доступные только для просмотра, некликабельны.

Назначение прав доступа из интерфейса осуществляется на странице "Доступ к платформе" (рисунок 36).

Рисунок 36 ‒ Доступ к платформе

При нажатии на кнопку Назначить доступ происходит переход на страницу "Управление ролями" интерфейса Комплекса, в которой доступны четыре вкладки:

  • Платформа (рисунок 37);

Рисунок 37 ‒ Вкладка "Платформа"

  • Тенант (рисунок 38);

Рисунок 38 ‒ Вкладка "Тенант"

  • Кластер (рисунок 39);

Рисунок 39 ‒ Вкладка "Кластер"

  • Неймспейс (рисунок 40).

Рисунок 40 ‒ Вкладка "Неймспейс"

Со страницы "Управление ролями" Комплекса можно:

  • Назначать пользователям/группам права доступа к:
  • платформе в целом (доступ к кластеру управления, клиентским кластерам);
  • кластеру (доступ к кластеру управления или клиентскому кластеру);
  • неймспейсу (доступ к неймспейсу кластера управления или клиентского кластера).
  • Изменять и удалять платформенные, кластерные и неймспейсные назначения прав всех доступных пользователю кластеров и пространств имен.

Статусная модель назначения прав доступа в Комплексе отражает статусы применения назначений пользователей/групп пользователей:

  • В блоке "Статус применения в кластере управления" сгруппированы результаты применения назначений в самом кластере управления( см Сноску 1), в Opensearch.
  • Блок "Статус применения в клиентских кластерах" отражает успешность применения прав доступа в кластере и применение ролей в ArgoCD. Для уровня "Платформа" приведен количественный показатель, отражающий отношение кластеров, в которых назначение было успешно применено, к общему количеству кластеров. Для остальных уровней приведена цветовая индикация успешности применения назначений.

Сноска 1 Кластер управления отвечает за некоторые объекты клиентских кластеров, например, объекты API-групп: cluster.x-k8s.io, bootstrap.cluster.x-k8s.io, infrastructure.cluster.x-k8s.io, permissions.shturval.tech. Поэтому на каждом уровне доступа в набор доступа для получения таких объектов необходимы платформенные разрешения. Именно поэтому в статусах назначения прав доступа можно увидеть применение назначения в кластер управления, даже если назначенные разрешения относятся к кластеру или неймспейсу.

Согласно цветовой индикации:

  • зеленый ‒ успешно применено;
  • красный ‒ в результате применения прав доступа есть ошибки;
  • серый ‒ применение не требуется. Это может быть в случае, если в наборе доступов не было запрошено выделение прав доступа, например, в Opensearch.

Особенности управления доступом в тенантах

Права доступа, назначенные в тенант, будут применены ко всем существующем в тенанте объектам. В интерфейсе пользователи, имеющие доступ к тенанту, смогут получить доступ к вложенным объектам тенанта. Доступ к самим тенантам будет только у платформенных пользователей.

Если тенант объединяет кластеры целиком (в пространствах имен указана "*"), то для назначения прав доступа будут доступны наборы доступов кластерного уровня (рисунок 41).

Рисунок 41 ‒ Права доступа в тенантах

Если тенант объединяет пространства имен, то для назначения прав доступа будут доступны наборы доступов неймспейсного уровня (рисунок 42).

Рисунок 42 ‒ Права доступа неймспейсного уровня в тетанте

Список наборов доступа будет доступен на экране после выбора имени тенанта, в который необходимо назначить права доступа.

Назначение прав группе пользователей

Для назначения прав доступа группе пользователей нужно перейти на вкладку абстракции, к которой требуется предоставить доступ (вкладка "Платформа", "Тенант", "Кластер" или "Неймспейс"), нажать +. В открывшемся экране отобразится форма "Назначение прав доступа" группе (рисунок 43).

В поле "Название группы" нужно начать вводить имя группы. Со второго введенного символа будет выполнен поиск группы по каталогу, подключенному при интеграции с LDAP (например, AD или openLDAP). Если каталог не подключен, нельзя будет указать название группы вручную и назначить права группе пользователей.

В результате поиска будет получен список имен групп, следует выбрать необходимую группу из списка. Поиск регистрозависимый, поэтому, если не найдена группа, необходимо уточнить введенные данные.

Рисунок 43 ‒ Назначение прав доступа группе

Все пользователи, входящие в группу, получат выделенные полномочия.

После того как название группы будет указано, необходимо выбрать перечень наборов доступов, которые требуется присвоить группе, и нажать кнопку Сохранить. Название группы после создания записи не будет доступно для редактирования. При необходимости можно изменить название группы, удалив запись и создав новую.

Назначение прав пользователю

Для назначения прав доступа пользователю нужно перейти на вкладку абстракции, к которой требуется предоставить доступ (вкладка "Платформа", "Тенант", "Кластер" или "Неймспейс"). В открывшемся экране отобразится форма "Назначение прав доступа" (рисунок 44).

Уникальное имя пользователя возможно задать в соответствии с каталогом, подключенным при интеграции с LDAP (например, AD или openLDAP). Если каталог не подключен, нельзя будет указать пользователя вручную и назначить ему права.

В поле "Уникальное имя пользователя" нужно начать вводить имя пользователя. Со второго введенного символа будет выполнен поиск пользователей по каталогу. В результате поиска отобразится список пользователей, имена которых содержат указанные символы.

Далее следует выбрать имя пользователя из списка. Поиск по каталогу регистрозависимый, поэтому, если пользователь не найден или отсутствует в списке, необходимо уточнить введенные данные.

Рисунок 44 ‒ Назначение прав доступа пользователю

После того как "Уникальное имя пользователя" будет заполнено, нужно выбрать наборы доступов, которые требуется присвоить пользователю, затем нажать кнопку Сохранить. Имя пользователя после создания записи не будет доступно для редактирования. При необходимости можно изменить имя пользователя, удалив запись и создав новую.

Следует обратить внимание, что, если набор доступов включает роль в ArgoCD, то:

  • при назначении набора доступов на уровне Комплекса группе/пользователю будет открыт доступ к проектам ArgoCD всех клиентских кластеров Комплекса;
  • при назначении набора доступов на уровне кластера группе/пользователю будет открыт доступ ко всем проектам ArgoCD этого кластера;
  • при назначении набора доступов на уровне неймспейса группе/пользователю будет открыт доступ к проекту ArgoCD только одного неймспейса.