Обновление секретов

Ручная ротация SSH-ключей

Для смены SSH-ключей сервисов keystone, nova и neutron выполните следующие действия:

  1. Войдите в хранилище секретов Vault и перейдите в директорию secret_v2 / deployments / <LCM FQDN> / <имя региона> / passwords_yml.

  2. Обновите значение private_key и public_key для параметров:

    • keystone_ssh_key,

    • neutron_ssh_key,

    • nova_ssh_key.

  3. Запустите пайплайн с тегом -t keystone,nova,neutron в параметре KOLLA_ARGS.

Автоматическая ротация пользователей и паролей для подключения LDAP

Предварительные требования:

  • В HashiСorp Vault должен быть включён и настроен Secrets Engine ldap с созданной в нём парой ролей для пользователей и паролей.

  • На этапе установки LCM должна быть включена интеграция с каталогами LDAP (опция auth LDAP for GitLab and NetBox), а также настроена ролевая модель в OpenStack.

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

  1. Зайдите в Vault в файл паролей региона secret_v2 / deployments / <LCM FQDN> / <имя региона> / passwords_yml.

  2. Создайте новую версию passwords_yml и измените в файле значения для следующих параметров:

    • ldap_user — пользователь из LDAP для настройки ролевой модели в OpenStack в формате ldap-ro,

    • ldap_password — пароль для пользователя ldap_user.

    Сохраните изменения для новой версии.

  3. Откройте веб-интерфейс развёрнутого GitLab и перейдите в репозиторий project_k / deployments / <имя региона>.

  4. Перейдите в раздел Settings > CI/CD > Variables и создайте новую переменную с именем vault_ldap_mount и значением, указывающим на название Vault Secrets Engine ldap (например, ldap). Можно добавить опциональные переменные:

    • EXP_THRESHOLD_DAYS — количество дней до окончания TTL (Time to Live) роли, по умолчанию 30;

    • EXP_THRESHOLD_SECONDSEXP_THRESHOLD_DAYS * 86400 - количество секунд до окончания TTL роли, рассчитывается автоматически.

  5. Перейдите в конфигурационный файл региона (по умолчанию это globals.d/REGION.yml) и добавьте в него строки:

    ldap_roles:
      - <название первой роли в Vault Secrets Engine ldap в формате ldap-ro1>
      - <название второй роли в Vault Secrets Engine ldap в формате ldap-ro2>
    
  6. Перейдите в раздел Build > Pipeline Schedules и создайте новое расписание, нажав на кнопку New schedule.

    1. В поле Description введите Rotate Vault AD/LDAP.

    2. Задайте часовой пояс в поле Cron timezone.

    3. В поле Interval Pattern выберите Every month.

    4. В поле Variables добавьте переменную ROTATE со значением true.

    5. Нажмите на чек-бокс Activated, чтобы планировщик был сразу запущен согласно заданному расписанию.

    6. Нажмите кнопку Create pipeline schedule.

Автоматическая ротация пользователей и паролей для подключения SMTP

Предварительные требования:

Для настройки автоматической ротации для подключения SMTP выполните следующие действия:

  1. Зайдите в Vault в файл паролей региона secret_v2 / deployments / <LCM FQDN> / <имя региона> / passwords_yml.

  2. Создайте новую версию passwords_yml и измените в файле значения для следующих параметров:

    • smtp_user — пользователь из LDAP для шаблона почтового уведомления об алертах в формате ldap-ro;

    • smtp_password — пароль для пользователя smtp_user.

    Сохраните изменения для новой версии.

  3. Откройте веб-интерфейс развёрнутого GitLab и перейдите в репозиторий project_k / deployments / <имя региона>.

  4. Перейдите в раздел Settings > CI/CD > Variables и создайте новую переменную с именем vault_ldap_mount и значением, указывающим на название Vault Secrets Engine ldap (например, ldap). Можно добавить опциональные переменные:

    • EXP_THRESHOLD_DAYS — количество дней до окончания ttl (Time To Live) роли, по умолчанию 30;

    • EXP_THRESHOLD_SECONDSEXP_THRESHOLD_DAYS * 86400 - количество секунд до окончания ttl роли, рассчитывается автоматически.

  5. Перейдите в конфигурационный файл региона (по умолчанию это globals.d/REGION.yml) и добавьте в него строки:

    smtp_fqdn: "<название почтового домена, например, cloud.itkey.com>"
    smtp_roles:
      - <название первой роли в Vault ldap в формате smtp1>
      - <название второй роли в Vault ldap в формате smtp2>
    
  6. Перейдите в раздел Build > Pipeline Schedules и создайте новый Schedule, нажав на кнопку New schedule.

    1. В поле Description введите Rotate Vault AD/LDAP.

    2. Задайте часовой пояс в поле Cron timezone.

    3. В поле Interval Pattern выберите Every month.

    4. В поле Variables заведите переменную со значением ROTATE: true.

    5. Нажмите на чек-бокс Activated, чтобы планировщик был сразу запущен согласно заданному расписанию.

    6. Нажмите кнопку Create pipeline schedule.

