Шифрование секретов базы данных с помощью Azure Key Vault
Вы можете использовать ключ шифрования из Azure Key Vault для шифрования секретов в базе данных Grafana.
Предварительные требования:
- Аккаунт Azure с разрешением на просмотр и создание ключей Key Vault и программными учётными данными для доступа к этим ключам
- Доступ к файлу конфигурации Grafana
-
Создайте ключ в Key Vault с нужным вам именем, указав RSA в качестве типа и
2048в качестве размера, с разрешениями на шифрование и расшифровку. -
Зарегистрируйте приложение и сгенерируйте для него секрет клиента.
-
Назначьте политику доступа Key Vault для созданного вами хранилища ключей:
-
В разделе Key Permissions задайте разрешения на шифрование и расшифровку и нажмите Save.
-
Войдя в Grafana, включите конвертное шифрование.
-
Добавьте сведения о вашем Azure Key Vault в файл конфигурации Grafana; в зависимости от операционной системы он обычно называется
grafana.ini:
a. Добавьте в файл конфигурации новый раздел с именем в формате[security.encryption.azurekv.<KEY-NAME>], где<KEY-NAME>— любое имя, однозначно идентифицирующее этот ключ среди ключей других провайдеров.
b. Заполните раздел следующими значениями:tenant_id: Directory ID (tenant) зарегистрированного вами приложения.client_id: Application ID (client) зарегистрированного вами приложения.client_secret: значение (VALUE) секрета, сгенерированного в вашем приложении. (Не используйте Secret ID.)key_id: имя ключа, созданного вами в хранилище ключей.vault_uri: URL вашего хранилища ключей.
Пример раздела провайдера Azure Key Vault в файле
grafana.ini:# Azure Key Vault provider setup ;[security.encryption.azurekv.example-encryption-key] # Azure Application directory ID (tenant) tenant_id = 1234abcd-12ab-34cd-56ef-1234567890ab # Azure Application application ID (client). client_id = 1356dfgh-12ab-34cd-56ef-3322114455cc # Azure Application client secret. client_secret = FbE4X~4Jq45ERKxx823Aheb9plBjQqHHe81Sc # Azure Key Vault key name. key_id = mysecretkey # Azure Key Vault uri. vault_uri = https://my-vault-name.vault.azure.net -
Обновите раздел
[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 = azurekv.example-encryption-key # list of configured key providers, space separated available_encryption_providers = azurekv.example-encryption-key -
(Необязательно) Из командной строки и корневого каталога Grafana Enterprise повторно зашифруйте все секреты в базе данных Grafana новым ключом с помощью следующей команды:
grafana cli admin secrets-migration re-encryptЕсли не перешифровать существующие секреты, они останутся зашифрованными прежним ключом шифрования. Пользователи по-прежнему смогут получить к ним доступ.
> Примечание: Этот процесс может занять несколько минут в зависимости от количества секретов (например, источников данных) в вашей базе данных. Во время выполнения процесса пользователи могут столкнуться с ошибками, а уведомления алертов могут не отправляться.
> Примечание: Если вы обновляете этот ключ шифрования во время первоначальной настройки Grafana, до создания каких-либо источников данных или дашбордов, этот шаг не нужен, поскольку в Grafana нет секретов для переноса.