在哪里存储devops的凭据?

时间:2016-10-29 01:25:24

标签: ssl-certificate credentials ssh-keys devops

我们有代码(在git中)以及配置/部署/构建脚本(fabfile.py,circle.yml,Dockerfile等),这导致了一个非常无缝的自动构建/部署过程。不可无缝的一部分是存储各种凭证的地方。这些是像ssh密钥,代码签名证书,aws访问密钥,ssl证书......目前的过程是从闪存驱动器复制所需的密钥/证书,然后(例如)运行结构。

似乎在git中存储这样的凭据(以及代码)并不是最好的地方,但 最好的地方是什么?是否有建议的最佳做法,为devops存储这样的信息?是否有参考文献讨论不同的选项及其优缺点?

3 个答案:

答案 0 :(得分:2)

秘密管理的问题仍然是使用任何工具都没有完全“解决”的问题。

您可以使用各种秘密管理工具(每种工具都提供不同类型的优势/集成)。

我个人更喜欢Hashicorp Vault。 Cyber​​ark是另一个好人。

然而,在解决方案中使用这些工具的方式有一些常见的使用模式。

1)您可以将密码存储在SCM的代码中,如果它们是加密的......但是这仍然会导致同样的问题,您仍然需要在部署时安全地传递秘密(或者在启动时可用)能够解密已部署的秘密(密码,凭证,秘密,证书)。这就是Secrets Management Tool(这样的Vault)的用武之地。该工具将允许您安全地检索您的秘密,以便在需要时解密秘密。

2)如上所述的另一种方式是。实际上是在秘密管理工具本身中存储SCM之外的所有机密,证书等,并在部署/启动时检索它们。

显然,以任何一种方式做事都有利有弊。即第一种方法降低了复杂性,因为您在任何给定时间只管理一个或两个秘密。另一方面,如果您将所有机密存储在保险库中,则与整个生态系统相关的妥协可能性会降低,因为访问单个机密不允许某人访问其他所有机密。

在一天结束时,这一切都归结为您的用例/可用的安全结构,当然还有您周围的人。因为在一天结束时,某个人,某个地方需要知道一个秘密......

答案 1 :(得分:1)

是。有一个建议。这是Cloud Vault的用法。看看一些很好的例子:

https://www.hashicorp.com/blog/vault.html

https://blog.keepersecurity.com/2016/08/16/keeper-for-devops-more-than-just-passwords/

答案 2 :(得分:0)

在凭据方面使用适当的安全性是一种最佳实践。因为它可能导致Web Hack和其他潜在的公司损失。

使用“保险柜类型”的最佳方法。