在我们的商店中,我们将测试和生产资源的凭证存储在安全的保管库中,并且我们的CI / CD管道管理检索,并在运行时提供应用程序对这些凭证的访问权限。这很好。
但是,无法从本地开发工作站访问保管库机制,这使对开发数据库的凭证管理变得很麻烦。
已提出各种机制:1.为每个开发人员提供基于其特定凭据的数据库访问权限
这里的关注点是应用程序不属于特定团队,因此任何不熟悉代码库的人都需要请求数据库访问权限。
建议的一种共享方法是将共享凭据作为特定于环境的配置签入代码存储库。如果这些凭据具有有限的访问权限(开发数据库,读取,写入权限),并且数据与真实数据无关,则风险较低。 (我们还有内部部署的代码存储库,无法公开访问)另一个方法是将凭据以纯文本格式存储在安全的位置。但这要求开发人员在每次获取代码的本地副本时都要找到证书,这也带来了将应用程序的文件设置无意中签入代码存储库的风险。 (请参见上文)
其他人正在做什么来解决这个问题?
我已经完成的几个替代选择。
让所有人使用本地数据库-了解这可能不可行,具体取决于您的方案。 DEV可以从备份(从测试环境中获取)或(对于新项目/新建项目)还原本地数据库,也可以使用本地容器化数据库,其中所有DDL和配置数据都是通过数据库迁移框架创建的-后者就是我们在工作场所中做(我们使用SQL Server和DbUp作为迁移框架)。注意:我们不会在数据库中植入测试数据,但这是您也可以研究的内容...
使用git-crypt(或类似名称)对git存储库中的特定文件进行透明加密和解密,例如包含数据库密码的配置文件。