加密您的数据库连接

Metabase 将您添加的各种数据库的连接信息存储在Metabase 应用数据库中。为防止恶意用户在访问应用数据库时获取这些详细信息,Metabase 可以在保存时自动使用 AES256 + SHA512 对其进行加密,并在需要时即时解密。

创建加密密钥

  1. 生成一个至少 16 个字符(越长越好!)的密钥。我们建议使用安全的随机密钥生成器,例如 openssl

    没有这个密钥,您将无法解密连接详细信息。如果您丢失(或更改)了密钥,则必须在管理员面板中重置所有使用该密钥加密的连接详细信息。

  2. 将您的密钥设置为环境变量 MB_ENCRYPTION_SECRET_KEY。在自行托管的Pro 和 Enterprise 套餐中,您也可以使用配置文件来设置。

创建和添加密钥的命令示例

  1. 您可以使用 openssl 生成一个加密安全、随机生成的 32 个字符的密钥。
    openssl rand -base64 32
    
  2. 将密钥复制到剪贴板。它应该看起来像这样
    IYqrSi5QDthvFWe4/WdAxhnra5DZC3RKx3ZSrOJDKsM=
    
  3. 将密钥设置为环境变量,然后像往常一样启动 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 值之前添加了数据库,可以通过在 **管理员设置** > **数据库** 中转到这些数据库中的每一个,然后点击 **保存** 按钮来加密连接详细信息。具有未加密详细信息的现有数据库将继续正常工作。

轮换加密密钥

  1. 建议在执行密钥轮换之前备份您的数据。
  2. 停止运行您的 Metabase 应用。
  3. 运行 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 的文档。

这有帮助吗?

感谢您的反馈!
想要改进这些文档?提出更改建议。
© . This site is unofficial and not affiliated with Metabase, Inc.