Включение ролевой модели в KeyStack¶
Эта инструкция описывает процесс подключения ролевой модели на существующем LCM после обновления до релиза ks2025.2.2 или при установке ks2025.2.2 без ролевой модели.
Ролевая модель обеспечивает централизованное управление доступом пользователей к компонентам платформы через интеграцию с LDAP/AD. После включения ролевой модели доступ к GitLab и NetBox будет осуществляться через учётные записи централизованного каталога организации.
Ролевая модель KeyStack описана в разделе:
Предварительные требования¶
Перед началом работы убедитесь, что:
LCM обновлён до релиза ks2025.2.2 или установлен с этим релизом;
имеется доступ к серверу LDAP/AD с поддержкой LDAPS (TLS);
подготовлены корневой и промежуточный сертификаты для LDAP/AD;
известны учётные данные служебного пользователя LDAP с правами просмотра;
настроены группы LDAP/AD для ролей KeyStack (admin, reader, auditor).
Подготовка файлов и скрипта¶
Загрузите скрипт включения ролевой модели из репозитория вендора по ссылке, предоставленной проектным менеджером.
Разместите его в директории дистрибутива
~/installerна LCM.Создайте файл с сертификатами LDAPS в директории
~/installer/certs/:# mkdir -p ~/installer/certs # vi ~/installer/certs/ldaps.pem
Поместите в файл
ldaps.pemкорневой и промежуточный сертификаты вашего сервера LDAP/AD в формате PEM.Убедитесь, что в файлах конфигурации указан актуальный релиз. Проверьте содержимое файлов
~/installer/settingsи~/installer/config/settings:# grep RELEASE ~/installer/settings # grep RELEASE ~/installer/config/settings
Убедитесь, что значение переменной
RELEASEсоответствуетexport RELEASE=ks2025.2.2-sberlinux.Если значение отличается, отредактируйте файлы и установите корректный релиз.
Восстановление паролей NetBox¶
Ролевая модель требует наличия паролей NetBox в файлах окружения:
Скопируйте файлы с паролями из состава дистрибутива:
# cp ~/installer/netbox-docker/env/*.env ~/installer/data/netbox/env/
Эти файлы содержат необходимые пароли для базы данных, Redis и других компонентов NetBox.
Запуск скрипта включения ролевой модели¶
Перейдите в директорию дистрибутива и подготовьте окружение:
# cd ~/installer # source settings
Получите пароль пользователя
rootGitLab из Vault. Этот пароль находится по пути secret_v2 / deployments/ <LCM FQDN> / secrets / accounts в секретеgitlab_root_password.Установите переменную окружения с паролем GitLab и запустите скрипт:
# export GITLAB_PASSWORD=<пароль из Vault> # bash enable_rbac.sh
Скрипт запросит параметры интеграции с LDAP/AD.
При выполнении скрипта ответьте на вопросы согласно вашей конфигурации LDAP/AD:
auth LDAP for GitLab and NetBox:
y— включить поддержку интеграции с каталогами LDAP и ролевой модели в GitLab и NetBox; при выборе этого варианта укажите:LDAP Server URI: адрес LDAP-сервиса в формате
ldaps://<IP или FQDN>. Например:ldaps://ldap.example.com.LDAP BIND DN: пользователь в LDAP с правами просмотра, используется для подключения к LDAP. Например:
CN=ldap-reader,CN=Users,DC=example,DC=com.LDAP BIND Password: пароль пользователя для подключения к LDAP.
LDAP USER SEARCH BASEDN: имя контейнера (Distinguished Name) в LDAP, с которого начинается поиск пользователей. Например:
DC=example,DC=comLDAP GROUP SEARCH BASEDN: группа для поиска пользователя; вернет все группы, к которым принадлежит пользователь. Например:
OU=KeyStack,OU=Groups,DC=example,DC=com.LDAP GROUP for reader role: группа LDAP, пользователи из которой соответствуют роли reader. Например:
CN=KeyStack-Readers,OU=KeyStack,OU=Groups,DC=example,DC=com.LDAP GROUP for auditor role: группа LDAP, пользователи из которой соответствуют роли auditor. Например:
CN=KeyStack-Auditors,OU=KeyStack,OU=Groups,DC=example,DC=com.LDAP GROUP for admin role: группа LDAP, пользователи из которой соответствуют роли admin. Например:
CN=KeyStack-Admins,OU=KeyStack,OU=Groups,DC=example,DC=com
Обновление конфигурации паролей NetBox¶
После выполнения скрипта необходимо обновить пароли в файлах конфигурации NetBox.
Подготовьте команды ниже, заменив в них значения паролей (
netbox_db_password,netbox_redis_cache_passwordи другие) на фактические пароли из вашего окружения. ЗаменитеLDAP-BIND-PASSWORDна пароль служебного пользователя LDAP, который вы указывали ранее.Выполните следующие команды на LCM:
# cd ~/installer/config # source settings # sed -i "s|DB_PASSWORD=.*|DB_PASSWORD=netbox_db_password|" $NETBOX_HOME/env/netbox.env # sed -i "s|REDIS_CACHE_PASSWORD=.*|REDIS_CACHE_PASSWORD=netbox_redis_cache_password|" $NETBOX_HOME/env/netbox.env # sed -i "s|REDIS_PASSWORD=.*|REDIS_PASSWORD=netbox_redis_password|" $NETBOX_HOME/env/netbox.env # sed -i "s|SUPERUSER_PASSWORD=.*|SUPERUSER_PASSWORD=netbox_admin_password|" $NETBOX_HOME/env/netbox.env # sed -i "s|AUTH_LDAP_BIND_PASSWORD: .*|AUTH_LDAP_BIND_PASSWORD: \"LDAP-BIND-PASSWORD\"|" $NETBOX_HOME/env/netbox.env # sed -i "s|POSTGRES_PASSWORD=.*|POSTGRES_PASSWORD=netbox_db_password|" $NETBOX_HOME/env/postgres.env # sed -i "s|REDIS_PASSWORD=.*|REDIS_PASSWORD=netbox_redis_password|" $NETBOX_HOME/env/redis.env # sed -i "s|REDIS_PASSWORD=.*|REDIS_PASSWORD=netbox_redis_cache_password|" $NETBOX_HOME/env/redis-cache.env
Проверка работы ролевой модели¶
После завершения настройки проверьте работу ролевой модели.
Проверка доступа к GitLab¶
Откройте веб-интерфейс GitLab и войдите с учётной записью пользователя из группы LDAP. Убедитесь, что пользователь получил соответствующие права доступа согласно своей роли.
Проверка доступа к NetBox¶
Откройте веб-интерфейс NetBox и войдите с учётной записью из LDAP. После первого входа:
Войдите в NetBox с учётной записью администратора (роль admin).
Перейдите в раздел .
Отредактируйте группы LDAP и назначьте им соответствующие разрешения:
Для групп
readerиsecurity_auditorустановите разрешениеperm_ro(только чтение).Для группы
adminустановите разрешениеperm_rw(чтение и запись).
После настройки разрешений пользователи смогут работать в NetBox в соответствии со своими ролями.
Что происходит при включении ролевой модели¶
При включении ролевой модели выполняются следующие изменения в конфигурации GitLab:
Блокируется встроенный пользователь
root.Создаётся технологическая учётная запись
ks-admin.Пароль и токен доступа (PAT) для
ks-adminсохраняются в Vault по путиsecret_v2/deployments/GITLAB_FQDN/secrets/accounts.Все технические операции в дальнейшем выполняются от имени учётной записи
ks-admin.
Это обеспечивает соблюдение принципов безопасности и исключает использование встроенных учётных записей для повседневных операций.
Настройка ролевой модели в KeyStack описана в разделе: