如何使用Hashicorp Vault来管理我的应用程序机密?

时间:2017-05-18 03:07:45

标签: docker amazon-ecs hashicorp-vault

我对Hashicorp Vault的产品感到非常兴奋,但是我无法理解它是如何融入我们现有的架构中的。毫无疑问,需要在每次部署时手动启动保险库对安全性有很大好处,但是当Vault最初被密封时,应用程序是如何做出反应的?

例如,如果应用程序A依赖于Vault生成的数据库凭据以进行初始化,那么在Vault被密封时,该应用程序如何在部署时做出反应?在检查密封状态时旋转等待?

此外,其他人如何在生产中使用某些秘密预先填充Vault?例如,我们有一个身份验证服务器,它依赖于在启动时必须从Vault获取的单个一致系统密钥。如何在部署Vault后安全地确保此秘密可用?

为了记录,我们使用docker-composeecs compose部署Vault以及其他一些服务进行部署。

1 个答案:

答案 0 :(得分:3)

没有必要在部署之间密封您的保险库。 Vault需要一个未密封的保险库来续订租约,阅读机密,创建凭证等。保险库在正常使用期间通过身份验证和授权进行保护。

当检测到重大入侵时,您应该密封您的保管库。密封保险库有助于通过丢弃重建的主密钥来最小化损害。这可以防止Vault在风险得到缓解之前运行。密封不会撤消Vault发布的凭据。

您还询问了有关导入预先存在的机密信息以及如何在部署Vault后安全地确保此机密可用?":

您应该为已存在的机密发出写入命令,以便在启用保管库后导入它们。您可以通过阅读来安全地确保该秘密存在。使用CLI或API时,读写操作通常是安全的。

$ vault write secret/single-consistent-system-secret value=secret-stuff
Success! Data written to: secret/single-consistent-system-secret

$ vault read secret/single-consistent-system-secret
Key             Value
lease_duration  2592000
value           secret-stuff