L’issue s’ouvre déjà remplie avec le titre et l’adresse de cette page.
Imaginez cette situation : vous gérez un parc de 50 serveurs web. Tous sont
censés être identiques, déployés à partir du même playbookAnsible. Un jour, vous
devez migrer vers une nouvelle version de l'application.
Vous lancez la mise à jour. 47 serveurs se mettent à jour sans problème. Trois
échouent avec des erreurs incompréhensibles. Après investigation, vous découvrez
que :
Sur le serveur 23, quelqu'un a modifié manuellement le fichier /etc/hosts
pour « corriger un problème de DNS urgent » il y a six mois
Sur le serveur 41, un collègue a installé un package de debug qui n'a jamais
été retiré et qui entre en conflit avec la nouvelle version
Sur le serveur 48, les permissions d'un répertoire ont été changées lors d'un
dépannage nocturne, et le script de déploiement n'a plus les droits d'écriture
Trois serveurs, trois dérives différentes, trois heures perdues par serveur.
Vous venez de découvrir le coût réel de la dérive de configuration.
L'état de référence (baseline en anglais) est l'état validé et documenté
d'un système. C'est la définition de « comment ce serveur devrait être configuré
».
La dérive de configuration (configuration drift) survient quand l'état réel
d'un système s'écarte de son état de référence. C'est la différence entre « ce
que le système devrait être » et « ce qu'il est vraiment ».
État attendu (état de référence) - État réel = Dérive
Confondre dérive et changement légitime mène à traquer de faux problèmes. Le
critère qui départage tient en un mot : l'intention tracée. Un changement
décidé, documenté et appliqué de façon contrôlée fait évoluer l'état de
référence, ce n'est pas une dérive. La dérive, c'est l'écart non voulu ou
non tracé. Le tableau suivant liste les cas qu'on prend à tort pour de la
dérive.
Ce n'est PAS de la dérive
Pourquoi
Un changement planifié et documenté
C'est une évolution de l'état de référence
Une mise à jour de sécurité appliquée uniformément
La dérive de configuration peut sembler anodine, après tout, qu'est-ce qu'un
petit paramètre modifié ? Pourtant, elle est à l'origine de nombreux incidents
majeurs, de failles de sécurité et de problèmes de conformité. Comprendre ses
conséquences permet de prendre au sérieux sa prévention.
Ces quatre conséquences vont du visible à l'invisible. Les incidents se
remarquent tout de suite, mais ce sont les failles de sécurité et la
non-conformité qui coûtent le plus cher, car elles restent silencieuses
jusqu'à l'audit ou la fuite. Lisez la colonne des exemples : chacun correspond à
un cas réel, pas à une hypothèse.
Conséquence
Ce qui se passe
Exemple réel
Incidents
Comportement imprévisible
Serveur 23 différent des autres → plantage lors d'une mise à jour
Failles de sécurité
Durcissement perdu
En 2020, un bucket S3 de Twilio, ouvert en écriture publique par une mauvaise politique d'accès, a permis l'injection de code malveillant dans son SDK JavaScript TaskRouter
Non-conformité
Écart aux politiques
Audit PCI-DSS échoué car des serveurs n'avaient plus les bons paramètres
Temps perdu
Debug de « snowflakes »
Chaque serveur différent = chaque incident unique à investiguer
La dérive se comporte comme la dette technique : plus vous tardez à la traiter,
plus son coût de correction augmente. Chaque écart non corrigé sert de base au
suivant, si bien que le coût ne croît pas de façon linéaire mais s'accélère à
chaque étape, comme le montre le schéma ci-dessous.
Dérive initiale, Une petite modification manuelle « juste pour tester ».
Ça semble anodin : « Je corrige vite ce paramètre en SSH, je documenterai
ensuite ». Coût de correction à ce stade : quelques minutes.
Accumulation, D'autres modifications s'ajoutent sans documentation.
Chaque membre de l'équipe fait « une petite correction ». Ces modifications
se cumulent sans qu'aucune ne soit tracée. Coût de correction : quelques
heures.
Divergence, Les serveurs « identiques » ne le sont plus. Le serveur de
production ne se comporte pas comme celui de test. L'équipe commence à
entendre : « Ça marche chez moi mais pas en prod ». Coût de correction :
jours de travail.
Snowflake, Chaque serveur devient unique, impossible à reproduire. Le
serveur 23 a des configurations que personne ne comprend. On n'ose plus y
toucher. Coût de correction : semaines, avec risque d'incident.
Paralysie, L'équipe a peur de toucher quoi que ce soit. Toute mise à
jour devient un projet risqué. L'innovation s'arrête. Coût de correction :
mois de refonte, souvent après un incident majeur.
La dérive ne vient pas de nulle part. Elle a toujours une cause, technique ou
humaine. Comprendre ses sources est la première étape pour la prévenir
efficacement.
Exemple concret, Un développeur crée un bucket S3 via la console AWS pour
tester quelque chose. Il ne le supprime pas. Le bucket n'existe pas dans
Terraform, donc il n'est pas audité. Six mois après, il contient des données
sensibles et n'a pas les bonnes politiques de sécurité.
Ces causes sont liées à l'organisation, aux processus et aux personnes. Elles
sont souvent plus difficiles à résoudre car elles nécessitent des changements
culturels.
Source
Comment ça arrive
Pourquoi c'est dangereux
Processus contournés
« Pas le temps pour le change management »
Modifications non tracées
Documentation obsolète
L'état de référence « officiel » date de 2022
On ne sait plus ce qui est correct
Silos équipes
Dev, Ops, Sécu travaillent séparément
Chacun modifie de son côté
Turnover
L'expert qui savait tout est parti
Connaissances perdues
Glissez pour voir
Exemple concret, L'équipe sécurité demande l'ajout de règles
firewall. L'équipe ops les applique
manuellement « en attendant la prochaine release ». Un an après, ces règles
n'existent toujours pas dans le code. Personne ne sait pourquoi elles sont là.
Gérer la dérive n'est pas un projet ponctuel qu'on coche et qu'on oublie. C'est
un processus continu, comme la gestion de la dette technique ou la sécurité. Le
cycle se répète en permanence : détecter, analyser, corriger, prévenir.
Cycle de gestion de la dérive : détecter en comparant à la baseline, analyser causes et impacts, corriger en rétablissant ou en mettant à jour la baseline, prévenir par l'automatisation, la formation et le contrôle.cycle de gestion de la dérive1. Détecter
état réel vs baseline2. Analyser
causes et impacts3. Corriger
rétablir ou mettre à jour la baseline4. Prévenir
automatiser, former, contrôler
La détection est la première ligne de défense. Elle consiste à identifier
automatiquement les écarts entre l'état attendu (votre état de référence) et
l'état réel des systèmes. Sans détection, vous naviguez à l'aveugle.
Ne corrigez jamais une dérive à l'aveugle ! Chaque dérive a une cause, et cette
cause peut révéler un problème plus profond. Parfois, c'est l'état de référence
lui-même qui doit évoluer.
Question à poser
Pourquoi c'est important
Qui a fait la modification ?
Identifier si c'est un problème de processus ou de compétence
Quand a-t-elle eu lieu ?
Corréler avec des incidents ou des déploiements
Pourquoi était-elle nécessaire ?
Peut révéler un problème que l'état de référence ne résout pas
Quel impact si on corrige ?
Éviter de casser quelque chose en « réparant »
Glissez pour voir
Exemple : Vous détectez qu'un serveur a une règle firewall non standard.
Avant de la supprimer, vérifiez qu'elle n'a pas été ajoutée pour bloquer une
attaque en cours. Si c'est le cas, la bonne action est d'intégrer cette règle à
l'état de référence, pas de la supprimer.
Une fois la cause comprise, deux choix s'offrent à vous. Le bon choix dépend de
la nature de la dérive : était-ce une erreur ou une amélioration légitime ?
Option
Quand l'utiliser
Comment
Rétablir l'état de référence
La dérive était une erreur
Réappliquer le playbook, terraform apply
Mettre à jour l'état de référence
La dérive était une amélioration
Modifier l'IaC puis redéployer
Glissez pour voir
Attention : Ne corrigez jamais en « bricolant » à la main. Vous ne feriez
que créer une nouvelle dérive, un cercle vicieux. Toute correction doit passer
par l'outil de gestion de configuration.
La meilleure dérive est celle qui ne se produit pas. La prévention est l'étape
la plus importante, elle transforme un cycle de « pompier » en approche
proactive.
Automatiser tout changement
Si une modification doit être faite, elle doit être codifiée (IaC, playbook)
et versionnée. Jamais de SSH pour « corriger vite ».
Détecter en continu
Exécuter terraform plan ou un scan de drift quotidiennement, pas juste
avant les déploiements. Alerter sur tout écart.
Bloquer les modifications manuelles
Restreindre les accès SSH, utiliser des politiques IAM qui empêchent les
modifications console sur les ressources gérées par
IaC.
Documenter et former
S'assurer que tout le monde comprend pourquoi la modification manuelle est
interdite et comment faire correctement.
Tracer et auditer
Logs d'accès, audit trail cloud. Si quelqu'un dévie, vous devez pouvoir le
savoir.
Il est facile de tomber dans certains pièges quand on gère la configuration.
Cette section présente les erreurs les plus courantes et comment les éviter.
Anti-pattern : modification manuelle urgente, documentation remise à demain, dérive silencieuse, incident. Bonne pratique : modification par IaC ou playbook, baseline mise à jour et écarts détectés automatiquement, cohérence.Anti-patternModificationmanuelle urgente« Je documentedemain »Dérive silencieuseaccumulationIncident : support difficile,faille exploitéeBonne pratiqueModificationvia IaC ou playbookBaseline mise à jourautomatiquementDétection automatiquedes écartsCohérence : fiabilité,audit OK, rollback facile
Face à une dérive, deux philosophies s'affrontent. Le choix entre les deux
dépend d'une question simple : la dérive était-elle une erreur ou une
amélioration ?
Décision Fix Forward ou Fix Backward : si la dérive n'était pas intentionnelle (erreur accidentelle, problème causé, non-conformité), fix backward par rollback vers l'état de référence ; si elle l'était (amélioration validée, correctif de sécurité, évolution), fix forward en intégrant la modification à l'IaC. Dans tous les cas, jamais de correction manuelle.NonOuiLa dérive était-elleintentionnelle ?Fix backward : rollback vers l'étatde référence (playbook, terraform apply)Fix forward : intégrer la modificationà l'état de référence (mise à jour IaC)Quand : erreur accidentelle,problème causé, non-conformitéQuand : amélioration validée,correctif de sécurité, évolutionDans tous les cas :ne jamais corriger manuellement
Côté cloud, la vraie question n'est pas de comparer le code au réel, votre outil
IaC le fait déjà, mais de repérer les ressources non gérées créées hors du
code. C'est le critère à regarder dans la colonne « Points forts » : seuls les
outils qui détectent le unmanaged révèlent le shadow IT. terraform plan reste
gratuit et intégré, mais ne voit que ce qu'il gère ; les autres élargissent la
couverture au prix d'un abonnement.
Sur un serveur Linux, deux besoins distincts se cachent derrière le mot
« détection ». Surveiller les changements de fichiers relève de l'intégrité
(AIDE, Tripwire, OSSEC), qui alertent dès qu'un fichier suivi est modifié.
Vérifier la conformité à un standard de durcissement relève d'un autre
registre (OpenSCAP, Lynis), qui comparent l'état à une baseline CIS ou SCAP.
Choisissez selon la question posée : « qu'est-ce qui a changé ? » ou « suis-je
toujours conforme au référentiel ? ».
Les outils de gestion de configuration détectent la dérive sans logiciel tiers,
puisqu'ils connaissent déjà l'état attendu. La distinction pratique porte sur ce
qu'ils font une fois l'écart trouvé : Ansible et SaltStack proposent un
mode simulation (--check, test=True) qui montre les écarts sans rien
changer, tandis que Puppet peut aller jusqu'à corriger automatiquement
à chaque passage de l'agent. Ce dernier comportement est puissant mais à manier
avec prudence sur des serveurs sensibles.
On ne peut pas améliorer ce qu'on ne mesure pas. Mesurer la dérive permet de
savoir si la situation s'améliore ou se dégrade, et de justifier les
investissements en outillage et formation.
Un bon dashboard de gestion de la dérive donne une vision d'ensemble en un coup
d'œil. Il doit répondre à ces questions :
Quelle est ma situation globale ? (taux de conformité)
Où sont mes problèmes ? (environnements, systèmes concernés)
Quelle est ma tendance ? (amélioration ou dégradation)
Quelle est mon urgence ? (dérives critiques à traiter)
Ce type de dashboard peut être implémenté avec des outils comme Grafana, Datadog
ou un simple tableau de bord interne. L'important est qu'il soit visible par
toute l'équipe et mis à jour automatiquement.
Sans état de référence clair, vous ne pouvez pas détecter la dérive.
Documentez et versionnez l'état attendu de vos systèmes.
La dérive est inévitable
Elle arrivera. Le problème n'est pas d'en avoir, c'est de ne pas la détecter.
Automatisez la détection.
Détecter ≠ Corriger aveuglément
Chaque dérive a une cause. Comprenez-la avant d'agir. Parfois, c'est l'état
de référence qu'il faut mettre à jour.
Prévenir vaut mieux que guérir
Automatisez les changements, bloquez les modifications manuelles, formez les
équipes. Une dérive évitée coûte moins cher qu'une dérive corrigée.
Infrastructure as Code est votre meilleur allié
Un système géré par IaC est plus facile à auditer, corriger et reproduire
qu'un système configuré manuellement.
Mesurez pour progresser
Taux de conformité, MTTD, MTTR. Ce qui se mesure s'améliore.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
6 questions
6 min.
70% requis
Informations
Le chronomètre démarre au clic sur Démarrer
Questions à choix multiples, vrai/faux et réponses courtes
Vous pouvez naviguer entre les questions
Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
⏱️--:--
0 / 6
Vérification
(0/0)
--:--
0%
0Correctes
0À revoir
0:00Temps
-Niveau
Score par domaine
Un domaine regroupe plusieurs guides et reçoit plusieurs questions : son score est plus fiable qu'un score par thème, qui porte souvent sur une seule question.
Bilan
Points forts
Aucun sujet réussi à 80 % sur au moins deux questions pour l’instant.