在部署节点(例如 amazon ec2)的情况下,建议的最佳实践是什么,以确保其他资源的凭证等安全?如果不解决规模问题,我们可能会手动将密码输入配置文件中,将 ssh 密钥放到位等。
当我们尝试通过构建脚本和/或工具引入自动化来启动新的 ec2 节点等来解决规模问题时,我们会遇到各种各样的麻烦(不可否认,有些可能是不必要的)。
以下是我们的优先事项
- 自动部署新节点(需要 ssh 密钥)
- 应用程序代码的自动部署(利用数据库凭证等)
- 不在修订控制中存储任何凭证(我不相信修订控制的安全性)
- 尽可能少的人有生产凭证,即使是开发人员(他们有自己的访问资源的凭证)
我特别提到了数据库凭证,但从修订控制到 ssh 密钥的任何内容的凭证都是相关的。
我们想出了一些解决方案,每个方案都有各自的优缺点,但我想这个问题肯定已经被很多人解决了。我们是不是想太多了?
如果相关的话,这里有一些关于我们的环境和工具的信息
- Linux的
- 卡皮斯特拉诺
- 木偶
- Java、Ruby、PHP
- Atlassian 的 bamboo
- ssh 密钥
- mysql、postgres、activemq
答案1
如果您正在寻找一种无需用户交互的安全方法来存储这些数据(加密?):没有!
答案2
您可以使用标准化的 EC2 映像来部署每个节点。然后,您可以使用 bash 登录并更改所有密码,然后将其保存在某个地方。