Best practice per l'utilizzo delle risorse Google Cloud

Le best practice per il provisioning Google Cloud delle risorse con Terraform sono integrate nei moduli del Cloud Foundation Toolkit gestiti da Google. Questo documento ribadisce alcune di queste best practice.

Questa guida non è un'introduzione a Terraform. Per un'introduzione all'utilizzo di Terraform con Google Cloud, consulta Introduzione a Terraform.

Esegui il baking delle immagini delle macchine virtuali

In generale, ti consigliamo di creare immagini delle macchine virtuali utilizzando uno strumento come Packer. Terraform deve quindi solo avviare le macchine utilizzando le immagini pre-cotte.

Se le immagini preconfezionate non sono disponibili, Terraform può trasferire le nuove macchine virtuali a uno strumento di gestione della configurazione con un blocco provisioner. Ti consigliamo di evitare questo metodo e di utilizzarlo solo come ultima risorsa. Per ripulire lo stato precedente associato all'istanza, i provisioner che richiedono la logica di teardown devono utilizzare un blocco provisioner con when = destroy.

Terraform deve fornire le informazioni di configurazione della VM alla gestione della configurazione con i metadati dell'istanza.

Gestire Identity and Access Management

Quando esegui il provisioning delle associazioni IAM con Terraform, sono disponibili diverse risorse:

  • google_*_iam_policy (ad esempio google_project_iam_policy)
  • google_*_iam_binding (ad esempio google_project_iam_binding)
  • google_*_iam_member (ad esempio google_project_iam_member)

google_*_iam_policy e google_*_iam_binding creano associazioni IAM autoritative, in cui le risorse Terraform fungono da unica fonte attendibile per le autorizzazioni che possono essere assegnate alla risorsa pertinente.

Se le autorizzazioni cambiano al di fuori di Terraform, Terraform sovrascrive tutte le autorizzazioni al successivo discorso per rappresentare il criterio come definito nella configurazione. Questa operazione potrebbe avere senso per le risorse gestite interamente da una determinata configurazione Terraform, ma significa che i ruoli gestiti automaticamente da Google Cloud vengono rimossi, con il rischio di interrompere la funzionalità di alcuni servizi.

Per evitare questo problema, ti consigliamo di utilizzare direttamente le risorse google_*_iam_member o il modulo IAM di Google.

Passaggi successivi