在节点自动部署中保护数据库凭据

在节点自动部署中保护数据库凭据

在部署节点(例如 amazon ec2)的情况下,建议的最佳实践是什么,以确保其他资源的凭证等安全?如果不解决规模问题,我们可能会手动将密码输入配置文件中,将 ssh 密钥放到位等。

当我们尝试通过构建脚本和/或工具引入自动化来启动新的 ec2 节点等来解决规模问题时,我们会遇到各种各样的麻烦(不可否认,有些可能是不必要的)。

以下是我们的优先事项

  • 自动部署新节点(需要 ssh 密钥)
  • 应用程序代码的自动部署(利用数据库凭证等)
  • 不在修订控制中存储任何凭证(我不相信修订控制的安全性)
  • 尽可能少的人有生产凭证,即使是开发人员(他们有自己的访问资源的凭证)

我特别提到了数据库凭证,但从修订控制到 ssh 密钥的任何内容的凭证都是相关的。

我们想出了一些解决方案,每个方案都有各自的优缺点,但我想这个问题肯定已经被很多人解决了。我们是不是想太多了?

如果相关的话,这里有一些关于我们的环境和工具的信息

  • Linux的
  • 卡皮斯特拉诺
  • 木偶
  • Java、Ruby、PHP
  • Atlassian 的 bamboo
  • ssh 密钥
  • mysql、postgres、activemq

答案1

如果您正在寻找一种无需用户交互的安全方法来存储这些数据(加密?):没有!

答案2

您可以使用标准化的 EC2 映像来部署每个节点。然后,您可以使用 bash 登录并更改所有密码,然后将其保存在某个地方。

相关内容