【问题标题】:Encrypt Environment variable and call it in the terraform code加密环境变量并在 terraform 代码中调用它
【发布时间】: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


【解决方案1】:

根据您可以在此处找到的 terraform 文档:https://www.terraform.io/docs/commands/environment-variables.html

将操作系统环境变量传递给您的 terraform 的最简单方法是:

首先,您需要像这样在终端中定义环境变量,您必须在变量名称中添加前缀TF_VAR_

export TF_VAR_database_secret=<my_secret>

然后在您的 terraform 代码中,您可以创建与 OS env 变量同名的 terraform 变量,但不带 TF_VAR_ 前缀。

variable "database_secret" {
    type = string
}

然后你可以像以前一样使用变量,例如var.database_secret

【讨论】:

    【解决方案2】:

    您可以通过this comprehensive guide 阅读有关处理机密的内容。

    和@severin.julien 一样,我个人觉得TF_VAR_ 很容易使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-12
      • 2018-12-11
      • 1970-01-01
      • 2018-01-17
      • 2022-08-17
      • 2021-08-08
      相关资源
      最近更新 更多