问题关于terraform和github的动作/秘密

时间:2020-09-22 10:59:21

标签: terraform github-actions

我开始学习terraform / github动作。作为Github动作的一部分,是否可以让TF读取Github的机密?例如..

我的main.tf文件创建一个AWS EC2实例,并且需要使用预配器安装nginx。为了做到这一点,我需要将我的私钥/公钥信息提供给Proison,以便其对EC2实例进行身份验证以安装该应用程序。我创建了一个包含我的私钥的github机密。

此刻,工作流不断失败,因为我无法读取包含私钥信息的github机密。

我该如何实现?

任何建议都将受到欢迎!谢谢

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用环境变量。

Terraform读取其variables from environment的值。 下一篇是翻译GitHub secret in an environment variable

实际上,如果您的Terraform脚本具有变量声明,例如

variable "my_public_key" {}

,并且您拥有GitHub机密 NGINX_PUBKEY ,则可以在工作流程中使用此语法

steps:
  - run: terraform apply -auto-approve
    env:
      TF_VAR_my_public_key: ${{ secrets.NGINX_PUBKEY }}

这表示我不建议对此类数据使用GitHub机密:最好在诸如AWS Secrets Manager,Azure KeyVault,Hashicorp Vault等机密管理商店中对其进行更好的管理。