4

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

我想使用 Terraform 变量或环境变量将服务帐户密钥内容传递给提供者,但我无法找到这方面的文档。我该怎么做?

4

2 回答 2

11

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

于 2019-12-22T10:44:55.857 回答
1

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 将可供您在 terraform 中使用

于 2019-12-22T09:57:03.663 回答