【问题标题】:Interpreting aws secrets in Terraform在 Terraform 中解释 aws 机密
【发布时间】:2019-06-27 01:51:06
【问题描述】:

我有以下代码..

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 部分作为我的主密码?

【问题讨论】:

标签: amazon-web-services terraform hcl


【解决方案1】:

我不得不伪造你的 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
}

所以0.12之前解析json肯定是可以的......

【讨论】:

  • 谢谢,我在控制台中做了类似的事情,但不知道如何像你一样将它们链接在一起。在 TF 中使用 secretsmanager 似乎有点混乱。但我希望能够利用这个产品来解决我的应用程序之外的问题......
  • 不能说我知道你的问题,所以我不知道解决方案是什么。如果您想在配置文件中获取秘密,那么我会尝试 confd、consul_template 或 gomplate。
【解决方案2】:

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

jsondecode function Github issue

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 2020-05-14
    • 2019-02-16
    • 2018-11-27
    • 1970-01-01
    • 2021-05-10
    • 2021-04-17
    • 2020-12-04
    • 2018-03-19
    相关资源
    最近更新 更多