Terraform 1.17.0 est sorti le 21 octobre 2026. Le changelog met en avant le passage en disponibilité générale de Terraform Policy — logique, c’est la fonctionnalité qu’on suivait depuis la bêta début octobre. Mais la ligne la plus importante de ce changelog n’a rien à voir avec les policies : c’est celle qui dit que le binaire est désormais compilé avec Go 1.26.10, pour ne plus faire confiance à des certificats d’autorité de certification compromis.
Terraform Policy quitte l’expérimental
On avait couvert la bêta de cette fonctionnalité dans notre article sur Terraform 1.17 et ses policies HCL le 14 octobre. Deux semaines plus tard, le flag -policies disponible sur plan, apply et query n’a plus besoin d’un build expérimental ni du flag -allow-experimental-features — il est utilisable en production sans réserve.
Les policies s’écrivent en HCL, dans des fichiers .policy.hcl — pas de nouveau langage à apprendre si tu connais déjà Terraform. La nouveauté de cette version concerne surtout query : les policies évaluées sur les ressources découvertes par un bloc list renvoient désormais correctement les statuts Unknown et N/A au lieu de résultats incohérents, un bug corrigé entre la bêta et le GA. La documentation officielle de Terraform Policy détaille la syntaxe complète si tu veux écrire tes premières règles.
Pour qui venait de Sentinel ou d’OPA/Conftest en externe, l’intérêt n’est pas la puissance du langage — HCL reste plus limité qu’un vrai langage de politique comme Rego — mais l’intégration native : pas de binaire tiers à installer, pas de pipeline séparé à maintenir pour une politique simple de type « interdire les buckets publics » ou « exiger un tag owner« .
-minimal-refresh : une option de planification à tester
Moins visible dans les annonces, mais potentiellement plus utile au quotidien pour qui gère un state volumineux : la nouvelle option -minimal-refresh sur terraform plan limite le rafraîchissement aux seules ressources qui ont des changements proposés, au lieu de rafraîchir l’intégralité du state à chaque plan. Sur un state de plusieurs centaines de ressources où la majorité ne bouge jamais entre deux applies, ça peut réduire significativement le nombre d’appels API et le temps de plan — à vérifier sur ton propre state plutôt qu’à prendre pour argent comptant, le gain dépend entièrement de la proportion de ressources réellement stables.
Le vrai sujet caché dans le changelog : les clés CA d’eMudhra
Voici ce qui justifie une mise à jour même si tu n’utilises ni les policies ni -minimal-refresh. Le 17 octobre 2026, le chercheur Wayne a découvert que huit certificats intermédiaires de l’autorité de certification eMudhra utilisaient des clés privées P-384 anormalement faibles — récupérables en testant seulement 256 possibilités. Un autre chercheur, Flüpke, a publié l’une de ces clés sur GitHub pour démontrer le problème ; elle correspondait bien à un certificat révoqué.
La cause : une erreur de script chez eMudhra a généré un second jeu de clés plus faibles en avril 2025, sélectionné par erreur pour la signature parce que ses libellés ressemblaient à ceux du bon jeu. Certains de ces certificats avaient même été soumis à Sectigo pour une cross-signature, élargissant la surface d’impact potentielle. eMudhra affirme que la plupart des intermédiaires concernés n’ont jamais servi en production et n’a trouvé aucune preuve qu’ils aient émis des certificats pour des utilisateurs finaux — mais la fenêtre d’exposition théorique court depuis avril 2025, sans garantie que personne n’en a profité.
La réaction en cascade a été rapide : eMudhra a révoqué les huit certificats et arrêté l’émission sous sa racine G3, Mozilla a bloqué les certificats via OneCRL le 17 octobre puis sorti Firefox 158.0.1 le 20, Chrome a bloqué six intermédiaires le 17, Apple a ajouté ses propres protections le 22. L’équipe Go a réagi dans le même mouvement avec les versions 1.27.3 et 1.26.10, qui corrigent CVE-2026-111943 en retirant la confiance envers ces clés compromises. C’est cette version de Go — 1.26.10 — qui compile désormais Terraform 1.17.0, comme le détaille le changelog officiel sur GitHub.
Le point à retenir ne se limite pas à Terraform : si tu as d’autres binaires Go dans ta chaîne d’outils (Docker, kubectl, Vault, ta propre CLI interne…), ils méritent la même vérification. Le détail complet de l’incident, timeline comprise, est couvert par BleepingComputer.
Faut-il migrer tout de suite ?
Pour un projet neuf, oui, sans hésiter : rien dans les notes de version ne signale de changement cassant, et les corrections de bugs de cette 1.17.0 (panique évitée sur les fonctions pow/log en cas de résultat infini, ordre déterministe du nettoyage des tests, diagnostics d’ephemeral resources enfin affichés au lieu d’être silencieusement perdus) sont toutes dans le sens de la stabilité, pas de la rupture.
Pour un parc existant, la priorité dépend de ton usage : si tu es sur OpenTofu plutôt que Terraform, le sujet policies ne te concerne pas directement — on a détaillé les différences d’approche sur le chiffrement de state dans notre article sur OpenTofu 1.13 face à Terraform. Mais le correctif Go pour eMudhra, lui, concerne tout le monde qui fait confiance à un binaire Terraform pour parler en TLS à un provider cloud.
FAQ
Terraform Policy remplace-t-il Sentinel ou OPA ?
Pas vraiment, plutôt une alternative native pour les cas simples. Sentinel reste propre à HCP Terraform/Terraform Enterprise, et OPA/Rego offre un langage de politique nettement plus expressif pour des règles complexes multi-ressources.
Je n’utilise pas les policies, dois-je mettre à jour quand même ?
Oui, pour le correctif Go lié à eMudhra. Si ton binaire Terraform communique en TLS avec un provider cloud, la version du runtime Go avec laquelle il a été compilé a une importance directe sur la confiance accordée à certains certificats.
Le chiffrement de state a-t-il changé dans cette version ?
Non, les notes de version de la 1.17.0 ne mentionnent aucune évolution sur ce point — la fonctionnalité de chiffrement de state existante n’est pas modifiée par cette sortie.
En pratique
terraform version te donne la version installée et le runtime Go associé en quelques secondes. Si tu gères plusieurs postes ou plusieurs runners CI, c’est le bon moment pour vérifier lesquels tournent encore sur un Go antérieur à 1.26.10 ou 1.27.3 — pas seulement pour Terraform, mais pour tout ce que ta chaîne d’outils fait tourner en Go.








