Command Center

Search for a vulnerability, tool, or protocol...

Defensive

Infrastructure as Code (IaC) Security

Sécuriser Terraform/Bicep/CloudFormation : policy-as-code, scanning, gestion des secrets, durcissement du state, CI/CD, et prévention du drift.

14 mars 2026Peran3 min de lecture
#iac#terraform#bicep#cloudformation#policy-as-code#secrets#cicd

Pourquoi l’IaC change la surface d’attaque

Avec l’IaC, la configuration devient du code :

  • Avantage : traçabilité, review, reproductibilité.
  • Risque : une mauvaise config (public, permissions trop larges, secrets) se déploie à l’échelle.

Menaces typiques

  • Secrets dans le repo (tokens, clés, mots de passe, .tfvars).
  • IAM trop permissif (wildcards, rôles admin “temporairement”).
  • Ressources exposées (stockage public, DB ouverte, ingress trop large).
  • State compromis (contient IDs, parfois secrets selon patterns).
  • Supply chain (modules/providers non maîtrisés).

Contrôles à mettre en place (checklist)

1) Gestion des secrets

  • Interdire les secrets dans Git ; activer scans pré-commit + CI.
  • Stocker secrets dans un coffre (vault/secret manager) et injecter à l’exécution.
  • Rotation et séparation des environnements (dev/stage/prod).

2) Policy-as-code (garde-fous)

  • Définir des règles :
    • Pas d’exposition publique non justifiée.
    • Chiffrement au repos obligatoire.
    • Journaux/monitoring obligatoires.
    • Tags obligatoires (owner, env, cost-center).
  • Appliquer au plan et au deploy (CI/CD + contrôles côté plateforme).

3) Scanning IaC

  • Static analysis : analyser les manifests avant déploiement.
  • Détecter : ports ouverts, stockage public, ACL laxistes, TLS désactivé, logs off.
  • Ajouter un “security gate” : build échoue si sévérité ≥ seuil.

4) Sécuriser le state (Terraform, etc.)

  • Backend chiffré, accès restreint, audit activé.
  • Verrouillage (locking) pour éviter conflits.
  • Séparer state par environnement et par domaine (blast radius).

5) CI/CD sécurisé

  • Exécuter les pipelines avec identités à privilèges minimaux.
  • Signer/attester les artefacts (si votre chaîne le permet).
  • Review obligatoire (2-person rule) sur modules/rôles/IAM.

6) Modules & dépendances

  • Pinning des versions (providers, modules) + revue.
  • Préférer un registre interne approuvé.
  • Scanner les modules tiers (qualité, sécurité, licences selon politique).

7) Drift & configuration continue

  • Détecter le drift : changements manuels hors IaC.
  • Choisir une stratégie :
    • Reconcile (IaC reprend la main) ou
    • Detect & alert (si exceptions temporaires).

Patterns sûrs (exemples)

“Secure by default”

  • Tout est privé par défaut, exposition explicitement justifiée.
  • TLS partout, logs activés, chiffrement activé.

Séparation des responsabilités

  • Un repo “platform” (réseau, IAM, base) et des repos “apps” (workloads).
  • Accès prod fortement encadré (break-glass, JIT).

Indicateurs utiles

  • % ressources conformes aux policies.
  • Temps moyen de correction d’une config critique.
  • Nombre d’exceptions actives + durée.

Voir aussi