如何在 terraform 中加密密码或敏感数据?

How to encrypt password or sensitive data in terraform?

我想为其 in aws 创建 rds 实例和整个所需的基础设施。我无法理解 Terraform 的安全部分。我想至少加密 .tfstate 中的敏感数据。例如:password/username 用于 rds 实例等。存储 .tfstate 敏感数据的最佳方式是什么?如果不支持那么请建议其他方法来做到这一点?谢谢。

使用 AWS 提供商作为示例。

建议将.tfstate文件保存到s3 bucket中,并在上面设置策略,只有提名角色才有权限访问这个bucket和相关的kms key

terraform {
  required_version = "~> 0.10"

  backend "s3" {
    bucket  = "<global_unique_bucket_name>"
    key     = "development/vpc.tfstate"
    region  = "ap-southeast-2"
    kms_key_id = "alias/terraform"
    encrypt = true
  }
}

始终在该 s3 存储桶上启用 version control