Интерпретация секретов AWS в Terraform

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

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 ответа

Мне пришлось подделать вашу конечную точку Secrets, но эта тестовая конечная точка возвращает тот же самый json:

Так что в тф...

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......

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

функция jsondecode Github выпуск

Другие вопросы по тегам