web-dev-qa-db-fra.com

Didentification de Google Cloud avec Terraform

C'est un peu une question de Newbie, mais je viens de commencer par le provisioning GCP à l'aide de Terraform/TerrAgunt, et je trouve le flux de travail avec l'obtention d'informations d'identification du GCP assez confus. Je viens d'utiliser des AWS exclusivement, où obtenez des informations d'identification et les configurer dans le AWS CLI était assez simple.

Fondamentalement, la Documentation du fournisseur de Google Cloud stipule que vous devriez définir un bloc provider comme SE:

provider "google" {
  credentials = "${file("account.json")}"
  project     = "my-project-id"
  region      = "us-central1"
  zone        = "us-central1-c"
}

Ce champ credentials montre que je (apparemment) doit générer un compte de service et garder un JSON quelque part sur mon système de fichiers.

Cependant, si j'exécute la commande gcloud auth application-default login, cela génère un jeton situé à ~/.config/gcloud/application_default_credentials.json; Sinon, je peux aussi utiliser gcloud auth login <my-username>. De là, je peux accéder à Google API (qui est ce que Terraform se déroule sous la cagoule) de la ligne de commande à l'aide d'une commande gcloud.

Alors, pourquoi le fournisseur Terraform requiert-il un fichier JSON d'un compte de service? Pourquoi ne peut-il pas simplement utiliser les informations d'identification que l'outil gcloud cli utilise déjà?

Au fait, si je configure Terraform to Point sur le application_default_credentials.json Fichier, je reçois les erreurs suivantes:

Initialisation des modules ...

Initialiser le backend ...

Erreur: Impossible d'obtenir des espaces de travail existants: Échec du stockage du cloud requis: obtenez https://www.googleapis.com/storage/v1/b/terraform-state-bucket/o?alt=json&delimiter=%2f&pageToken=&prefix = Projets% 2fsomeProject% 2f & Prettyprint = FALSE & PROJECTION = FLEX & VERSIONS = FAUX : La clé privée doit être une PKCS1 ou un PKCS8 ordinaire; Erreur d'analyse: ASN1: Erreur de syntaxe: séquence tronquée

7
Scott Crooks

Il n'est toujours pas recommandé d'utiliser gcloud auth application-default login, Meilleures approches sont meilleures

https://www.terraform.io/docs/providers/google/guides/provider_reference.html#cripticidentals-1

1
krish