我有下面的平台模板,其中创建一个用户,访问密钥和存储在秘密管理器。
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}"发布于 2020-04-09 07:10:37
您可以将secret_string参数值构造为映射类型,然后使用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.id和aws_iam_access_key.test.secret是从资源导出的属性,而不是数据,因此需要从它们的名称空间中删除data前缀。
https://stackoverflow.com/questions/61108540
复制相似问题