如何提取terraform中的敏感输出变量?

2023-12-25

我有一个 terraform 配置,它创建一个带有访问密钥的 AWS IAM 用户,并将 id 和 Secret 分配给输出变量:

...

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

output "brand_new_user_id" {
  value = aws_iam_access_key.brand_new_user.id
}

output "brand_new_user_secret" {
  value     = aws_iam_access_key.brand_new_user.encrypted_secret
  sensitive = true
}

Here brand_new_user_secret被声明为敏感,所以terraform output显然不打印它。

有没有办法在不解析整个状态文件的情况下获取其输出值? 尝试直接访问它(terraform output brand_new_user_secret)不起作用(导致错误“在状态文件中找不到请求的输出变量...”)。

地形版本:0.12.18


我有一些希望避免它,但到目前为止我没有找到比解析 terraform 状态更好的方法:

terraform state pull | jq '.resources[] | select(.type == "aws_iam_access_key") | .instances[0].attributes'

这将产生类似于以下的结构:

{
  "encrypted_secret": null,
  "id": "....",
  "key_fingerprint": null,
  "pgp_key": null,
  "secret": "....",
  "ses_smtp_password": "....",
  "ses_smtp_password_v4": null,
  "status": "Active",
  "user": "...."
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何提取terraform中的敏感输出变量? 的相关文章

随机推荐