首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用secretsmanager Terraform设置aws访问密钥和密钥

使用secretsmanager Terraform设置aws访问密钥和密钥
EN

Stack Overflow用户
提问于 2020-04-09 03:29:10
回答 1查看 1.3K关注 0票数 2

我有下面的平台模板,其中创建一个用户,访问密钥和存储在秘密管理器。

代码语言:javascript
运行
复制
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中的值。这是正确的用法吗?请帮我设置正确的值

代码语言:javascript
运行
复制
secret_string = "{\"AccessKey\": data.aws_iam_access_key.test.id,\"SecretAccessKey\": data.aws_iam_access_key.test.secret}"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-09 07:10:37

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

代码语言:javascript
运行
复制
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前缀。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61108540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档