我对Hashicorp Vault的产品感到非常兴奋,但是我很难确定它是否适合我们当前的体系结构.毫无疑问,每次部署时都需要手动打开保管库,这极大地提高了安全性,但是当保管库最初被密封时,应用程序将如何做出反应?
例如,如果应用程序A依赖于Vault生成的数据库凭证才能初始化,那么在Vault被密封的情况下部署该应用程序意味着如何反应?检查密封状态时是否等待旋转?
此外,其他人如何在生产中使用某些秘密预填充Vault?例如,我们有一个身份验证服务器,它依赖于一个一致的系统密码,该密码必须在启动时从Vault中获取.部署保险柜后,如何安全地确保此机密可用?
作为记录,我们正在使用docker-compose和ecs compose部署Vault和其他服务.
最佳答案
无需在部署之间密封您的保管库.保管箱需要未密封的保管库来更新租约,读取机密,创建凭据等.在正常使用期间,保管库通过身份验证和授权来保护.
当检测到重大入侵时,应密封您的库.密封金库可以通过丢弃重建的主密钥来最大程度地减少损坏.这样可以防止保险柜在风险减轻之前运行. Sealing不会撤销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