Ich bat KI, meine Terraform zu schreiben. Ein Realitätscheck
Sieht gut aus, läuft gut und öffnet Ihre Datenbank für die Welt. Was fangen die Linters, was die KI nicht.
Sieht gut aus, läuft gut und öffnet Ihre Datenbank für die Welt. Was fangen die Linters, was die KI nicht.

In Nimmt mir KI meinen DevOps-Job weg? Ich warnte, dass KI Konfigurationen schreibt, die perfekt aussehen und subtil kaputt sind. Eine Erlaubnis, die viel zu offen ist. Eine Einstellung, die bei Tests funktioniert und unter echtem Verkehr umfällt.
Das ist leicht zu sagen. Dieser Beitrag zeigt, wie es tatsächlich aussieht und wie ich es verhindern kann, dass es in Produktion geht.
Hier ist die Art von Anfrage, die ich einem KI-Assistenten an einem normalen Tag geben würde:
"Schreiben Sie Terraform für eine AWS PostgreSQL-Datenbank für eine kleine Web-App, plus eine Sicherheitsgruppe, damit sich die App verbinden kann".
Kurz, realistisch und fehlt viel Kontext. Genau so schreiben die meisten von uns Anweisungen.
Die Antwort ist normalerweise ein sauberer, gut formatierter Block Terraform. Es erstellt eine RDS-Instanz, eine Sicherheitsgruppe und einige Variablen. Es funktioniert wahrscheinlich beim ersten Versuch. Aber es umfasst oft mehrere dieser Fragen:
resource "aws_security_group" "db" {
name = "db-sg"
ingress {
from_port = 5432
to_port = 5432
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"] # anyone on the internet
}
}
resource "aws_db_instance" "main" {
engine = "postgres"
instance_class = "db.t3.micro"
allocated_storage = 20
username = "admin"
password = "ChangeMe123!" # hardcoded secret
publicly_accessible = true
skip_final_snapshot = true
}
Hier ist nichts ein Syntaxfehler. terraform plan ist glücklich. Und doch:
0.0.0.0/0 am Hafen 5432 und publicly_accessible = true- Ich weiß . Die App brauchte Zugang, nicht die Welt.storage_encrypted fehlt).skip_final_snapshot = true bedeutet, dass das Löschen der Ressource Ihre Daten ohne Schnappschuss löscht.terraform destroy Und es ist weg.Um fair zu sein, wenn man die KI fragt: "Ist das sicher?", findet sie normalerweise die meisten dieser Probleme. Aber das ist der Punkt: Sie gab Ihnen zuerst die unsichere Version, und das mit Selbstvertrauen.
KI schreibt Terraform wie ein Tutorial: optimiert, um beim ersten Versuch zu arbeiten, nicht um ein Audit zu überleben.
Hier verdienen langweilige Werkzeuge ihren Platz. Ich habe diesen Code durchlaufen:
terraform validate und terraform fmt: Syntax und Formatierung. Notwendig, aber sie erkennen keine der Sicherheitsprobleme oben.Was sie nicht verstehen, ist, ob das Design den Bedürfnissen Ihrer Firma entspricht. Sollte das stattdessen Aurora sein? - Ich weiß . db.t3.micro Wirkliches Verkehrswesen? Gehört es in dieses VPC? Dafür braucht man einen Menschen, der den Kontext kennt.
terraform test oder ein politischer Test für die Regeln, die niemals gebrochen werden dürfen.Noch besser: Richten Sie die KI auf Ihre vorhandenen, überprüften Module, anstatt sie Rohressourcen schreiben zu lassen. "Verwenden Sie unsere rds-postgres Modul" erzeugt viel sicherere Ergebnisse als "schreibe mir eine Datenbank".
- Ja, das ist es. Es spart Zeit für Boilerplate, wenn man unbekannten Code neu strukturiert und erklärt. Betrachten Sie seine Ausgabe einfach nie als fertig. Sie müssen es durch die gleiche Pipeline bringen, wie Sie es bei der ersten Anfrage eines neuen Kollegen tun würden, denn das ist ungefähr das, was es ist.
Meine Meinung: KI ist ein großartiger Erstausschreiber für Infrastruktur. Ihre Linters, Ihre Richtlinien und Ihre Rezension sind die Redakteure, und in der Infrastruktur ist der Redakteur am wichtigsten.
Desly