Шифрование секретов базы данных с помощью Hashicorp Vault
Вы можете использовать ключ шифрования из Hashicorp Vault для шифрования секретов в базе данных Grafana.
Предварительные требования:
- Разрешения на управление Hashicorp Vault для включения секретных движков и выпуска токенов.
- Доступ к файлу конфигурации Grafana
-
Включите секретный движок transit в Hashicorp Vault.
-
Войдя в Grafana, включите конвертное шифрование.
-
Добавьте сведения о вашем Hashicorp Vault в файл конфигурации Grafana; в зависимости от операционной системы он обычно называется
grafana.ini:
a. Добавьте в файл конфигурации новый раздел с именем в формате[security.encryption.hashicorpvault.<KEY-NAME>], где<KEY-NAME>— любое имя, однозначно идентифицирующее этот ключ среди ключей других провайдеров.
b. Заполните раздел следующими значениями:token: периодический сервисный токен, используемый для аутентификации в Hashicorp Vault.url: URL сервера Hashicorp Vault.transit_engine_path: точка монтирования движка transit.key_ring: имя ключа шифрования.token_renewal_interval: задаёт, как часто обновлять токен; должно быть меньше значенияperiodпериодического сервисного токена.
Пример раздела провайдера Hashicorp Vault в файле
grafana.ini:# Example of Hashicorp Vault provider setup ;[security.encryption.hashicorpvault.example-encryption-key] # Token used to authenticate within Vault. We suggest to use periodic tokens: more on token types https://www.vaultproject.io/docs/concepts/tokens#service-tokens ;token = # Location of the Hashicorp Vault server ;url = http://localhost:8200 # Mount point of the transit secret engine ;transit_engine_path = transit # Key ring name ;key_ring = grafana-encryption-key # Specifies how often to check if a token needs to be renewed, should be less than a token's period value token_renewal_interval = 5m -
Обновите раздел
[security]файла конфигурацииgrafana.ini, указав новый ключ провайдера шифрования, который вы создали:[security] # previous encryption key, used for legacy alerts, decrypting existing secrets or used as default provider when external providers are not configured secret_key = AaaaAaaa # encryption provider key in the format <PROVIDER>.<KEY-NAME> encryption_provider = hashicorpvault.example-encryption-key # list of configured key providers, space separated available_encryption_providers = hashicorpvault.example-encryption-key -
(Необязательно) Из командной строки и корневого каталога Grafana Enterprise повторно зашифруйте все секреты в базе данных Grafana новым ключом с помощью следующей команды:
grafana cli admin secrets-migration re-encryptЕсли не перешифровать существующие секреты, они останутся зашифрованными прежним ключом шифрования. Пользователи по-прежнему смогут получить к ним доступ.
> Примечание: Этот процесс может занять несколько минут в зависимости от количества секретов (например, источников данных) в вашей базе данных. Во время выполнения процесса пользователи могут столкнуться с ошибками, а уведомления алертов могут не отправляться.
> Примечание: Если вы обновляете этот ключ шифрования во время первоначальной настройки Grafana, до создания каких-либо источников данных или дашбордов, этот шаг не нужен, поскольку в Grafana нет секретов для переноса.