Как передать содержимое 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.