向数据添加变量

Add variable to data

我正在尝试将数据与变量 (Terraform v0.12.0) 连接起来:

variable "my_var" {
    default = "secret_string"
}

auth_token = data.external.get_secret.result.var.my_var 

它适用于以下情况:

auth_token = data.external.get_secret.result.secret_string

如我所见,我无法向数据添加变量。对于这种情况,我们有任何解决方法吗?谢谢

不是很清楚你需要什么。让我猜猜。

你可以有不同的端点来保存你的秘密,比如hashicorp vault、aws ssm、aws secret managers,通过这些方式,你可以避免直接在源代码中保存秘密。

这里我使用 aws ssm for an example 来说明如何通过变量引用秘密。

假设您在aws中设置了SSM密钥my_var

variable "my_var" {
    default = "my_var"
}


data "aws_ssm_parameter" "read" {
  name  = "${var.my_var}"
}

所以现在你可以轻松引用它了

auth_token             = "${aws_ssm_parameter.read.value}"

Note: The unencrypted value of a SecureString will be stored in the raw state as plain-text.

Note: The data source is currently following the behavior of the SSM API to return a string value, regardless of parameter type. For type StringList, we can use the built-in split() function to get values in a list. Example: split(",", data.aws_ssm_parameter.subnets.value)