vkr*_*vkr 3 terraform terraform-provider-aws
我有下面的 terraform 模板,它创建用户、访问密钥并存储在秘密管理器中。
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}"
}
Run Code Online (Sandbox Code Playgroud)
Secret_string 中的值未设置。这是正确的用法吗?请帮助我设置正确的值
secret_string = "{\"AccessKey\": data.aws_iam_access_key.test.id,\"SecretAccessKey\": data.aws_iam_access_key.test.secret}"
Run Code Online (Sandbox Code Playgroud)
您可以将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})
}
Run Code Online (Sandbox Code Playgroud)
另请注意,aws_iam_access_key.test.id和aws_iam_access_key.test.secret是从资源而不是数据导出的属性,因此data需要从其命名空间中删除前缀。
| 归档时间: |
|
| 查看次数: |
5029 次 |
| 最近记录: |