Шифрование соединения с базой данных¶
Glarus BI хранит информацию о подключении для различных баз данных, которые вы добавляете в базу данных приложения Glarus BI. Чтобы злоумышленники не смогли получить доступ к этим данным, если они получат доступ к базе данных приложения, Glarus BI может автоматически шифровать их с помощью AES256 + SHA512 при сохранении и расшифровывать на лету, когда они необходимы.
Создание ключа шифрования¶
- Сгенерируйте секретный ключ длиной не менее 16 символов (чем длиннее, тем лучше). Мы рекомендуем использовать безопасный генератор случайных ключей, например
openssl. !!! warning "Предупреждение" Вы не сможете расшифровать детали соединения без этого ключа. Если вы потеряете (или измените) ключ, вам придется сбросить все детали подключения, которые были зашифрованы с этим ключом в "Управлении". - Установите секретный ключ как переменную окружения
MB_ENCRYPTION_SECRET_KEY.
Примеры команд для создания и добавления ключа¶
- Можно использовать
openssl, чтобы сгенерировать криптографически стойкий случайный 32‑символьный ключ: - Скопируйте ключ. Он будет выглядеть примерно так:
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, вы можете зашифровать учётные данные подключения, открыв каждую из этих баз данных в Управление > Базы данных и нажав кнопку Сохранить. Существующие базы данных с незашифрованными данными продолжат нормально работать.
Ротация ключа шифрования¶
Мы рекомендуем сделать резервную копию ваших данных перед ротацией ключа.
- Остановите приложение Glarus BI.
- Запустите 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
Отключение ключа шифрования¶
Чтобы отключить ключ шифрования, выполните шаги для ротации ключа шифрования, но используйте пустую строку ("") как новый ключ.