Надёжное хранение паролей¶
Хранение паролей сервисов в Vault¶
Castellan — это библиотека, предоставляющая собой общий интерфейс для хранения, генерации и извлечения секретов. Она используется большинством сервисов OpenStack для управления секретами. Как библиотека, Castellan сама по себе не предоставляет хранилище секретов. Вместо этого требуется развертывание реализации на стороне сервера.
С помощью интеграции данной библиотеки в oslo.config и корректной настройки Vault можно хранить пароли сервисов OpenStack в Vault вместо текстовых файлов.
Поддерживаются следующие сервисы:
AdminUI
Cinder
DRS
Glance
Keystone
Neutron
Nova
Placement
Horizon
Barbican
HA
Для настройки хранения паролей сервисов в Vault выполните следующие действия:
Откройте веб-интерфейс GitLab.
Откройте файл
globals.d/castellan.ymlв репозитории региона и определитеservices_with_castellan— список сервисов, для которых необходимо включить хранение паролей в Vault.services_with_castellan: - drs - cinder - glance - neutron - nova - nova_cell - keystone - adminui - placement - horizon - barbican - consul
Задайте следующие настройки для аутентификации в Vault:
При аутентификации через AppRole:
castellan_vault_approle_role_id: "" castellan_vault_approle_secret_id: ""
При использовании Vault Enterprise и namespaces:
castellan_vault_namespace: ""
При аутентификации через токен:
castellan_vault_root_token_id: ""
Хранение паролей экспортёров Prometheus в Vault¶
Для настройки хранения паролей экспортёров Prometheus в Vault, выполните следующие действия:
Откройте веб-интерфейс GitLab.
Откройте файл
globals.d/castellan.ymlв репозитории региона и добавьте строки:prometheus_mysqld_exporter_use_vault: true prometheus_rabbitmq_exporter_use_vault: true prometheus_openstack_exporter_use_vault: true
Обновление секретов паролей в Vault¶
Ротация секретов в Vault невозможна. key_manager для Vault внутри Castellan предлагает различные CRUD-методы для секретов, но не обновление. Секреты нельзя обновлять, можно только удалять и создавать новые. Для обновления секрета для доступа к самому Vault в key_manager настроено обновление TTL-токена роли для авторизации.
Хеширование паролей сервисов¶
Пароли к некоторым сервисам можно хранить в хешированном виде. Реализовано для HAProxy в части:
OpenSearch
Prometheus
Для настройки хеширования паролей сервисов выполните следующие действия:
Откройте веб-интерфейс GitLab.
Откройте файл
globals.d/REGION.ymlв репозитории региона и определитеservices_with_hashed_password— список сервисов, для которых необходимо включить сокрытие паролей с помощью хеширования, например:services_with_hashed_password: - opensearch - prometheus - rabbitmq - proxysql
Запустите пайплайн для развёртывания нужных компонентов.
При этом должна автоматически запуститься задача setup-castellan, которая предзаполнит значения паролей в Vault.
Защита паролей в Consul¶
Пароли к сервису Consul можно скрывать в Vault.
Для настройки скрытия паролей сервиса Consul выполните следующие действия:
Откройте веб-интерфейс GitLab.
Откройте файл
globals.d/REGION.ymlв репозитории региона и определитеconsul_use_vault:consul_use_vault: true
Создайте новый пайплайн: .
В переменной
KOLLA_ARGSукажите значение-t consul.Запустите пайплайн, нажав кнопку New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Защита паролей в Redis, Grafana¶
Пароли к сервису Redis и Grafana можно скрывать в Vault.
Для настройки скрытия паролей сервисов Redis и Grafana, выполните следующие действия:
Откройте веб-интерфейс GitLab.
Откройте файл
globals.d/REGION.ymlв репозитории региона и определите ``enable_vault_agent ``:enable_vault_agent: true
Создайте новый пайплайн: .
В переменной
KOLLA_ARGSукажите значение-t redis,grafana.Запустите пайплайн, нажав кнопку New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.
Переключение аутентификации libvirt с SASL на TLS¶
Пароли к сервису libvirt можно переключить на использование TLS
Для настройки скрытия паролей сервиса libvirt выполните следующие действия:
Откройте веб-интерфейс GitLab.
Откройте файл
globals.d/REGION.ymlв репозитории региона и настройте параметры следующим образом:libvirt_enable_sasl: false libvirt_tls: "yes"
Запустите пайплайн генерации паролей и сертификатов для региона, как описано в разделе Генерация паролей и сертификатов для региона.
Создайте новый пайплайн: .
В переменной
KOLLA_ARGSукажите значение-t nova.Запустите пайплайн, нажав кнопку New pipeline.
Дождитесь завершения задач на этапе setup.
Запустите задачу deploy на этапе deploy и дождитесь её завершения.