根据Google Provider documentation,应使用环境变量GOOGLE_CLOUD_KEYFILE_JSON
将服务帐户密钥提供给Terraform。使用Terraform Cloud时,这对我来说是个问题,因为这意味着将服务帐户密钥存储在存储库中,并使用环境变量来设置密钥文件的路径。
我想使用Terraform变量或环境变量将服务帐户密钥内容传递给提供程序,但我无法为此找到文档。我该怎么办?
答案 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。