首页 > 解决方案 > 如何从 aws 秘密管理器中检索 terraform 中的秘密

问题描述

我有一个秘密存储在秘密管理器中,我可以访问该 arn。我想从此 arn 中检索值并在 terraform 中使用它我该如何实现?

我从 terraform 网站上找到了这个

data "aws_secretsmanager_secret" "by-arn" {
  arn = "arn:aws:secretsmanager:us-east-1:123456789012:secret:example-123456"
}

然后我如何检索值?意思是什么是get-value"terraform 中 EC2 实例的等价物?

标签: amazon-web-servicesterraformaws-secrets-manager

解决方案


这是一个例子。默认情况下,aws_secretsmanager_secret_version根据AWSCURRENT标签(即最新版本)检索信息:

data "aws_secretsmanager_secret" "secrets" {
  arn = "arn:aws:secretsmanager:us-east-1:123456789012:secret:my_secrety_name-123456"
}

data "aws_secretsmanager_secret_version" "current" {
  secret_id = data.aws_secretsmanager_secret.secrets.id
}

并用于data.aws_secretsmanager_secret_version.current.secret_string获取秘密。如果您想检索该密钥中的特定值,DATABASE_URL可以使用内置函数jsondecode

jsondecode(data.aws_secretsmanager_secret_version.current.secret_string)["DATABASE_URL"]

推荐阅读