Best practice per l'utilizzo delle risorse Google Cloud

Le best practice per il provisioning delle risorse Google Cloud 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 la guida introduttiva a Terraform.

Crea immagini di macchine virtuali

In generale, ti consigliamo di creare immagini di macchine virtuali utilizzando uno strumento come Packer. Terraform deve quindi avviare le macchine utilizzando le immagini precotte.

Se le immagini precotte 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 rimozione devono utilizzare un blocco provisioner con when = destroy.

Terraform deve fornire informazioni sulla configurazione delle VM per la gestione della configurazione con i metadati dell'istanza.

Gestisci Identity and Access Management

Durante il provisioning di associazioni IAM con Terraform, sono disponibili diverse risorse:

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

google_*_iam_policy e google_*_iam_binding creano associazioni IAM autorevoli, 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 nella prossima esecuzione sovrascrive tutte le autorizzazioni per rappresentare il criterio come definito nella configurazione. Questo potrebbe avere senso per le risorse interamente gestite da una determinata configurazione Terraform, ma significa che i ruoli gestiti automaticamente da Google Cloud vengono rimossi, interrompendo potenzialmente la funzionalità di alcuni servizi.

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

Passaggi successivi