amazon-web-services - terraform 将敏感数据存储在状态文件中

标签 amazon-web-services terraform terraform-provider-aws

尽管状态文件存储了 ID 和密码,但我正在使用敏感度为 true 的变量。有什么办法可以避免吗?

variable "rs_master_pass" {
  type = string
  sensitive = true
}

在状态文件中,

 "master_password": 'password'

尽管如此,手动从状态中取出,每次应用都会返回。

最佳答案

没有“简单”的方法可以避免这种情况。您必须不硬编码 TF 文件中的值。正如您所注意到的,设置 sensitive = true 并不能防止以纯文本形式提供 secret 。

TF中正确处理 secret 的一般方法是:

  • 使用专用的外部保管库,例如 Terraform Vault、AWS Parameter Store 或 AWS Secret Manger。它们必须单独设置,以免 TF 状态文件中没有可用的 secret 。
  • 使用local-exec设置TF之外的 secret 。无论您在 local-exec 中执行什么操作,都不会存储在 TF 状态文件中。这样做通常是为了将 TF 代码中可能需要的虚拟 secret (例如 RDS 密码)更改为 TF 知识之外的实际值。
  • 如果上述解决方案无法访问,那么您必须保护您的状态文件(无论如何,这是一个很好的做法)。这通常是通过在严格的访问策略下将其远程存储在 S3 中来完成的。

关于amazon-web-services - terraform 将敏感数据存储在状态文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69671396/

相关文章:

Kubernetes 等效于 Terraform 模块和变量

amazon-web-services - 使用 terraform aws_acm_certificate_validation 时缺少 DNS 验证记录

amazon-web-services - AWS Batch 无法启动 Dockerfile -standard_init_linux.go :219: exec user process caused: exec format error

.htaccess - AWS负载均衡器: 503 (Service Unavailable: Back-end server is at capacity)

terraform - 如何通过 terraform 检索 Azure 规模集的 VM 专用 IP 地址?

azure - 使用 Terraform 部署 Azure Key Vault + Windows VM

amazon-web-services - 当不同用户付费时,管理AWS账户的正确方法是什么?

git - CodeCommit 错误 Elastic Beanstalk (AWS)

amazon-web-services - terraform 中详细给出的消息的含义是什么?

terraform - Cloudformation 设计器能否为未使用 CFT 启动的资源生成可视化效果