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