terraform - Vault 架构 - 多种环境
问题描述
我目前正在考虑如何在多个环境中正确部署 Vault:开发、登台和生产。每个环境都有自己的集群。这里有多种选择:
- 一个全局保管库(Vault Cloud)
- 每个环境一个保管库(在集群中运行)
- 每个环境一个全局保管库(Vault Cloud)和一个保管库(在集群中运行)
许多人建议每个环境有一个保管库。但是,特定于该环境的外部资源(S3、DB、...)呢?如果我们使用 terraform 销毁/重新创建集群,我们将丢失机密,而我们没有销毁外部资源,因此我不确定存储凭据的正确位置。以下是一些用例:
- Stripe API 凭证(由多个 env 共享的秘密):如果由 staging 和 prod 共享,例如,我猜它应该在全局 Vault 中?也许它应该从全局“同步”到本地?
- MySQL as a Service 用户凭据(外部机密):如果我们将凭据存储在环境保险库中,每次重建集群时都会丢失凭据,而 MySQL as a service 对集群来说是“外部的”。但也许这是我们应该期待的?
- Redis 操作员 K8S(本地密钥):由于服务仅存在于环境集群中,我猜凭据应该坚持环境保险库
- Dev S3 存储桶(外部机密):与 MySQL 数据库相同,如果我们将凭据存储在 Dev 集群中,那么每次使用 terraform 部署时都会丢失凭据。也许我们应该期待这个或存储在全球保险库中?
我没有找到关于这个主题的文档。你有什么建议?
谢谢
解决方案
推荐阅读
- npm - 已解决:`gatsby develop` 产生错误:EISDIR:对目录的非法操作,读取 .cache 文件夹上的链接
- java - 如何修复从 Excel 输入到网页的数据
- scala - 如何传递命令行参数scala
- flutter - 底部导航中的对齐小部件覆盖正文
- c++ - OR 执行所有评估的语句
- sql-server - SQL Server 性能 <>,不在,在
- vue.js - 如果元素是动态的,如何设置 v-model?
- java - org.hibernate.id.IdentifierGenerationException:尝试从空的一对一属性分配 id,同时保存主子记录
- javascript - 尽可能以最简单和最简洁的方式
- java - 用可序列化函数包装不可序列化类型