Terraform 如何将敏感输出变量的值分配给环境变量?

Terraform 如何将敏感输出变量的值分配给环境变量?,terraform,Terraform,我正在GitHub工作流中自动化terraform脚本 在我的terraform脚本中,我有一个敏感的输出变量,如下所示: output "db_password" { value = aws_db_instance.db.password description = "The password for logging in to the database." sensitive = true } 我正在GitHub操作工作流中部署(terr

我正在GitHub工作流中自动化terraform脚本

在我的terraform脚本中,我有一个敏感的输出变量,如下所示:

output "db_password" {
  value = aws_db_instance.db.password
  description = "The password for logging in to the database."
  sensitive = true
}
我正在GitHub操作工作流中部署(terraform应用)脚本。 成功部署后,我需要将密码存储在安全存储(Azure KeyVault)中。我有一个bash命令来做这件事

我需要在环境变量中输入db_密码的值

如何将敏感输出变量的值分配给环境变量


有更好的方法吗?

我建议在
地形应用之后使用
地形输出
。然后,您可以将输出存储到Bash/shell变量或文件,而无需打印输出

e、 g

缺点是它可能:

  • 在控制台输出中显示最后一个命令
  • ps
    中作为命令行参数可见

因此,改进后的解决方案是存储在临时文件中

CREDENTIALS=$(mktemp -t tmp.XXXXXXXXXX)
terraform output db_password >$CREDENTIALS
# and now use the $CREDENTIALS file as input to Azure
rm -rf $CREDENTIALS
CREDENTIALS=$(mktemp -t tmp.XXXXXXXXXX)
terraform output db_password >$CREDENTIALS
# and now use the $CREDENTIALS file as input to Azure
rm -rf $CREDENTIALS