【发布时间】:2020-09-10 12:01:16
【问题描述】:
如何在 Terraform 中将变量的值设为机密或将其作为环境变量访问?
例如,我正在配置数据源资源,例如
resource "aws_rds_cluster" "aurora" {
cluster_identifier = var.db_cluster_identifier
database_name = var.rds_db_name
master_username = var.rds_master_username
master_password = var.rds_master_password
backup_retention_period = var.backup_retention_period
preferred_backup_window = var.preferred_backup_window
preferred_maintenance_window = var.preferred_maintenance_window
db_subnet_group_name = aws_db_subnet_group.aurora.name
#final_snapshot_identifier = var.db_snapshot_cluster_identifier
vpc_security_group_ids = [aws_security_group.allow-aurora-db.id]
skip_final_snapshot = true
# ...
}
在这里,我有一个参数,如: master_password = var.rds_master_password
我以纯文本形式获得的值存储在我的“terraform.tfvars”中,例如 rds_master_password = "myDBpwsddnn123"
我的问题是,如果我将编码值存储在“terraform.tfvars”中,有什么方法可以在我的资源文件中对其进行解码?
我使用 Bitbucket 作为我的存储库。我使用 AWS Secrets Manager 作为所有密码的集中存储库然后我的问题是如何在我的 Terraform 资源中获取环境变量,任何指针?
【问题讨论】:
-
您的问题可能很难理解。您有一个存储在 terraform.tfvars 中的值,您可以在资源文件中引用该值。如果我理解正确,您不想硬编码 terraform.tfvars 中的值,而是希望通过环境变量传递它。
标签: amazon-web-services environment-variables terraform terraform-provider-aws