docker - 如何使用 Hashicorp Vault 来管理我的应用程序 secret ?

标签 docker amazon-ecs hashicorp-vault

我对 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/

相关文章:

hashicorp-vault - 备份 Hashicorp Vault 服务器并使用备份构建新服务器

java - 如何使用 Spring Boot 实现 Hashicorp 的 Vault

mongodb - 命令以非零退出代码 : Error executing in Docker Container: 137 (Mongo Manager) 终止

amazon-web-services - 将 taskRoleArn 附加到 AWS Fargate 不起作用

docker - (EACCES : permission denied, mkdir '/usr/app/node_modules/.cache) 如何创建 docker-compose 文件以使 node_modules 成为非根文件夹?

docker - Spring Boot,Docker,Discovery eureka

amazon-web-services - ECS Fargate 计划任务无法连接到 ECR

c# - Audit.NET动态获取数据库凭据

docker - 如何在 docker-compose.yml 中的命令中使用 `echo` 来处理冒号 (":") 符号?

当 Docker 在同一个 Docker Compose 堆栈中运行时,它不会将日志发送到 fluentd