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.