terraform在状态文件中存储敏感数据



我使用敏感性为true的变量,尽管状态文件存储id和密码。有什么办法避免吗?

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

In状态文件,

"master_password": 'password'

即使手动从状态中取出,也会在每次应用中返回。

没有" easy ";这是避免的方法。您必须简单地而不是硬编码您的TF文件中的值。正如你注意到的那样,设置sensitive = true不能防止以明文形式保存秘密。

在TF中正确处理秘密的一般方法是:

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

最新更新