Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Terraform

devsecops

Définition

Terraform est un outil open source d'infrastructure as code développé par HashiCorp, permettant de décrire, provisionner et gérer des ressources cloud et on-premises de manière déclarative à travers un langage nommé HCL. Il maintient un fichier d'état représentant l'infrastructure réelle déployée, comparé à chaque exécution avec la configuration déclarée pour déterminer les changements à appliquer, ce qui permet une gestion reproductible et versionnée de l'infrastructure au même titre que du code applicatif. Cette approche introduit des enjeux de sécurité spécifiques : le fichier d'état peut contenir des secrets en clair s'il n'est pas correctement protégé, les modules tiers récupérés depuis des registres publics peuvent embarquer des configurations dangereuses, et une erreur de déclaration peut exposer massivement des ressources cloud, par exemple un compartiment de stockage public. En défense, le stockage de l'état dans un backend chiffré avec verrouillage, comme un bucket S3 protégé combiné à DynamoDB, l'intégration d'analyseurs de sécurité IaC comme Checkov ou Terrascan dans le pipeline CI/CD, la revue systématique des plans d'exécution avant application, et l'usage de modules internes validés plutôt que de sources publiques non vérifiées, constituent les bonnes pratiques essentielles pour sécuriser un déploiement Terraform en environnement de production.

Fonctionnement technique

Terraform est un outil d'Infrastructure as Code (IaC) de HashiCorp qui permet de déclarer, provisionner et gérer des ressources d'infrastructure dans un langage de configuration déclaratif appelé HCL (HashiCorp Configuration Language). Le workflow suit trois étapes : terraform init (initialisation et téléchargement des providers), terraform plan (prévisualisation des changements) et terraform apply (application des changements).

Le state file (terraform.tfstate) est l'élément central : il stocke la correspondance entre les ressources déclarées dans le code et les ressources réelles dans le cloud. Lors d'un plan, Terraform compare l'état déclaré (fichiers .tf) avec l'état actuel (state file) et l'état réel (API cloud) pour calculer les actions nécessaires (create, update, delete). Le state doit être partagé et verrouillé en équipe via un backend distant (S3, Azure Blob, Terraform Cloud).

Les providers sont des plugins qui interfacent Terraform avec les API des fournisseurs cloud (AWS, Azure, GCP), des services SaaS (GitHub, Cloudflare, Datadog) ou des plateformes on-premise (VMware, Kubernetes). Le Registry Terraform héberge plus de 3 000 providers et des milliers de modules réutilisables. Les modules encapsulent des patterns d'infrastructure complexes en composants réutilisables et paramétrables.

Cas d'usage

Terraform est l'outil IaC le plus adopté pour le provisioning d'infrastructures multi-cloud. Il permet de déclarer l'ensemble de l'infrastructure (réseau, compute, stockage, IAM, DNS, monitoring) dans des fichiers versionnés en Git, offrant reproductibilité, traçabilité et collaboration via le workflow GitOps : changement dans le code → pull request → review → merge → apply.

Les équipes plateforme l'utilisent pour créer des « golden templates » (modules) encapsulant les bonnes pratiques de sécurité : VPC avec segmentation, clusters Kubernetes durcis, buckets chiffrés avec accès restreint. Les développeurs consomment ces modules sans se soucier des détails d'implémentation, accélérant les déploiements tout en maintenant la conformité.

Outils et implémentation

Terraform CLI est l'outil en ligne de commande principal. Terraform Cloud/Enterprise ajoute la collaboration (remote state, policy as code, run pipeline), les estimations de coût et la gestion des secrets. OpenTofu est le fork open source community-driven de Terraform créé après le changement de licence BSL de HashiCorp.

Pour la sécurité IaC, Checkov (Bridgecrew) et tfsec (Aqua) scannent les fichiers Terraform pour détecter les misconfigurations. Infracost estime les coûts avant le déploiement. Terragrunt (Gruntwork) simplifie la gestion des configurations multi-environnements. Atlantis automatise les plans/applies dans les pull requests GitHub/GitLab.

Défense / Bonnes pratiques

Sécurisez le state file comme un actif critique : il contient des informations sensibles (IPs, ARN, secrets). Stockez-le dans un backend chiffré avec verrouillage (S3 + DynamoDB, Azure Blob + lease). Ne le committez jamais en Git. Activez le chiffrement at-rest et limitez l'accès au state aux seules personnes et systèmes autorisés.

Implémentez le scanning de sécurité IaC dans votre pipeline CI/CD : Checkov, tfsec ou Snyk IaC doivent bloquer les merge requests contenant des misconfigurations critiques (security group ouvert au monde, stockage non chiffré, IAM surpermissif). Utilisez les policy as code (Sentinel dans Terraform Enterprise, OPA/Rego dans l'open source) pour enforcer les politiques de sécurité organisationnelles.

Appliquez le principe du moindre privilège aux credentials Terraform : utilisez des rôles IAM dédiés avec les permissions minimales nécessaires. Préférez les credentials éphémères (OIDC federation avec CI/CD) aux clés d'accès statiques. Activez l'audit logging (CloudTrail, Azure Activity Log) pour tracer toutes les actions Terraform et détecter les changements non autorisés.

Articles associés

Voir nos articles détaillés sur ce sujet.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis