使用 Vault 加密存储在 Consul 中的远程 Terraform 状态
Using Vault to encrypt remote Terraform state stored in Consul
截至目前,管理云提供商访问密钥和 ID 等秘密是 Terraform 项目中的一个未解决问题(参见 github issue)。无论何时,我们 运行 terraform plan
或 terraform apply
,这些秘密都以纯文本形式存储在 terraform 状态文件中。有很多第三方编辑和加密脚本,例如 terrahelp。
我的问题:Consul 是用于存储远程 terraform 状态的本机后端。 是否可以使用 Vault 来加密存储在 Consul 中的状态文件?我已经尝试搜索 Terraform 后端文档,但找不到任何允许 Consul 使用 Vault 的配置标志加密状态文件。
虽然我很喜欢这个功能,但遗憾的是我认为目前还不可能。如果你想加密整个状态文件,那么你需要选择另一个开箱即用的后端,比如启用了存储桶加密的 s3。
如果有一种官方方法可以连接到状态文件 read/store 程序以自行合并保管库加密(或任何其他自定义要求),那也很好,但据我所知,这也是不可能的。
小型站点注意事项:terraform plan
不向状态文件写入任何内容。这是一个只读操作,否则不能认为它可以安全使用。
截至目前,管理云提供商访问密钥和 ID 等秘密是 Terraform 项目中的一个未解决问题(参见 github issue)。无论何时,我们 运行 terraform plan
或 terraform apply
,这些秘密都以纯文本形式存储在 terraform 状态文件中。有很多第三方编辑和加密脚本,例如 terrahelp。
我的问题:Consul 是用于存储远程 terraform 状态的本机后端。 是否可以使用 Vault 来加密存储在 Consul 中的状态文件?我已经尝试搜索 Terraform 后端文档,但找不到任何允许 Consul 使用 Vault 的配置标志加密状态文件。
虽然我很喜欢这个功能,但遗憾的是我认为目前还不可能。如果你想加密整个状态文件,那么你需要选择另一个开箱即用的后端,比如启用了存储桶加密的 s3。
如果有一种官方方法可以连接到状态文件 read/store 程序以自行合并保管库加密(或任何其他自定义要求),那也很好,但据我所知,这也是不可能的。
小型站点注意事项:terraform plan
不向状态文件写入任何内容。这是一个只读操作,否则不能认为它可以安全使用。