Включение ролевой модели в 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).

Подготовка файлов и скрипта

  1. Загрузите скрипт включения ролевой модели из репозитория вендора по ссылке, предоставленной проектным менеджером.

  2. Разместите его в директории дистрибутива ~/installer на LCM.

  3. Создайте файл с сертификатами LDAPS в директории ~/installer/certs/:

    # mkdir -p ~/installer/certs
    # vi ~/installer/certs/ldaps.pem
    
  4. Поместите в файл ldaps.pem корневой и промежуточный сертификаты вашего сервера LDAP/AD в формате PEM.

  5. Убедитесь, что в файлах конфигурации указан актуальный релиз. Проверьте содержимое файлов ~/installer/settings и ~/installer/config/settings:

    # grep RELEASE ~/installer/settings
    # grep RELEASE ~/installer/config/settings
    
  6. Убедитесь, что значение переменной RELEASE соответствует export RELEASE=ks2025.2.2-sberlinux.

  7. Если значение отличается, отредактируйте файлы и установите корректный релиз.

Восстановление паролей NetBox

Ролевая модель требует наличия паролей NetBox в файлах окружения:

  1. Скопируйте файлы с паролями из состава дистрибутива:

    # cp ~/installer/netbox-docker/env/*.env ~/installer/data/netbox/env/
    
  2. Эти файлы содержат необходимые пароли для базы данных, Redis и других компонентов NetBox.

Запуск скрипта включения ролевой модели

  1. Перейдите в директорию дистрибутива и подготовьте окружение:

    # cd ~/installer
    # source settings
    
  2. Получите пароль пользователя root GitLab из Vault. Этот пароль находится по пути secret_v2 / deployments/ <LCM FQDN> / secrets / accounts в секрете gitlab_root_password.

  3. Установите переменную окружения с паролем GitLab и запустите скрипт:

    # export GITLAB_PASSWORD=<пароль из Vault>
    # bash enable_rbac.sh
    
  4. Скрипт запросит параметры интеграции с LDAP/AD.

  5. При выполнении скрипта ответьте на вопросы согласно вашей конфигурации 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=com

        • LDAP 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.

  1. Подготовьте команды ниже, заменив в них значения паролей (netbox_db_password, netbox_redis_cache_password и другие) на фактические пароли из вашего окружения. Замените LDAP-BIND-PASSWORD на пароль служебного пользователя LDAP, который вы указывали ранее.

  2. Выполните следующие команды на 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. После первого входа:

  1. Войдите в NetBox с учётной записью администратора (роль admin).

  2. Перейдите в раздел Администратор > Аутентификация > Группы.

  3. Отредактируйте группы 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 описана в разделе: