Olivier Brun | Blog Cloud & Cybersécurité

Les bonnes pratiques Terraform pour l’industrie

Terraform est devenu la référence en matière d’Infrastructure as Code. Mais une mauvaise utilisation peut entraîner des catastrophes en production. Voici les bonnes pratiques que j’applique chez mes clients (Danone, AXA, Banque de France).

1. Structure de projet standardisée

Organisez votre code Terraform de manière cohérente et scalable.

terraform/
├── environments/
│   ├── dev/
│   │   ├── main.tf
│   │   ├── variables.tf
│   │   └── terraform.tfvars
│   ├── staging/
│   └── prod/
├── modules/
│   ├── networking/
│   ├── compute/
│   └── database/
└── global/
    └── iam/

2. Gestion des états (state)

Ne stockez jamais le fichier terraform.tfstate en local. Utilisez un backend distant avec verrouillage.

terraform {
  backend "s3" {
    bucket         = "terraform-state-prod"
    key            = "network/terraform.tfstate"
    region         = "eu-west-3"
    dynamodb_table = "terraform-locks"
    encrypt        = true
  }
}

3. Utilisez des modules

Découpez votre infrastructure en modules réutilisables. Testez-les indépendamment.

4. Versionnez et documentez

  • Versionnez le code Terraform dans Git
  • Documentez les entrées/sorties des modules
  • Utilisez des tags sur les versions des modules

5. Validez avant d’appliquer

Intégrez terraform fmt, terraform validate et terraform plan dans votre pipeline CI/CD.

6. Gérez les secrets proprement

N’écrivez jamais de secrets en clair dans les fichiers .tf ou .tfvars. Utilisez un gestionnaire de secrets (AWS Secrets Manager, Azure Key Vault, HashiCorp Vault).

7. IAM et moindre privilège

Le compte ou le rôle qui exécute Terraform doit avoir les permissions strictement nécessaires. Pas de droits *:*.

8. Taguez toutes les ressources

locals {
  common_tags = {
    Environment = var.environment
    ManagedBy   = "Terraform"
    Owner       = "Olivier Brun"
    CostCenter  = var.cost_center
  }
}

9. Appliquez en production avec précaution

  • Utilisez des pipelines d’approbation manuelle pour la prod
  • Activez les prevent_destroy sur les ressources critiques
  • Planifiez des tests de restauration réguliers
💡 Mon retour d’expérience : Chez Danone, la migration vers Terraform a permis de réduire les déploiements manuels de 80 % et d’éliminer les dérives de configuration. L’investissement initial dans la standardisation a été largement rentabilisé en 6 mois.

Récapitulatif

Adoptez ces bonnes pratiques dès le premier jour : structure cohérente, état distant, modules, validation CI/CD, gestion des secrets, moindre privilège et tagging systématique.

← Retour au blog