我开始学习terraform / github动作。作为Github动作的一部分,是否可以让TF读取Github的机密?例如..
我的main.tf文件创建一个AWS EC2实例,并且需要使用预配器安装nginx。为了做到这一点,我需要将我的私钥/公钥信息提供给Proison,以便其对EC2实例进行身份验证以安装该应用程序。我创建了一个包含我的私钥的github机密。
此刻,工作流不断失败,因为我无法读取包含私钥信息的github机密。
我该如何实现?
任何建议都将受到欢迎!谢谢
答案 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等机密管理商店中对其进行更好的管理。