Как передать содержимое key.json учетной записи службы GCP в Terraform Cloud, не фиксируя его в VCS?

Согласно документации поставщика Google, ключ учетной записи службы должен быть предоставлен Terraform с использованием переменной средыGOOGLE_CLOUD_KEYFILE_JSON. При использовании Terraform Cloud для меня это проблема, поскольку это означает сохранение ключа учетной записи службы в репозитории и использование переменной среды для установки пути к файлу ключа.

Я хотел бы передать содержимое ключа учетной записи службы поставщику, используя либо переменную Terraform, либо переменную среды, но мне не удалось найти для этого документацию. Как мне это сделать?

2 ответа

Решение

Прошло некоторое время с тех пор, как он настроен, но вы можете установить все содержимое файла как переменную среды GOOGLE_CLOUD_KEYFILE_JSON, и это работает. Убедитесь, что вы настроили его как чувствительный. Вы должны удалить все новые строки из файла, чтобы он заработал.

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.

Другие вопросы по тегам