Ротация паролей сервисов OpenStack

Для получения информации о ротации паролей для сервисов OpenStack обратитесь к документации OpenStack.

Смена пароля УЗ администратора NetBox

  1. Сгенерируйте новый пароль для УЗ администратора системы управления инфраструктурой NetBox.

    Важно

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

  2. Войдите в интерфейс системы управления инфраструктурой NetBox https://netbox.<имя домена> с действующими учётными данными администратора.

  3. Перейдите в раздел Admin > Users.

  4. Нажмите на кнопку ✏️ напротив пользователя admin.

  5. Введите новый пароль в поля Password и Confirm password и нажмите Save.

  6. Повторно пройдите аутентификацию с обновлённым паролем.

  7. Войдите в интерфейс хранилища секретов https://vault.<имя домена>.

  8. Перейдите в директорию secret_v2 / deployments/ <LCM FQDN> / secrets / accounts, откройте вкладку Secrets и выберите действие Create New Version +.

  9. Замените значение переменной netbox_admin_password на новый пароль и нажмите Save.

Замена токена NetBox

  1. Войдите в интерфейс системы управления инфраструктурой NetBox https://netbox.<имя домена> с учётными данными администратора.

  2. Перейдите в раздел Admin > API Tokens и выберите действие + Add.

  3. Выберите пользователя в графе User.

  4. При необходимости укажите дату истечения токена в поле Expires в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС.

  5. При необходимости укажите описание токена в поле Description.

  6. При необходимости укажите разрешённые сети в поле Allowed IPs в формате «адрес сети/маска».

  7. Выберите действие Create.

  8. Отметьте чекбокс старого токена и нажмите Delete Selected.

  9. Подтвердите удаление нажатием Delete 1 tokens.

  10. Скопируйте новый токен в буфер обмена.

  11. Войдите в интерфейс хранилища секретов https://vault.<имя домена>.

  12. Перейдите в директорию secret_v2 / deployments/ <LCM FQDN> / secrets / accounts, откройте вкладку Secrets и выберите действие Create New Version +.

  13. Замените значение переменной NETBOX_TOKEN и нажмите Save.

Смена пароля УЗ администратора Nexus

  1. Сгенерируйте новый пароль для УЗ администратора платформы для хранения артефактов сборки Nexus.

    Важно

    Рекомендуемая длина пароля от 16 символов, допускается содержание заглавных и строчных букв, цифр и спецсимволов.

  2. Войдите в интерфейс платформы для хранения артефактов сборки Nexus https://nexus.<имя домена> с действующими учётными данными администратора.

  3. Перейдите на страницу администратора admin.

  4. Введите текущий пароль в поле Current Password и новый пароль в поля New Password и New Password (Confirm) и нажмите Save.

  5. Войдите в интерфейс хранилища секретов https://vault.<имя домена>.

  6. Перейдите в директорию secret_v2 / deployments/ <LCM FQDN> / secrets / accounts, откройте вкладку Secrets и выберите действие Create New Version +.

  7. Замените значение переменной nexus_admin_password на новый пароль и нажмите Save.

Замена пароля в контейнере Nexus

  1. Подключитесь к LCM-узлу по ssh с привилегиями пользователя root.

  2. Подключитесь к контейнеру gitlab-runner, введя команду:

    $ docker exec -it gitlab-runner bash
    
  3. Выполните команду:

    $ echo 'admin:<nexus_admin_password>' | base64
    

    Где <nexus_admin_password> — сгенерированный пароль для УЗ администратора платформы для хранения артефактов сборки Nexus. Значение доступно для просмотра в хранилище секретов.

  4. Полученное значение скопируйте и вставьте в файл /root/.docker/config.json.

  5. Выйдите из контейнера gitlab-runner.

