gpt4 book ai didi

terraform - 使用 secretsmanager Terraform 设置 aws 访问 key 和 key

转载 作者:行者123 更新时间:2023-12-05 02:08:12 27 4
gpt4 key购买 nike

我有以下 terraform 模板,它创建用户、访问 key 并存储在 secret 管理器中。

resource "aws_iam_user" "test" {
name = "test"
}

resource "aws_iam_access_key" "test" {
user = aws_iam_user.test.name
}

resource "aws_secretsmanager_secret" "test" {
name = "credentials"
description = "My credentials"
}

resource "aws_secretsmanager_secret_version" "test" {
secret_id = "${aws_secretsmanager_secret.test.id}"
secret_string = "{\"AccessKey\": data.aws_iam_access_key.test.id,\"SecretAccessKey\": data.aws_iam_access_key.test.secret}"
}

secret_string 中的值未设置。这是正确的用法吗?请帮我设置正确的值

secret_string = "{\"AccessKey\": data.aws_iam_access_key.test.id,\"SecretAccessKey\": data.aws_iam_access_key.test.secret}"

最佳答案

您可以将 secret_string 参数值构造为 Map 类型,然后使用 Terraform 的原生 jsonencode 函数将其编码为 JSON 字符串,以确保该值正确传递给论据。您的资源将如下所示:

resource "aws_secretsmanager_secret_version" "test" {
secret_id = "${aws_secretsmanager_secret.test.id}"
secret_string = jsonencode({"AccessKey" = aws_iam_access_key.test.id, "SecretAccessKey" = aws_iam_access_key.test.secret})
}

另请注意,aws_iam_access_key.test.idaws_iam_access_key.test.secret 是从资源而非数据导出的属性,因此 data前缀需要从它们的命名空间中删除。

关于terraform - 使用 secretsmanager Terraform 设置 aws 访问 key 和 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61108540/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com