Интерпретация секретов 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 в этом случае

 secret_string = {"Test":"TestPassword"}

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


person Simon E    schedule 02.02.2019    source источник
comment
Это может быть полезно: stackoverflow.com/questions /46371424/   -  person Matt Schuchard    schedule 03.02.2019


Ответы (2)


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

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

person James Woolfenden    schedule 03.02.2019
comment
Спасибо, я что-то придумал в консоли, делая что-то подобное, но не знал, как связать их вместе, как вы. кажется немного запутанным для использования secretsmanager в TF ... но я хочу использовать этот продукт не только для своих приложений ... - person Simon E; 03.02.2019
comment
Не могу сказать, что знаю вашу проблему, поэтому не знаю, какое решение. если вы хотите получить секреты в файлах конфигурации, я бы попробовал для этого confd, consul_template или gomplate. - person James Woolfenden; 04.02.2019

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

проблема с функцией jsondecode в Github

person chenrui    schedule 02.02.2019