我们有代码(在git中)以及配置/部署/构建脚本(fabfile.py、circle.yml、Dockerfile等),这将导致一个非常无缝的自动构建/部署过程。其中一个不无缝的部分是在哪里存储各种凭证。例如ssh密钥,代码签名证书,aws访问密钥,ssl证书.目前的过程是复制所需的密钥/证书从一个闪存驱动器,然后(例如)运行织物。
在git中存储这样的凭据(与代码一起存储)似乎不是最好的地方,但是最好的地方是什么呢?是否有推荐的最佳做法来存储这样的信息给devops?是否有参考资料,讨论不同的选择及其利弊?
发布于 2018-02-06 05:26:45
秘密管理的问题仍然没有被任何工具的使用完全“解决”。
您可以使用任何不同的秘密管理工具(每个工具提供不同类型的好处/集成)。
我个人更喜欢Hashicorp Vault。赛博方舟是另一个好的。
然而,在解决方案中使用这些工具的方式有一些常见的使用模式。
1)如果密码是加密的,你可以把你的秘密存储在你的单片机中.但是,这仍然会导致同样的问题,您仍然需要在部署时安全地传递一个秘密(或者在启动时让它可用),以便能够解密已部署的机密(密码、凭据、机密、证书)。这就是秘密管理工具(例如一个地下室)出现的地方。该工具将允许您安全地检索您的秘密,以便在需要时用于解密机密。
2)前面提到的另一种方式是。实际上是将所有秘密、证书等存储在SCM之外的秘密管理工具本身中,并在部署/启动时检索它们。
显然,无论采取哪种方式,做事情都有其利弊。也就是说,第一种方法降低了复杂性,因为您在任何给定时间只管理一个或两个秘密。另一方面,如果你把所有的秘密都储存在一个金库里,那么与你整个生态系统相关的妥协的可能性就会减少,因为获取一个秘密并不允许一个人访问所有其他的秘密。
最后,这一切都取决于您的用例/可用的安全结构,当然还有您周围的人。因为在一天结束的时候,某个地方需要知道一个秘密.
发布于 2016-10-29 03:42:06
发布于 2018-11-23 08:27:57
当涉及到凭据时,使用适当的安全性是一种最佳实践。因为它会导致网络黑客和其他潜在的公司损失。
最好的方法是使用某种类型的Vault。
https://stackoverflow.com/questions/40315155
复制相似问题