Смена паролей доступа к связанным системам и службам

  1. Сгенерируйте новый пароль для базы данных netbox_db_password.

  2. Сгенерируйте новый пароль для брокера задач netbox_redis_password.

  3. Сгенерируйте новый пароль для кеширования данных netbox_redis_cache_password.

    Важно

    Рекомендуемая длина пароля от 16 символов, допускается содержание заглавных и строчных букв, цифр и спецсимволов.

  4. Войдите в интерфейс хранилища секретов https://vault.<имя домена>.

  5. Перейдите в директорию secret_v2 / deployments/ <LCM FQDN> / secrets / accounts, откройте вкладку Secrets и выберите действие Create New Version +.

  6. Замените значение переменных netbox_db_password, netbox_redis_cache_password и netbox_redis_password на новые пароли и нажмите Save.

Замена паролей в переменных окружения

  1. Подключитесь к LCM-узлу по ssh с привилегиями пользователя root.

  2. Сохраните текущие переменные окружения, введя команду:

    $ cp -r /installer/data/netbox/env /installer/data/netbox/env_backup
    
  3. Скачайте установочный архив из внутреннего репозитория или по внешней ссылке.

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

    $ tar --strip-components=3 -xzvf <имя файла архива>.tgz -C /installer/data/netbox/env installer/netbox-docker/env/*.env
    
  5. Перейдите в папку с извлечёнными файлами, введя команду:

    $ cd /installer/data/netbox/env
    
  6. В файле netbox.env в текстовом редакторе измените значения для переменных:

    • DB_PASSWORD – замените значение на сгенерированный пароль для базы данных,

    • REDIS_CACHE_PASSWORD – замените значение на сгенерированный пароль для кеширования данных,

    • REDIS_PASSWORD – замените значение на сгенерированный пароль для брокера задач,

    • SUPERUSER_PASSWORD – замените значение на пароль УЗ администратора системы управления инфраструктурой NetBox.

  7. В файле postgres.env в текстовом редакторе измените значение для переменной:

    • POSTGRES_PASSWORD – замените значение на сгенерированный пароль для базы данных.

  8. В файле redis-cache.env в текстовом редакторе измените значение для переменной:

    • REDIS_PASSWORD – замените значение на сгенерированный пароль для кеширования данных.

  9. В файле redis.env в текстовом редакторе измените значение для переменной:

    • REDIS_PASSWORD – замените значение на сгенерированный пароль для брокера задач.

Замена паролей в системах

  1. Подключитесь к контейнеру netbox-postgres, введя команду:

    $ docker exec -it netbox-postgres bash
    
  2. Последовательно введите команды:

    $ psql -h 127.0.0.1 -U netbox -d netbox
    $ \c postgres
    $ ALTER USER netbox WITH PASSWORD 'new_password';
    

    Где new_password — сгенерированный пароль для базы данных. Значение доступно для просмотра в хранилище секретов.

  3. Выйдите из контейнера netbox-postgres.

  4. Подключитесь к контейнеру netbox-redis, введя команду:

    $ docker exec -it netbox-redis  /bin/sh
    
  5. Последовательно введите команды:

    $ redis-cli
    $ AUTH <old_pass>
    $ set mypasswd <new_pass>
    

    Где <old_pass> и <new_pass> — старый и новый пароли для брокера задач. Значения доступны для просмотра в хранилище секретов.

  6. Выйдите из контейнера netbox-redis.

  7. Подключитесь к контейнеру netbox-redis-cache, введя команду:

    $ docker exec -it netbox-redis-cache /bin/sh
    
  8. Последовательно введите команды:

    $ redis-cli
    $ AUTH <old_pass>
    $ set mypasswd <new_pass>
    

    Где <old_pass> и <new_pass> — старый и новый пароли для кеширования данных. Значения доступны для просмотра в хранилище секретов.

  9. Выйдите из контейнера netbox-redis-cache.

  10. Пересоздайте контейнеры с новыми учётными данными, последовательно введя команды:

    $ . /installer/config/settings
    $ docker compose -f $CFG_HOME/netbox-compose.yml up –d
    
  11. Замените переменные окружения файлами из резервной копии, введя команду:

    $ mv /installer/data/netbox/env_backup /installer/data/netbox/env