Bonnes pratiques concernant les ressources Google Cloud

Les bonnes pratiques pour le provisionnement de ressources Google Cloud avec Terraform sont intégrées aux modules Cloud Foundation gérés par Google. Cette section répète certaines de ces bonnes pratiques.

Ce guide n'est pas une introduction à Terraform. Pour une présentation de l'utilisation de Terraform avec Google Cloud, consultez la page Premiers pas avec Terraform.

Préconcevoir des images de machine virtuelle

En général, nous vous recommandons de créer des images de machine virtuelle en utilisant un outil comme Packer. Il suffit ensuite de lancer des machines à l'aide des images préconçues.

Si les images préconçues ne sont pas disponibles, Terraform peut transférer de nouvelles machines virtuelles vers un outil de gestion de la configuration en utilisant un bloc provisioner. Nous vous recommandons d'éviter cette méthode et de ne l'utiliser qu'en dernier recours. Pour nettoyer l'ancien état associé à l'instance, les approvisionneurs nécessitant une logique de suppression doivent utiliser un bloc provisioner avec when = destroy.

Terraform doit fournir les informations de configuration des VM pour la gestion de la configuration avec des métadonnées d'instance.

Gérer la gestion de l'authentification et des accès (IAM)

Lorsque vous provisionnez des associations IAM avec Terraform, plusieurs ressources différentes sont disponibles :

  • google_*_iam_policy (par exemple, google_project_iam_policy)
  • google_*_iam_binding (par exemple, google_project_iam_binding)
  • google_*_iam_member (par exemple, google_project_iam_member)

google_*_iam_policy et google_*_iam_binding créent des associations IAM faisant autorité, où les ressources Terraform servent de seule source fiable pour les autorisations pouvant être attribuées à la ressource concernée.

Si les autorisations changent en dehors de Terraform, à la prochaine exécution, Terraform écrase toutes les autorisations afin de représenter la stratégie telle que définie dans votre configuration. Cela peut être judicieux pour les ressources entièrement gérées par une configuration Terraform spécifique. Cependant, cela signifie que les rôles automatiquement gérés par Google Cloud sont supprimés, ce qui risque de perturber le bon fonctionnnement de certains services.

Pour éviter cela, nous vous recommandons d'utiliser directement les ressources google_*_iam_member ou le module IAM de Google.

Étapes suivantes