我需要将我的数据库密码存储在我的生产环境中以访问数据库。目前,产品系统部署在云中,数据库也是如此。密码、用户名和其他一些敏感信息在生产机器上以纯文本形式存储为环境变量。
环顾四周,我发现大多数解决方案都是关于限制对这些敏感数据的访问(通过将它们存储在仅授予系统管理员访问权限的文件中)以及对数据库本身的访问(通过限制仅对固定 IP 的访问)。
不幸的是,在这种情况下,它们都不可能有几个原因:托管系统的服务不允许我们拥有 IP(所以我不能将数据库设置为只能由一个 IP 访问)并且数据库凭据必须保留出于部署原因在环境变量中。
另一方面,数据库实际上并不包含敏感数据,更一般地说,目前我们最担心的是没有内部人员通过生产数据库并造成损害,而不是外部黑客攻击。
所以我的问题是:在这种情况下,什么是“相当安全的解决方案”?
加密数据库的密码然后将解密密钥存储在使用此过程加密的 GitHub 上上传的配置文件中是否是一种安全的解决方案(尽管它看起来有点过时)?
我认为这是一个非常直接且受欢迎的话题,但显然我错了,因为看起来像“TODO-list”这样的答案并不多。