Обновление секретов¶
Ручная ротация SSH-ключей¶
Для смены SSH-ключей сервисов keystone, nova и neutron выполните следующие действия:
Войдите в хранилище секретов Vault и перейдите в директорию secret_v2 / deployments / <LCM FQDN> / <имя региона> / passwords_yml.
Обновите значение
private_keyиpublic_keyдля параметров:keystone_ssh_key,neutron_ssh_key,nova_ssh_key.
Запустите пайплайн с тегом
-t keystone,nova,neutronв параметреKOLLA_ARGS.
Автоматическая ротация пользователей и паролей¶
Автоматическая ротация пользователей и паролей может использоваться для подключения LDAP и/или SMTP.
Настройка автоматической ротации состоит из следующих шагов:
Настройка переменных для ротации в Vault и конфигурационном файле региона:
Настройка основных параметров ротации для подключения LDAP¶
Важно
Для интеграции с LDAP требуется подготовить две ТУЗ, одна из которых будет использоваться для региона, а другая — для LCM-узла.
Предварительные требования:
В HashiСorp Vault должен быть включён и настроен Secrets Engine ldap с созданной в нём парой ролей для пользователей и паролей.
На этапе установки LCM должна быть включена интеграция с каталогами LDAP (опция auth LDAP for GitLab and NetBox), а также настроена ролевая модель в OpenStack.
Для настройки основных параметров автоматической ротации для подключения LDAP выполните следующие действия:
Зайдите в Vault в файл паролей региона secret_v2 / deployments / <LCM FQDN> / <имя региона> / passwords_yml.
Создайте новую версию
passwords_ymlи измените в файле значения для следующих параметров:ldap_user— пользователь из LDAP для настройки ролевой модели в OpenStack в формате ldap-ro;ldap_password— пароль для пользователяldap_user.
Сохраните изменения для новой версии.
Откройте веб-интерфейс развёрнутого GitLab и перейдите в репозиторий project_k / deployments / <имя региона>.
Перейдите в конфигурационный файл региона (по умолчанию это
globals.d/REGION.yml) и добавьте в него строки:ldap_roles: - <название первой роли в Vault Secrets Engine ldap в формате ldap-ro1> - <название второй роли в Vault Secrets Engine ldap в формате ldap-ro2>
Также вы можете настроить регулярное выполнение задач rotate-sa с помощью Pipeline Schedules. Для этого выполните следующие действия:
Перейдите в раздел и создайте новое расписание, нажав на кнопку New schedule.
В поле Description введите название расписания, например,
Rotate Vault AD/LDAP.Задайте часовой пояс в поле Cron timezone.
В поле Interval Pattern выберите необходимую периодичность выполнения задачи
rotate-sa, например,Every month. Чтобы задать собственный интервал запуска, выберите вариантCustomи введите cron-выражение. Например:0 4 * * *— ежедневный запуск в 04:00;0 4 * * 1— еженедельный запуск по понедельникам в 04:00;0 4 1 * *— ежемесячный запуск первого числа в 04:00.
В поле Variables добавьте переменную
SCHEDULE_TASKсо значениемrotate-sa.Убедитесь, что чек-бокс Activated включен, чтобы планировщик был сразу запущен согласно заданному расписанию.
Нажмите кнопку Create pipeline schedule.
Создание расписания для ротации сервисных аккаунтов¶
Настройка основных параметров ротации для подключения SMTP¶
Предварительные требования:
В HashiCorp Vault должен быть включен и настроен Secrets Engine ldap с созданной в нём парой ролей для пользователей и паролей.
Должен быть настроен шаблон почтового уведомления об алертах.
Для настройки основных параметров автоматической ротации для подключения SMTP выполните следующие действия:
Зайдите в Vault в файл паролей региона secret_v2 / deployments / <LCM FQDN> / <имя региона> / passwords_yml.
Создайте новую версию
passwords_ymlи измените в файле значения для следующих параметров:smtp_user— пользователь из LDAP для шаблона почтового уведомления об алертах в формате ldap-ro;smtp_password— пароль для пользователяsmtp_user.
Сохраните изменения для новой версии.
Откройте веб-интерфейс развёрнутого GitLab и перейдите в репозиторий project_k / deployments / <имя региона>.
Перейдите в конфигурационный файл региона (по умолчанию это
globals.d/REGION.yml) и добавьте в него строки:smtp_fqdn: "<название почтового домена, например, cloud.itkey.com>" smtp_roles: - <название первой роли в Vault ldap в формате smtp1> - <название второй роли в Vault ldap в формате smtp2>
Настройка переменных ротации в GitLab¶
После задания параметров ротации в Vault и globals.d/REGION.yml необходимо добавить в GitLab переменную vault_ldap_mount, которая используется для автоматизации обращения к секретам внутри Vault. Для этого:
Откройте веб-интерфейс развёрнутого GitLab и перейдите в репозиторий project_k / deployments / <имя региона>.
Перейдите в раздел и создайте новую переменную с именем
vault_ldap_mountи значением, указывающим на название Vault Secrets Engine ldap (например,ldap).
Также в Variables можно добавить опциональные переменные:
EXP_THRESHOLD_DAYS— количество дней до окончания TTL (Time to Live) роли, по умолчанию30;
EXP_THRESHOLD_SECONDS— количество секунд до окончания TTL роли, вычисляется автоматически какEXP_THRESHOLD_DAYS * 86400.
Создание расписания автоматической ротации¶
Для создания и настройки расписания автоматической ротации выполните следующие действия:
Откройте веб-интерфейс развёрнутого GitLab и перейдите в репозиторий project_k / deployments / <имя региона>.
Перейдите в раздел и создайте новое расписание, нажав на кнопку New schedule.
В поле Description введите название расписания, например,
Rotate Vault AD/LDAP.Задайте часовой пояс в поле Cron timezone.
В поле Interval Pattern выберите
Every month.В поле Variables добавьте переменную
SCHEDULE_TASKсо значениемrotate-sa.Нажмите на чек-бокс Activated, чтобы планировщик был сразу запущен согласно заданному расписанию.
Нажмите кнопку Create pipeline schedule.
Ротация паролей сервисов OpenStack¶
Для получения информации о ротации паролей для сервисов OpenStack обратитесь к документации OpenStack.
Смена пароля УЗ администратора NetBox¶
Сгенерируйте новый пароль для УЗ администратора системы управления инфраструктурой NetBox.
Важно
Пароль должен содержать не менее 12 символов и должен включать хотя бы одну заглавную букву, одну строчную букву и одну цифру.
Войдите в интерфейс системы управления инфраструктурой NetBox
https://netbox.<имя домена>с действующими учётными данными администратора.Перейдите в раздел .
Нажмите на кнопку ✏️ напротив пользователя .
Введите новый пароль в поля Password и Confirm password и нажмите Save.
Повторно пройдите аутентификацию с обновлённым паролем.
Войдите в интерфейс хранилища секретов
https://vault.<имя домена>.Перейдите в директорию secret_v2 / deployments/ <LCM FQDN> / secrets / accounts, откройте вкладку Secrets и выберите действие Create New Version +.
Замените значение переменной
netbox_admin_passwordна новый пароль и нажмите Save.
Замена токена NetBox¶
Войдите в интерфейс системы управления инфраструктурой NetBox
https://netbox.<имя домена>с учётными данными администратора.Перейдите в раздел и выберите действие + Add.
Выберите пользователя в графе User.
При необходимости укажите дату истечения токена в поле Expires в формате
ГГГГ-ММ-ДД ЧЧ:ММ:СС.При необходимости укажите описание токена в поле Description.
При необходимости укажите разрешённые сети в поле Allowed IPs в формате «адрес сети/маска».
Выберите действие Create.
Отметьте чекбокс старого токена и нажмите Delete Selected.
Подтвердите удаление нажатием Delete 1 tokens.
Скопируйте новый токен в буфер обмена.
Войдите в интерфейс хранилища секретов
https://vault.<имя домена>.Перейдите в директорию secret_v2 / deployments/ <LCM FQDN> / secrets / accounts, откройте вкладку Secrets и выберите действие Create New Version +.
Замените значение переменной
NETBOX_TOKENи нажмите Save.
Смена пароля УЗ администратора Nexus¶
Сгенерируйте новый пароль для УЗ администратора платформы для хранения артефактов сборки Nexus.
Важно
Рекомендуемая длина пароля от 16 символов, допускается содержание заглавных и строчных букв, цифр и спецсимволов.
Войдите в интерфейс платформы для хранения артефактов сборки Nexus
https://nexus.<имя домена>с действующими учётными данными администратора.Перейдите на страницу администратора .
Введите текущий пароль в поле Current Password и новый пароль в поля New Password и New Password (Confirm) и нажмите Save.
Войдите в интерфейс хранилища секретов
https://vault.<имя домена>.Перейдите в директорию secret_v2 / deployments/ <LCM FQDN> / secrets / accounts, откройте вкладку Secrets и выберите действие Create New Version +.
Замените значение переменной
nexus_admin_passwordна новый пароль и нажмите Save.
Замена пароля Nexus в контейнере GitLab-runner¶
Подключитесь к LCM-узлу по SSH с привилегиями пользователя root.
Подключитесь к контейнеру
gitlab-runner, введя команду:$ docker exec -it gitlab-runner bash
Выполните команду:
$ echo 'admin:<nexus_admin_password>' | base64
Где
<nexus_admin_password>— сгенерированный пароль для УЗ администратора платформы для хранения артефактов сборки Nexus. Значение доступно для просмотра в хранилище секретов.Полученное значение скопируйте и вставьте в файл
/root/.docker/config.json.Выйдите из контейнера
gitlab-runner.
Смена паролей доступа к связанным системам и службам¶
Сгенерируйте новый пароль для базы данных
netbox_db_password.Сгенерируйте новый пароль для брокера задач
netbox_redis_password.Сгенерируйте новый пароль для кеширования данных
netbox_redis_cache_password.Важно
Рекомендуемая длина пароля от 16 символов, допускается содержание заглавных и строчных букв, цифр и спецсимволов.
Войдите в интерфейс хранилища секретов
https://vault.<имя домена>.Перейдите в директорию secret_v2 / deployments/ <LCM FQDN> / secrets / accounts, откройте вкладку Secrets и выберите действие Create New Version +.
Замените значение переменных
netbox_db_password,netbox_redis_cache_passwordиnetbox_redis_passwordна новые пароли и нажмите Save.
Замена паролей в переменных окружения¶
Подключитесь к LCM-узлу по SSH с привилегиями пользователя root.
Сохраните текущие переменные окружения, введя команду:
$ cp -r /installer/data/netbox/env /installer/data/netbox/env_backup
Скачайте установочный архив из внутреннего репозитория или по внешней ссылке.
Перейдите в папку со скачанным архивом и извлеките из него секреты, введя команду:
$ tar --strip-components=3 -xzvf <имя файла архива>.tgz -C /installer/data/netbox/env installer/netbox-docker/env/*.env
Перейдите в папку с извлечёнными файлами, введя команду:
$ cd /installer/data/netbox/env
В файле
netbox.envв текстовом редакторе измените значения для переменных:DB_PASSWORD– замените значение на сгенерированный пароль для базы данных,REDIS_CACHE_PASSWORD– замените значение на сгенерированный пароль для кеширования данных,REDIS_PASSWORD– замените значение на сгенерированный пароль для брокера задач,SUPERUSER_PASSWORD– замените значение на пароль УЗ администратора системы управления инфраструктурой NetBox.
В файле
postgres.envв текстовом редакторе измените значение для переменной:POSTGRES_PASSWORD– замените значение на сгенерированный пароль для базы данных.
В файле
redis-cache.envв текстовом редакторе измените значение для переменной:REDIS_PASSWORD– замените значение на сгенерированный пароль для кеширования данных.
В файле
redis.envв текстовом редакторе измените значение для переменной:REDIS_PASSWORD– замените значение на сгенерированный пароль для брокера задач.
Замена паролей в системах¶
Подключитесь к контейнеру
netbox-postgres, введя команду:$ docker exec -it netbox-postgres bash
Последовательно введите команды:
$ psql -h 127.0.0.1 -U netbox -d netbox $ \c postgres $ ALTER USER netbox WITH PASSWORD 'new_password';
Где
new_password— сгенерированный пароль для базы данных. Значение доступно для просмотра в хранилище секретов.Выйдите из контейнера
netbox-postgres.Подключитесь к контейнеру
netbox-redis, введя команду:$ docker exec -it netbox-redis /bin/sh
Последовательно введите команды:
$ redis-cli $ AUTH <old_pass> $ set mypasswd <new_pass>
Где
<old_pass>и<new_pass>— старый и новый пароли для брокера задач. Значения доступны для просмотра в хранилище секретов.Выйдите из контейнера
netbox-redis.Подключитесь к контейнеру
netbox-redis-cache, введя команду:$ docker exec -it netbox-redis-cache /bin/sh
Последовательно введите команды:
$ redis-cli $ AUTH <old_pass> $ set mypasswd <new_pass>
Где
<old_pass>и<new_pass>— старый и новый пароли для кеширования данных. Значения доступны для просмотра в хранилище секретов.Выйдите из контейнера
netbox-redis-cache.Пересоздайте контейнеры с новыми учётными данными, последовательно введя команды:
$ . /installer/config/settings $ docker compose -f $CFG_HOME/netbox-compose.yml up –d
Замените переменные окружения файлами из резервной копии, введя команду:
$ mv /installer/data/netbox/env_backup /installer/data/netbox/env