加密您的資料庫連線
Metabase 會儲存您在 Metabase 應用程式資料庫中新增之各種資料庫的連線資訊。為防止惡意人士在取得應用程式資料庫的存取權後,能夠存取這些詳細資訊,Metabase 可以自動使用 AES256 + SHA512 加密這些資訊,並在需要時即時解密。
建立加密金鑰
- 產生至少 16 個字元的密碼金鑰 (愈長愈好!)。我們建議使用安全的隨機金鑰產生器,例如
openssl
。沒有此金鑰,您就無法解密連線詳細資訊。如果您遺失 (或變更) 金鑰,您必須在管理面板中重設所有已使用該金鑰加密的連線詳細資訊。
- 將您的密碼金鑰設定為環境變數
MB_ENCRYPTION_SECRET_KEY
。在自行託管的 Pro 和 Enterprise 方案方案中,您也可以使用組態檔設定此變數。
建立和新增金鑰的範例命令
- 您可以使用
openssl
產生密碼編譯安全、隨機產生的 32 個字元金鑰。openssl rand -base64 32
- 將金鑰複製到您的剪貼簿。它看起來應該像這樣
IYqrSi5QDthvFWe4/WdAxhnra5DZC3RKx3ZSrOJDKsM=
- 將金鑰設定為環境變數,並如常啟動 Metabase。
MB_ENCRYPTION_SECRET_KEY="IYqrSi5QDthvFWe4/WdAxhnra5DZC3RKx3ZSrOJDKsM=" java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar
一旦您設定 MB_ENCRYPTION_SECRET_KEY
值,Metabase 將自動加密並儲存您新增之每個新資料庫的連線詳細資訊。若要加密現有的連線,請參閱下一節。
加密現有連線
如果您在設定 MB_ENCRYPTION_SECRET_KEY
值之前新增了資料庫,您可以前往管理設定 > 資料庫中的每個資料庫,然後按一下儲存按鈕,以加密連線詳細資訊。具有未加密詳細資訊的現有資料庫將繼續正常運作。
輪替加密金鑰
- 我們建議您在執行金鑰輪替之前,先備份您的資料。
- 停止執行您的 Metabase 應用程式。
- 執行 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 ""
閱讀其他Metabase 版本的文件。