Quelqu'un a corrigé un problème en production en cliquant dans la console, mais l'infrastructure est gérée par Terraform. Quel est le problème et le correctif ?
Réponse courte
Le changement manuel dans la console est une dérive de configuration : le prochain terraform apply peut annuler silencieusement le correctif, et le changement a aussi contourné la revue et l'audit. Réconciliez-le en codifiant le changement dans Terraform, en lançant plan/apply pour que le code et la réalité concordent, et en ajoutant des garde-fous contre les modifications ad hoc dans la console (accès console au moindre privilège, SCP, détection de dérive). Ne rien faire laisse une mine pour le prochain apply. Supprimer l'état Terraform est destructeur et peut orpheliner ou dupliquer des ressources. Abandonner Terraform sacrifie reproductibilité, revue et pistes d'audit.
C'est un scénario de gouvernance déguisé en question Terraform. L'examinateur vérifie si vous comprenez que l'infrastructure-as-code est la source de vérité, et qu'un changement hors bande rompt discrètement ce contrat — même quand le changement « fonctionne ».
Pourquoi le changement est un problème
Terraform réconcilie l'infrastructure réelle avec l'état et le code. Un correctif manuel dans la console qui n'est pas dans le code est une dérive : le prochain terraform apply (lancé par n'importe qui, pour un changement sans rapport) comparera le monde au code, verra la différence et annulera silencieusement votre correctif — risquant de recasser la production au pire moment. Par ailleurs, le changement via la console a contourné tout le cadre de contrôle : pas de pull request, pas de revue par les pairs, pas de trace d'audit indiquant qui a changé quoi et pourquoi. Vous avez donc à la fois une bombe à retardement technique et une faille de processus.
Le bon correctif
Réconciliez la réalité avec le code : écrivez le changement dans Terraform, lancez terraform plan pour confirmer qu'il n'affiche plus de différence, et apply pour que code et réalité concordent (en utilisant import si Terraform ne suit pas encore la ressource). Ajoutez ensuite des garde-fous pour que cela ne se reproduise pas : accès console au moindre privilège (lecture seule en prod pour la plupart des gens), des SCP qui bloquent les mutations directes risquées, et une détection de dérive automatisée qui alerte quand la réalité diverge du code.
Pourquoi les distracteurs sont dangereux
- « Rien — ça marche maintenant. » Ça marche jusqu'au prochain apply qui l'annule. Vous avez laissé une mine.
- Supprimer l'état Terraform. L'état est la carte de ce que Terraform gère. Le supprimer ne « corrige » pas la différence — cela fait oublier à Terraform des ressources existantes, menant à de l'infrastructure orpheline ou à des tentatives de recréer ce qui existe déjà. C'est l'une des actions les plus destructrices possibles.
- Arrêter d'utiliser Terraform. Abandonner l'IaC pour éviter la dérive sacrifie reproductibilité, revue et audit — précisément ce qui rend la production sûre à modifier.
Ce que recherchent les examinateurs
Reconnaître la dérive et le risque d'annulation silencieuse, codifier le correctif (avec import au besoin), et ajouter des garde-fous préventifs plutôt que de blâmer la personne qui a cliqué.
Questions de suivi probables
- Comment intégreriez-vous en toute sécurité le changement manuel dans Terraform sans recréer la ressource ?
- Quels garde-fous préviennent ou détectent réellement la dérive de console en production ?
- Pourquoi supprimer ou éditer à la main le fichier d'état est-il si dangereux ?