Перейти к содержанию

Шифрование соединения с базой данных

Glarus BI хранит информацию о подключении для различных баз данных, которые вы добавляете в базу данных приложения Glarus BI. Чтобы злоумышленники не смогли получить доступ к этим данным, если они получат доступ к базе данных приложения, Glarus BI может автоматически шифровать их с помощью AES256 + SHA512 при сохранении и расшифровывать на лету, когда они необходимы.

Создание ключа шифрования

  1. Сгенерируйте секретный ключ длиной не менее 16 символов (чем длиннее, тем лучше). Мы рекомендуем использовать безопасный генератор случайных ключей, например openssl. !!! warning "Предупреждение" Вы не сможете расшифровать детали соединения без этого ключа. Если вы потеряете (или измените) ключ, вам придется сбросить все детали подключения, которые были зашифрованы с этим ключом в "Управлении".
  2. Установите секретный ключ как переменную окружения MB_ENCRYPTION_SECRET_KEY.

Примеры команд для создания и добавления ключа

  1. Можно использовать openssl, чтобы сгенерировать криптографически стойкий случайный 32‑символьный ключ:
    openssl rand -base64 32
    
  2. Скопируйте ключ. Он будет выглядеть примерно так:

IYqrSi5QDthvFWe4/WdAxhnra5DZC3RKx3ZSrOJDKsM=
3. Установите ключ как переменную окружения и запустите Glarus BI как обычно:
MB_ENCRYPTION_SECRET_KEY="IYqrSi5QDthvFWe4/WdAxhnra5DZC3RKx3ZSrOJDKsM=" java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar

После того как вы зададите MB_ENCRYPTION_SECRET_KEY, Glarus BI будет автоматически шифровать и хранить учётные данные подключения для каждой новой базы данных, которую вы добавите. Чтобы зашифровать уже существующие подключения, см. следующий раздел.

Шифрование существующего соединения

Если вы добавили базы данных до того, как задали MB_ENCRYPTION_SECRET_KEY, вы можете зашифровать учётные данные подключения, открыв каждую из этих баз данных в Управление > Базы данных и нажав кнопку Сохранить. Существующие базы данных с незашифрованными данными продолжат нормально работать.

Ротация ключа шифрования

Мы рекомендуем сделать резервную копию ваших данных перед ротацией ключа.

  1. Остановите приложение Glarus BI.
  2. Запустите CLI‑команду rotate-encryption-key.
    • Установите текущий ключ шифрования как MB_ENCRYPTION_SECRET_KEY.
    • Передайте новый ключ шифрования как параметр.

Пример команды для ротации ключа

MB_ENCRYPTION_SECRET_KEY=your-current-key java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar rotate-encryption-key new-key

Отключение ключа шифрования

Чтобы отключить ключ шифрования, выполните шаги для ротации ключа шифрования, но используйте пустую строку ("") как новый ключ.

Пример команды для отключения ключа

MB_ENCRYPTION_SECRET_KEY="your-current-key" java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar rotate-encryption-key ""