当您在DevOps实践中越来越快地前进时,就会遇到一个小问题。在系统安全、管理和更新方面,这个问题可能会让你付出很大代价。应用程序参数/配置;这些实际上决定了我们的应用程序如何运行。它跨越数据库连接,以登录RabbitMQ凭据和其他秘密凭据。作为一种安全实践,在将代码提交给VCS(版本控制系统)时,您不希望这些凭据在您的代码库中可见。保护这些凭证的方法之一是使用可以注入到特定环境中的环境变量,您需要这些秘密和配置,而不是使用值本身。还需要有一个地方,这些数据需要存储的安全保管,并在可能的情况下加密存储的地方。
我们将看到DevOps工程师使用的这3个秘密存储解决方案。这些方法各有利弊,我们将用以下标准来分析它们:
- 成本。
- 安全
- API / SDK集成
- 功能
成本
AWS Secrets Manager
这是一个由AWS管理的服务,根据AWS的定价,这项服务每个秘密每月花费0.40美元,每10,000个API调用花费0.05美元。出于上下文目的,如果您存储了100个秘密(密码、API密匙等),则每月支付40美元;如果您在一个月内通过40000个API调用请求该秘密的值,则每月支付0.2美元。更多的在这里
Hashipcorp’s Vault
这是一个开源工具。这意味着你负责设置和扩展服务。您将需要在虚拟机上进行设置,您使用的VM将确定更新所涉及的成本和其他操作成本,从而保护安装和配置Vault的服务器。
AWS Parameter Store
它仍然是AWS上的托管服务,但这次是在一个名为Systems Manager的特性下。基本上是免费的。你刚才看到了吗?是的,我的意思是不花钱。在这里看到的
安全
AWS Secrets Manager
机密管理器是一项全新的服务,它完全由AWS管理,其中存储的证书的安全性与AWS帐户上的IAM访问绑定在一起。您还可以将secret Manager与AWS KMS集成。这有助于加密存储的数据。secret Manager还提供了一个秘密旋转功能,允许您自动旋转API密钥、密码等。这可以配置和连接一个Lambda函数来帮助旋转。
Hashipcorp’s Vault
与vault应用程序的安全性有关的所有事情都完全由用户负责。Vault将密码存储在安装它的机器中,并对数据进行加密。支持多种后台存储;文件系统,AWS S3, Azure,谷歌云存储,MongoDB。更多的在这里
这里的秘密旋转特性(https://www.vaultproject.io/docs/internals/rot.html)
AWS Parameter Store
就像secret Manager一样,安全是与AWS中的IAM帐户绑定的。所有请求都是通过API或CLI发出的。这两个密钥都是从控制台生成并使用的。没有任何类型的秘密旋转特性,除非您想自定义一个。
API / SDK集成
在这里,它们都有api和sdk来检索存储的密钥。所以他们都通过了
一般特征
AWS Secrets Manager
- -在AWS上安全储存机密
- -允许对通过KMS存储的密钥进行加密
- -键旋转可以配置在一个特定的周期
- -权限管理(IAM)
Hashipcorp’s Vault
- -在文件系统或数据库中存储秘密
- -加密即服务
- -权限管理
AWS Parameter Store
- -在AWS上安全储存机密
- -允许对通过KMS存储的密钥进行加密
- -权限管理(IAM)
基于这些特性。你可以选择你可以用来存储和检索你的秘密。但重要的是要有一个库来存储密码、API密钥和连接字符串。