Интерпретация секретов AWS в Terraform - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть следующий код ..

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 = {"Test":"TestPassword"}

как мне вырезать и использовать раздел TestPassword секрета дляиспользовать в качестве моего master_password?

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

Мне пришлось подделать вашу конечную точку Secrets, но эта конечная точка теста возвращает тот же самый 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
}

Так что, конечно, можно проанализировать JSON до 0,12 ......

0 голосов
/ 03 февраля 2019

Учитывая, что это JSON, вам, вероятно, нужно подождать, пока jsondecode в Terraform v0.12, чтобы решить проблему.

Функция jsondecode Github, проблема

...