Terraform AzureRM Set-Diff-Analyzer sicher einsetzen

Der Terraform AzureRM Set-Diff-Analyzer erkennt reihenfolgebedingte False-Positive-Diffs in AzureRM-Terraform-Plänen und erleichtert sichere Reviews.

  • Skill Road
  • Terraform AzureRM Set-Diff-Analyzer sicher einsetzen

Veröffentlicht am 09.09.2026

Was der Terraform AzureRM Set-Diff-Analyzer ist

Der Terraform AzureRM Set-Diff-Analyzer ist ein Agent Skill aus dem Repository github/awesome-copilot, der Terraform-Plan-Ausgaben für den AzureRM Provider analysiert und dabei zwischen echten Änderungen und sogenannten False-Positive-Diffs unterscheidet. Terraform zeigt vor einer Änderung mit terraform plan an, welche Ressourcen erstellt, geändert oder gelöscht würden. Bei Azure-Ressourcen gibt es jedoch viele Attribute, die in Terraform als Set modelliert sind. Ein Set ist eine Sammlung, bei der die Reihenfolge fachlich keine Bedeutung hat, im Planvergleich aber trotzdem als große Änderung erscheinen kann, wenn Terraform oder der Provider Elemente intern neu sortiert. Das führt zu dem bekannten Problem, dass eine kleine Änderung, etwa ein neues Listener-Element an einem Application Gateway, so aussieht, als hätten sich zahlreiche andere Elemente ebenfalls geändert. Der Skill hilft dabei, solche rein reihenfolgebedingten Abweichungen zu erkennen und vom tatsächlichen Infrastrukturänderungsrisiko zu trennen.

Voraussetzungen

Laut Skill-Beschreibung wird Python 3.8 oder neuer benötigt. Das Analyse-Skript verwendet nur die Python-Standardbibliothek, sodass keine zusätzlichen Python-Pakete installiert werden müssen. Außerdem braucht man eine Terraform-Plan-Datei und daraus erzeugte JSON-Ausgabe. Der typische Ablauf besteht aus terraform plan -out=plan.tfplan und anschließend terraform show -json plan.tfplan > plan.json. Wichtig ist, dass der Skill auf dem JSON-Plan arbeitet, nicht auf der farbigen Konsolenausgabe, weil nur JSON die Ressourcen, Attribute und Änderungsaktionen maschinenlesbar enthält. Fachlich ist der Skill auf den AzureRM Provider zugeschnitten, also auf Terraform-Konfigurationen, die Microsoft-Azure-Ressourcen verwalten. Besonders relevant ist er bei Ressourcen wie Application Gateway, Load Balancer, Network Security Group, Firewall oder Front Door, bei denen verschachtelte Set-Attribute häufig vorkommen.

Einrichtung Schritt für Schritt

Nach der Installation des Skills in einem kompatiblen Agentenverzeichnis, beispielsweise unter .claude/skills/terraform-azurerm-set-diff-analyzer, wird zunächst ein aktueller Terraform-Plan erzeugt. Anschließend wird der Plan mit terraform show in JSON umgewandelt und an das Python-Skript übergeben. Der in der Skill-Datei dokumentierte Basisaufruf lautet sinngemäß python scripts/analyze_plan.py plan.json, wobei auf manchen Systemen python3 statt python verwendet werden muss. Das Skript vergleicht die geplanten Änderungen mit einer Referenzliste bekannter AzureRM-Set-Attribute, die im Skill unter references/azurerm_set_attributes.md dokumentiert ist. Zusätzlich verweist der Skill auf scripts/README.md für weitere Optionen, Ausgabeformate, Exit Codes und CI/CD-Beispiele. In einer Pipeline kann der Analyzer beispielsweise nach terraform plan laufen und einen Bericht erzeugen, der dem Review-Team erklärt, welche angezeigten Änderungen nur aus Set-Reordering stammen und welche genauer geprüft werden müssen.

Sicherheit und Best Practices

Der Analyzer verändert laut Beschreibung keine Infrastruktur; er liest ausschließlich die JSON-Ausgabe eines Terraform-Plans. Trotzdem kann diese JSON-Datei sensible Informationen enthalten, etwa Ressourcennamen, Netzwerkstrukturen, Tags, Variablenwerte oder Teile von Konfigurationen, die Rückschlüsse auf interne Systeme erlauben. Deshalb sollte plan.json nicht öffentlich hochgeladen, nicht unkontrolliert in CI-Artefakten veröffentlicht und nicht an nicht vertrauenswürdige Agenten weitergegeben werden. In automatisierten Umgebungen ist außerdem wichtig, den Analyzer nicht als Ersatz für terraform plan, Policy-as-Code, manuelle Reviews oder Azure-Berechtigungskontrollen zu missverstehen. Er erklärt Planrauschen, entscheidet aber nicht, ob eine Änderung fachlich erlaubt ist. Gute Praxis ist, die Analyse als zusätzliche Review-Hilfe einzusetzen und echte Änderungen weiterhin anhand des vollständigen Plans, der Modulhistorie und der beabsichtigten Änderung zu bewerten.

Für wen der Skill sinnvoll ist und wo seine Grenzen liegen

Der Skill ist besonders nützlich für Plattformteams, Cloud-Engineering-Teams und DevOps-Gruppen, die umfangreiche Azure-Infrastruktur mit Terraform verwalten und regelmäßig mit unübersichtlichen Plänen kämpfen. Er spart Zeit, weil Reviewer nicht jede scheinbare Änderung manuell darauf prüfen müssen, ob sie nur durch interne Sortierung entstanden ist. Gegenüber generischen Diff-Werkzeugen hat er den Vorteil, dass er die spezifischen AzureRM-Set-Attribute kennt und deshalb kontextbezogener urteilen kann. Seine Grenzen liegen dort, wo Ressourcen oder Attribute nicht in der mitgelieferten Referenzliste abgedeckt sind oder der Plan echte Änderungen enthält, die zufällig neben Reordering-Effekten auftreten. Auch Provider-Versionen können Verhalten ändern, weshalb die Skill-Daten regelmäßig gegen aktuelle AzureRM-Provider-Dokumentation und reale Planergebnisse validiert werden sollten. Als Entscheidungsgrundlage ist der Analyzer hilfreich, aber nicht allein ausreichend, um produktive Infrastrukturänderungen freizugeben.

Veröffentlicht am 09.09.2026

Kategorien

Häufige Fragen

Sind alle großen Diffs harmlos?

Nein. Der Skill hilft bei der Einordnung von Reihenfolgeeffekten, aber echte Set-Änderungen, unbekannte Werte und Ersetzungen müssen separat geprüft werden.

Welche Daten sollte ich schützen?

Plan-JSON kann vertrauliche Infrastrukturdetails enthalten. Verwenden Sie einen genehmigten Arbeitsbereich und speichern oder teilen Sie keine Zugangsdaten, Tokens oder privaten Schlüssel.