如何将GCP服务帐户key.json内容传递到Terraform Cloud中而不在VCS中提交它?

时间:2019-12-21 21:48:12

标签: google-cloud-platform terraform terraform-cloud

根据Google Provider documentation,应使用环境变量GOOGLE_CLOUD_KEYFILE_JSON将服务帐户密钥提供给Terraform。使用Terraform Cloud时,这对我来说是个问题,因为这意味着将服务帐户密钥存储在存储库中,并使用环境变量来设置密钥文件的路径。

我想使用Terraform变量或环境变量将服务帐户密钥内容传递给提供程序,但我无法为此找到文档。我该怎么办?

2 个答案:

答案 0 :(得分:2)

设置以来已经有一段时间了,但是您可以将文件的全部内容设置为环境变量 GOOGLE_CLOUD_KEYFILE_JSON 并且可以使用。确保将其设置为敏感。您必须从文件中删除所有新行才能使其正常工作。

答案 1 :(得分:0)

var.ACCOUNT_JSON是帐户json文件的路径,您可以将其保留在git存储库之外。

variable "ACCOUNT_JSON" {}
variable "PROJECT_ID" {}


provider "google" {
  credentials = file(var.ACCOUNT_JSON)
  project     = var.PROJECT_ID
}

您可以执行export TF_VAR_ACCOUNT_JSON=../accoutn.json,在这种情况下,该命令不会存储在历史记录中,并且ACCOUTN_JSON可用于you to be used in terraform