在Terraform解释AWS秘密

问题描述 投票:2回答:2

我有以下代码..

data "aws_secretsmanager_secret" "db_password" {
name = "${var.db_secret}" 
}

data "aws_secretsmanager_secret_version" "db_password" { 
secret_id = "${data.aws_secretsmanager_secret.db_password.id}" 
}


master_password = "${data.aws_secretsmanager_secret_version.db_password.secret_string}"

它返回secret_string在这种情况下

 secret_string = {"Test":"TestPassword"}

我如何切出并使用的秘密TestPassword部分用作我的MASTER_PASSWORD?

amazon-web-services terraform hcl
2个回答
1
投票

考虑到这是JSON,你可能需要等待jsondecode在Terraform v0.12来解决这个问题。

jsondecode function Github issue


1
投票

我只好假装你的秘密点,但此试验终点返回相同的JSON:

因此,在TF ...

data "external" "secret_string" {
  program = ["curl", "http://echo.jsontest.com/Test/Testpassword"]
}

output "json_data_key" {
  value = "${data.external.secret_string.result}"
}

output "PASSWORD" {
  value = "${lookup(data.external.secret_string.result, "Test")}"
}

去年输出你是什么之后?

${lookup(data.external.secret_string.result, "Test")}

它给你:

data.external.secret_string: Refreshing state...

Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

Outputs:

PASSWORD = Testpassword
json_data_key = {
  Test = Testpassword
}

所以它肯定是可能的0.12之前解析JSON ......

© www.soinside.com 2019 - 2024. All rights reserved.