Best practice per l'utilizzo delle risorse Google Cloud

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

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

Crea immagini di macchine virtuali

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

Se le immagini precotte non sono disponibili, Terraform può trasferire a uno strumento di gestione delle configurazioni con un blocco provisioner. Me consigliamo di evitare questo metodo e di usarlo solo come un ultima risorsa. Per ripulire il vecchio stato associato all'istanza, i provisioner che richiedono la logica di eliminazione deve usare un blocco provisioner con when = destroy.

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

Gestisci Identity and Access Management

Durante il provisioning di associazioni IAM con Terraform, vengono 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 contenuti autorevoli Associazioni IAM, in cui le risorse Terraform sono l'unica una fonte attendibile per le autorizzazioni che è possibile assegnare alla risorsa pertinente.

Se le autorizzazioni cambiano al di fuori di Terraform, Terraform sovrascrive tutte le autorizzazioni per rappresentare il criterio come definito configurazione. Questo potrebbe avere senso per le risorse interamente gestite da un configurazione Terraform particolare, ma i ruoli gestite automaticamente da Google Cloud, che potrebbero interrompere la funzionalità di alcuni servizi.

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

Passaggi successivi