我对 Hashicorp Vault 的产品感到非常兴奋,但我无法理解它如何适应我们目前的架构。毫无疑问,每次部署都需要手动解封 Vault 对安全性有很大好处,但是当 Vault 最初被密封时,应用程序将如何 react ?
例如,如果应用程序 A 依赖 Vault 生成的数据库凭据进行初始化,那么在 Vault 密封的情况下部署该应用程序时,该应用程序将如何 react ?检查密封状态时旋转等待?
此外,其他人如何在生产中使用某些 secret 预先填充 Vault?例如,我们有一个身份验证服务器,它依赖于一个一致的系统 secret ,它必须在启动时从 Vault 获取。部署 Vault 后,如何安全地确保此 secret 可用?
作为记录,我们正在使用 docker-compose
将 Vault 与其他一些服务一起部署。和 ecs compose
用于部署。
最佳答案
没有必要在部署之间密封您的保管库。保险库需要一个未密封的保险库来更新租约、读取 secret 、创建凭据等。保险库在正常使用期间通过身份验证和授权进行保护。
当检测到重大入侵时,您应该密封您的保险库。通过丢弃重建的主 key ,密封保险库有助于最大限度地减少损坏。这会阻止 Vault 运行,直到风险得到缓解。密封不会撤销由 Vault 颁发的凭据。
您还询问了导入预先存在的 secret 以及如何“安全地确保在部署 Vault 后此 secret 可用?”:
您应该为预先存在的 secret 发出写入命令,以便在 Vault 解封后导入它们。您可以通过阅读来安全地确保该 secret 的存在。使用 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
关于docker - 如何使用 Hashicorp Vault 来管理我的应用程序 secret ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44037955/