安全地存储客户端数据库详细信息

Securely store client database details

我正在添加将数据从我们的数据库定期导出到客户数据库的功能。客户将提供我们需要确保安全的数据库详细信息。安全存储连接详细信息的最佳方式是什么,理想情况下它们将存储在我们的主 mysql 数据库中。我绝对想避免以明文形式存储密码。

目前我最好的猜测是在代码库中使用硬编码密钥进行某种形式的加密,但这并不比明文好多少。

我们决定用于保护客户端数据库密码的解决方案:

  • 在 aws 参数存储中创建和存储加密密钥
  • 将密码添加到 mysql 数据库时,从 awsps 检索密钥,加密密码并存储
  • 当连接到远程客户端数据库时,从awsps检索密钥,解密密码,使用
  • 对于本地环境,要么使用存储在 awsps 上的密钥(如果这样做没有任何缺点),要么检查环境并回退到存储在 .ini 文件中的本地密钥值