Prácticas recomendadas al trabajar con recursos de Google Cloud

Las prácticas recomendadas para aprovisionar Google Cloud recursos con Terraform se han integrado 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 el artículo Empezar a usar Terraform.

Compilar imágenes de máquinas virtuales

En general, te recomendamos que crees imágenes de máquinas virtuales con una herramienta como Packer. Después, Terraform solo tiene que iniciar las máquinas con las imágenes preconfiguradas.

Si no hay imágenes precompiladas disponibles, Terraform puede transferir nuevas máquinas virtuales a una herramienta de gestión de configuración con un bloque provisioner. Te recomendamos que evites este método y que solo lo utilices como último recurso. Para limpiar el estado antiguo asociado a la instancia, los provisionadores que requieran lógica de desmontaje deben usar un bloque provisioner con when = destroy.

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

Gestionar la gestión de identidades y accesos

Cuando aprovisionas asociaciones de IAM con Terraform, tienes varios recursos 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 gestión de identidades y accesos autorizadas, donde los recursos de Terraform son la única fuente de información sobre los permisos que se pueden asignar al recurso correspondiente.

Si los permisos cambian fuera de Terraform, en la siguiente ejecución, Terraform sobrescribirá todos los permisos para representar la política tal como se define en tu configuración. Esto puede ser útil para los recursos que gestiona por completo una configuración de Terraform concreta, pero significa que los roles que gestiona automáticamente Google Cloud se eliminan, lo que puede interrumpir el funcionamiento de algunos servicios.

Para evitarlo, te recomendamos que utilices los recursos de google_*_iam_member directamente o el módulo IAM de Google.

Siguientes pasos