Prácticas recomendadas para trabajar con recursos de Google Cloud

Las prácticas recomendadas para aprovisionar recursos de Google Cloud con Terraform están integradas en los módulos de Cloud Foundation Toolkit que mantiene Google. En este documento, se reiteran algunas de estas prácticas recomendadas.

Esta guía no es una introducción a Terraform. Para obtener una introducción al uso de Terraform con Google Cloud, consulta Comienza a usar Terraform.

Prepara imágenes de máquinas virtuales

En general, te recomendamos preparar imágenes de máquinas virtuales con una herramienta como Packer. Terraform solo necesita iniciar las máquinas con las imágenes ya preparadas.

Si las imágenes ya preparadas no están disponibles, Terraform puede transferir máquinas virtuales nuevas a una herramienta de administración de configuración con un bloque provisioner. Te recomendamos que evites este método y solo lo uses como último recurso. Para limpiar el estado anterior asociado con la instancia, los aprovisionadores que requieren lógica de eliminación deben usar un bloque provisioner con when = destroy.

Terraform debe proporcionar información sobre la configuración de la VM a la administración de configuración con metadatos de la instancia.

Gestiona la administración de identidades y accesos

Cuando se aprovisionan asociaciones de IAM con Terraform, hay varios recursos diferentes disponibles:

  • google_*_iam_policy (por ejemplo, google_project_iam_policy)
  • google_*_iam_binding (por ejemplo, google_project_iam_binding)
  • google_*_iam_member (por ejemplo, google_project_iam_member)

google_*_iam_policy y google_*_iam_binding crean asociaciones de IAM autorizadas, en las que los recursos de Terraform sirven como única fuente de información para los permisos que se pueden asignar al recurso relevante.

Si los permisos cambian fuera de Terraform, en su siguiente ejecución, Terraform reemplaza todos los permisos para representar la política como se define en la configuración. Esto puede tener sentido para recursos que son completamente administrados por una configuración de Terraform en particular, pero significa que se quitan los roles que administra Google Cloud de forma automática, lo que puede interrumpir la funcionalidad de algunos servicios.

Para evitar esto, te recomendamos usar los recursos de google_*_iam_member directamente o el módulo sobre IAM de Google.

¿Qué sigue?