Berechtigungen für KI-Agenten in der Infrastruktur für sichere Applies
Berechtigungen für KI-Agenten in der Infrastruktur sollten vor jedem Apply einen geprüften Plan, ein verifiziertes Zielkonto, einen Ablaufzeitpunkt und ein getestetes Rollback binden.

KI-Agenten sollten keine dauerhafte Berechtigung erhalten, die schlicht «Infrastrukturänderungen anwenden» bedeutet. Sie sollten eine eng begrenzte, ablaufende Genehmigung bekommen, um genau eine geprüfte Änderung auf genau ein verifiziertes Zielkonto anzuwenden. Dazu gehört ein Wiederherstellungsverfahren, das ein Operator gelesen und akzeptiert hat.
Ich habe erlebt, wie Teams einen Terraform-Plan mit einer Sicherheitskontrolle und eine Genehmigungsschaltfläche mit einer Entscheidung verwechseln. Beides reicht allein nicht aus. Ein Plan kann für ein anderes Konto neu erstellt werden. Eine Genehmigung kann länger gültig bleiben als ein geänderter Commit. Eine Rollback-Notiz kann «zurücksetzen» sagen, obwohl die Änderung Daten löscht oder eine Abhängigkeit verändert, die nicht mehr existiert.
Die sinnvolle Grenze ist anspruchsvoller: Der Agent stellt Belege zusammen, ein Mensch prüft diese Belege, und der Ausführungspfad verweigert den Start, sobald die Belege die Aktion nicht mehr beschreiben. Das klingt umständlich, bis ein Assistent zum ersten Mal das falsche Cloud-Profil übernimmt, einen veralteten Zustands-Snapshot liest und einen völlig gültigen Befehl auf die Produktion richtet.
Eine Berechtigung muss an eine Aktion gebunden sein, nicht an eine Berufsbezeichnung
Berechtigungen für KI-Agenten in der Infrastruktur sollten eine konkrete Änderung erlauben, keine Kategorie wie «deployen», «Terraform» oder «Produktionsbetrieb». Breite Kategorien wirken praktisch, weil Menschen in Rollen denken. Cloud-APIs führen jedoch Anfragen aus, und Anfragen haben Ziele, Parameter, Identitäten und Folgen.
Eine brauchbare Apply-Genehmigung bindet mindestens diese Fakten:
- Die unveränderliche Quellrevision und das Konfigurationsverzeichnis, mit denen der Plan erstellt wurde.
- Das geprüfte Planartefakt oder seinen SHA-256-Digest.
- Das Zielkonto oder die Mandantenidentität, die das Ausführungszugang meldet.
- Die Ausführungsidentität, Rolle, das Abonnement, Projekt und gegebenenfalls die erlaubte Region.
- Einen Ablaufzeitpunkt und einen Wiederherstellungsverweis, der dem Operator erklärt, was beim Abbruch oder Rückgängigmachen des Apply geschieht.
Der Unterschied zwischen der Berechtigung, eine Änderung zu berechnen, und der Berechtigung, sie auszuführen, ist wichtig. Lass einen Agenten Repositorys prüfen, schreibgeschützte APIs aufrufen, Validierungen ausführen und einen Plan vorschlagen. Behandle diese Tätigkeiten nicht stillschweigend als Beleg dafür, dass er die Produktion ändern darf. Lesezugriff auf die Umgebung gibt oft operative Details preis. Schreibzugriff verändert Kosten, Verfügbarkeit und manchmal auch die Belege, die nach einem Vorfall noch vorhanden sind.
Eine Rolle namens InfrastructureDeployer ist kein Genehmigungsobjekt. Sie ist ein Implementierungsdetail. Wenn sie jederzeit in jedem Konto alles anwenden kann, sobald ein Prozess sie erhält, hängt dein Genehmigungsprozess davon ab, dass Menschen sie korrekt einsetzen. Agenten sind schnell genug, aus diesem Gedächtnistest einen Vorfall zu machen.
Ein geprüfter Plan muss genau das Artefakt sein, das ausgeführt wird
Ein geprüfter Plan ist nur dann wertvoll, wenn der Apply-Befehl genau diesen Plan verwendet. Wird nach der Genehmigung erneut terraform plan ausgeführt, entsteht ein neues Artefakt, selbst wenn die Dateien unverändert aussehen.
Die Terraform-Dokumentation macht diesen Unterschied klar. terraform plan -out=FILE schreibt eine Plandatei, die für terraform apply FILE gedacht ist. terraform apply ohne gespeicherten Plan erstellt dagegen vor der Bestätigung einen neuen Plan. Die zweite Form eignet sich für eine interaktive Sitzung mit einem Menschen. Für einen Agenten-Workflow, bei dem ein Mensch die vorgeschlagenen Änderungen geprüft hat, ist sie falsch.
Verwende einen gespeicherten Plan und stelle ihn für die Prüfung als JSON dar. Eine minimale Shell-Sequenz sieht so aus:
set -euo pipefail
git rev-parse HEAD > evidence/source-revision.txt
terraform init -lockfile=readonly
terraform plan -out=evidence/change.tfplan
terraform show -json evidence/change.tfplan > evidence/change.json
shasum -a 256 evidence/change.tfplan > evidence/change.tfplan.sha256
terraform providers lock -platform=darwin_arm64
Der ausgegebene Digest hat eine einfache Form:
f1f5f2...a94c evidence/change.tfplan
Der Genehmigungsdatensatz sollte den vollständigen Digest übernehmen und nicht nur einen Screenshot des Terminals anhängen. Der Apply-Runner prüft ihn dann vor der Ausführung:
shasum -a 256 -c evidence/change.tfplan.sha256
terraform apply -input=false evidence/change.tfplan
Damit wird ein häufiger Fehler verhindert: Der Agent öffnet einen Pull Request, erstellt einen Plan, erhält einen Genehmigungskommentar, holt anschließend den aktuellen Main-Branch und führt einen neuen Plan aus. Zwischen diesen Aktionen kann ein Kollege eine andere Änderung gemergt haben. Der spätere Plan kann eine Löschung hinzufügen, eine Image-Version wechseln oder auf einen anderen Provider-Alias zeigen. Der Prüfer hat den vorgeschlagenen Graphen von gestern genehmigt, nicht das, was der Runner jetzt sieht.
Ein binärer Terraform-Plan kann vertrauliche Werte enthalten. Füge ihn nicht in Tickets oder Chats ein. Auch die JSON-Darstellung kann je nach Provider-Schema und Werten vertrauliche Informationen offenlegen. Reduziere diese Informationen nur in einem Prüfprozess, den du verstehst. Die Reduktion darf keine Ressourcenadressen, Aktionen, Zielidentität oder Abhängigkeitsänderungen entfernen. Genau diese Fakten braucht die genehmigende Person.
Das Muster mit dem gespeicherten Plan ist besonders stark, wenn auch die Ausführungsumgebung festgelegt ist. Verwende dieselbe Provider-Lockdatei, Terraform-Version, Variablen, Backend-Konfiguration und Workspace-Auswahl, mit denen der Plan erstellt wurde. Ändert sich eine dieser Eingaben, verwerfe den Plan und erstelle ein neues Prüfungspaket. Einen alten Genehmigungsprozess retten zu wollen, verwandelt eine sinnvolle Kontrolle in Theater.
Das benannte Ziel muss aus den Zugangsdaten stammen, nicht aus einem Label
Ein Ziel namens prod beweist fast nichts. Repositorys kopieren Verzeichnisnamen. Workspaces driften auseinander. Umgebungsvariablen bleiben in Shells zurück. Ein Agent kann einer Konfiguration namens Production genau folgen, während er bei einem Sandbox-Konto angemeldet ist, oder schlimmer noch, bei einem Produktionskonto, das über ein geerbtes Profil ausgewählt wurde.
Verlange von der Ausführungsidentität, vor der Planung und unmittelbar vor dem Apply die Cloud-Steuerung zu fragen, wer sie ist. Speichere das Ergebnis im Belegpaket und vergleiche es mit dem genehmigten Ziel.
Für eine AWS-Aktion kann eine Prüfung so schlicht aussehen:
aws sts get-caller-identity --output json > evidence/caller-identity.json
cat evidence/caller-identity.json
Das Ergebnis identifiziert Konto und Principal:
{
"UserId": "AROAXXXXX:apply-run",
"Account": "123456789012",
"Arn": "arn:aws:sts::123456789012:assumed-role/InfraApply/apply-run"
}
Für Google Cloud hältst du aktives Konto und Projekt getrennt fest. Für Azure speicherst du die Abonnement-ID und Mandanten-ID aus dem Zugangskontext. Verlass dich nicht auf den Anzeigenamen eines Cloud-Kontos, da Menschen dieselben Namen mehrfach vergeben können. Numerische oder global eindeutige Kennungen sind weniger angenehm zu lesen, aber deutlich sicherer auszuführen.
Die Prüfung vor dem Apply muss denselben Zugangspfad verwenden wie das Apply. Das klingt selbstverständlich, wird aber von Wrappern oft verletzt. Ein Planungsskript kann eine kurzlebige angenommene Rolle verwenden, während ein späterer Befehl das Standardprofil eines Entwicklers übernimmt. Ein Agent, der einen entfernten Runner aufruft, kann lokal planen, aber remote unter einer Serviceidentität ausführen, die er nie geprüft hat.
Baue eine maschinenprüfbare Zielbehauptung in den Runner ein. Dieses Beispiel verweigert ein unerwartetes AWS-Konto:
expected_account="123456789012"
actual_account="$(aws sts get-caller-identity --query Account --output text)"
if [ "$actual_account" != "$expected_account" ]; then
printf 'refusing apply: expected account %s, got %s\n' \
"$expected_account" "$actual_account" >&2
exit 1
fi
Diese Prüfung ersetzt keine menschliche Kontrolle. Sie fängt eine ganze Klasse von Fehlern ab, bevor ein API-Aufruf die Infrastruktur verändert. Kombiniere sie mit einer Provider-Konfiguration, die das erlaubte Konto oder Abonnement festlegt, sofern der Provider diese Absicherung unterstützt. Eine Prüfung auf Providerebene und eine auf Runner-Ebene scheitern unabhängig voneinander. Genau das ist erwünscht.
Zustandsabweichungen machen alte Genehmigungen unsicher
Ein Plan beschreibt die gewünschte Änderung relativ zu einem bestimmten beobachteten Zustand. Er verspricht nicht, dass dieser Zustand eine Stunde später noch existiert.
Ein anderer Engineer kann deployen. Ein Autoscaler kann Ressourcen hinzufügen oder entfernen. Ein Cloud-Dienst kann eine Verknüpfung rotieren, einen Knoten ersetzen oder einen asynchronen Vorgang abschließen. Terraform erkennt manches davon beim Aktualisieren des Zustands. Die sichere Reaktion auf eine wesentliche Abweichung besteht jedoch nicht darin, fortzufahren, weil der Plan zuvor klein aussah. Erstelle ein neues Artefakt und prüfe den neuen Diff.
Ein Ablaufzeitpunkt fängt vieles davon ab. Mache eine Genehmigung so kurz gültig, dass sich ein Mensch noch daran erinnert, warum er sie akzeptiert hat. Die passende Dauer hängt von eurem Release-Prozess ab, sollte aber ein festgelegtes Ausführungsfenster abdecken und nicht standardmäßig einen ganzen Arbeitstag. Nach Ablauf des Fensters erzwingst du einen neuen Plan, wiederholst die Zielprüfung und verlangst eine neue Genehmigung.
Du brauchst außerdem eine Regel für die Ungültigkeit. Lehne einen Plan ab, wenn sich nach der Prüfung einer dieser Punkte ändert:
- Quellrevision, Variablensatz, Modulreferenz oder Provider-Lockdatei ändern sich.
- Workspace, Backend, Konto, Abonnement, Mandant, Projekt oder Region weichen von den genehmigten Belegen ab.
- Der Plan-Digest stimmt nicht mit dem Genehmigungsdatensatz überein.
- Eine relevante Zustandssperre, Aktualisierung oder Vorbedingung meldet einen Konflikt, der die vorgeschlagene Aktion verändert.
Verwende «keine Änderungen im Pull Request» nicht als Ersatz für diese Regel. Externe Datenquellen, Provider-Standards, der aktuelle Zustand und Zugangsdaten liegen außerhalb des Diffs. Infrastrukturarbeit hat zu viele Eingaben, als dass eine Genehmigung nur anhand der Quelle die gesamte Entscheidung tragen könnte.
Manche Teams versuchen, Abweichungen zu lösen, indem sie dem Agenten erlauben, automatisch neue Pläne zu erstellen, bis der Plan sauber ist. Diese Empfehlung ist beliebt, weil sie Wartezeiten verkürzt. Für wichtige Konten ist sie falsch. Automatische Neuplanung kann aus einer geprüften Änderung einen ungeprüften Ersatz machen. Erlaube automatische Neuplanung meinetwegen für eine schreibgeschützte Vorschau. Vor einer Änderung muss aber erneut ein Mensch prüfen.
Ein Rollback muss einen wiederherstellbaren Zustand beschreiben
Ein klarer Rollback-Pfad erklärt, wie Operatoren den Dienst in einen akzeptablen Zustand zurückbringen, wer das tun kann, welche Daten gefährdet sind und wann sie stoppen müssen. «terraform destroy ausführen» und «den Commit zurücksetzen» erfüllen diesen Maßstab selten.
Infrastrukturänderungen gehören zu unterschiedlichen Wiederherstellungsklassen. Wer sie gleich behandelt, erzeugt falsches Vertrauen.
Eine umkehrbare Konfigurationsänderung, etwa eine Security-Group-Regel oder ein Load-Balancer-Gewicht, kann ein direktes inverses Apply aus einer bekannten guten Revision erlauben. Der Austausch einer Instance Group kann vor dem Zurücksetzen Kapazitätsprüfungen erfordern. Eine Datenbankmigration kann nach dem Schreiben von Daten unumkehrbar sein. Der Wiederherstellungspfad ist dann vielleicht eine Vorwärtsmigration, die Wiederherstellung aus einem geprüften Backup oder ein Feature-Flag, das neue Schreibvorgänge stoppt.
Beschreibe den Rollback-Pfad in der Sprache des Betriebs. Ein brauchbarer Datensatz beantwortet diese Fragen:
- Welche beobachtbare Bedingung löst das Rollback aus, etwa fehlgeschlagene Health Checks, steigende Fehlerraten oder ein fehlgeschlagener Smoke-Test?
- Welche genaue Revision, welcher Parametersatz oder welcher Befehl bringt den Dienst in die bekannte gute Konfiguration zurück?
- Welche Voraussetzung muss zuerst erfüllt sein, etwa ein Backup-Wiederherstellungspunkt, freie Kapazität oder ein genehmigtes Wartungsfenster?
- Wer darf handeln, wenn die Agentensitzung beendet oder die ursprünglich genehmigende Person nicht verfügbar ist?
- Was kann nicht automatisch wiederhergestellt werden, etwa Datensätze, Geheimnisse, öffentliche Adressen oder manuelle Cloud-Änderungen?
Ein Wiederherstellungspfad muss vor dem Vorfall getestet werden, nicht währenddessen in einem optimistischen Satz stehen. Wenn ein Team eine Änderung als umkehrbar bezeichnet, sollte es die Umkehrung in einer repräsentativen Umgebung ausführen und die Bedingungen dokumentieren, unter denen sie funktioniert hat. Provider behalten gelöschte Ressourcennamen möglicherweise zurück, Quoten können eine Neuerstellung verhindern und abhängige Dienste können einen alten Endpunkt zwischenspeichern. Solche Details treten unter Druck zutage.
Für destruktive Änderungen ist eine separate Entscheidung nötig. Eine Ressource nach einer Planprüfung zu löschen, ist nicht dasselbe wie sie zu aktualisieren. Der Agent sollte Löschadressen, Ersetzungsaktionen, Aufbewahrungseinstellungen und Backup-Belege so hervorheben, dass sie nicht zwischen Hunderten harmloser Änderungen verschwinden. Enthält die Änderung eine Datenbank, einen Objektspeicher, eine Identitätsbindung, eine Netzwerkgrenze oder eine DNS-Zone, sollte der Verantwortliche für die Wiederherstellung den Plan gelesen haben.
Der Apply-Runner sollte Unklarheiten ablehnen
Der Runner, der die Änderung ausführt, muss die Genehmigungsfakten selbst durchsetzen. Ein Bot, der eine Chatnachricht mit «los geht's» erhalten kann, hat keine zuverlässige Möglichkeit, eine bestätigte Planung von einer beiläufigen Anweisung zu unterscheiden.
Verwende einen strukturierten Genehmigungsdatensatz. Er kann in einem signierten Deploymentsystem, einem geschützten Repository-Datensatz oder einem anderen kontrollierten Speicher liegen. Die Wahl des Speichers ist weniger wichtig als die Felder und ihre Prüfung. Dieses beispielhafte JSON zeigt die Form:
{
"change_id": "infra-2025-041",
"source_revision": "4ad7d2f",
"plan_sha256": "f1f5f2...a94c",
"target": {
"cloud": "aws",
"account_id": "123456789012",
"region": "us-east-1",
"workspace": "production"
},
"approved_by": "operator-id",
"expires_at": "2025-04-18T15:30:00Z",
"rollback_ref": "runbook: payments-api capacity revert"
}
Der Agent kann diese Anfrage zusammenstellen, sollte aber approved_by nicht selbst ausfüllen und expires_at nicht verlängern können. Der Genehmigungsdienst ergänzt diese Fakten, nachdem eine Person die dargestellte Änderung gesehen hat. Der Apply-Runner liest den Datensatz, berechnet den Plan-Digest neu, prüft Quellrevision und Zielidentität und markiert die Genehmigung als verbraucht, bevor er den ersten Schreibaufruf sendet.
Eine Genehmigung zu verbrauchen ist wichtig. Ohne diesen Schritt kann ein Agent eine genehmigte Aktion später erneut versuchen, nachdem sich die Umgebung verändert hat. Auch ein fehlgeschlagenes Apply braucht einen eindeutigen Status. Markiere es nicht allein deshalb als abgeschlossen, weil der Runner einen Befehl ausgegeben hat. Halte fest, ob Terraform Erfolg meldete, ob ein Cloud-API-Vorgang noch läuft und ob ein Operator den resultierenden Zustand akzeptiert hat.
Halte die Schreibfläche des Agenten klein. Für Deployment-APIs oder SSH-Zugriff auf einen kontrollierten Runner braucht er vielleicht HTTP-Aufrufe. Einen wiederverwendbaren Cloud-Schlüssel sollte er aber niemals in seinem Kontext erhalten. Sallyport bewahrt API- und SSH-Zugangsdaten in seinem verschlüsselten Tresor auf, führt die gewünschte Aktion aus und gibt das Ergebnis an den Agenten zurück. Das erschwert das Kopieren von Zugangsdaten, macht eine unklare Apply-Anfrage aber nicht sicher.
Eine Genehmigung pro Aufruf gehört an die gefährliche Grenze
Eine Genehmigung pro Aufruf hat in der Infrastrukturarbeit ihren Platz, kann aber die Artefaktprüfung nicht ersetzen. Wenn ein Agent für jeden Cloud-API-Aufruf um Erlaubnis bittet, genehmigen Operatoren schnell eine lange Folge von Aktionen, ohne das Gesamtergebnis zu verstehen. Das ist Genehmigungsmüdigkeit. Sie bringt Menschen dazu, die einzige Kontrolle, die sie haben, einfach wegzuklicken.
Setze den menschlichen Eingriff dort an, wo er eine sinnvolle Entscheidung trifft: bei der Genehmigung eines an ein Ziel gebundenen Plans und anschließend bei der Freigabe des begrenzten Apply-Laufs. Einzelne Bestätigungen eignen sich für Aktionen mit ungewöhnlich großer Reichweite, etwa die Rotation von Geheimnissen, das Löschen eines geschützten Objekts, Break-Glass-Zugriff oder einen Befehl außerhalb des erwarteten Runner-Vertrags.
Sallyports sitzungsbezogene Autorisierung kann festlegen, dass ein bestimmter Agentenprozess während seines aktuellen Laufs einen Aktionskanal verwenden darf. Schlüssel pro Aufruf können zusätzlich eine eigene Bestätigung für sensible Zugangsdaten verlangen. Das ist eine klare Grenze für Zugangsdaten. Dein Deployment-Workflow muss trotzdem festlegen, welcher Aufruf als genehmigtes Apply zählt und für welche Zugangsdaten eine Bestätigung pro Aufruf sinnvoll ist.
Ein Mensch sollte genügend Belege sehen, um eine Entscheidung zu treffen, ohne den gesamten Provider-Datenverkehr lesen zu müssen. Zeige nach Aktion gruppierte Ressourcenadressen, Ersetzungen und Löschungen getrennt, Zielidentität, Quellrevision, Digest, Ablaufzeitpunkt und Wiederherstellungsverweis. Stelle demjenigen, der sie braucht, zusätzlich den vollständigen Plan bereit. Eine destruktive Änderung unter hundert Aktualisierungen zu verstecken, ist ein Darstellungsfehler, kein Fehler des Operators.
Ein fehlgeschlagenes Apply erfordert eine andere Entscheidung als ein erfolgreiches
Terraform kann einen Fehler zurückgeben, nachdem es bereits mehrere Ressourcen geändert hat. Cloud-Steuerungen können einen Antrag außerdem annehmen und erst später abschließen. Jeden Exit-Status ungleich null als «es ist nichts passiert» zu behandeln, gehört zu den gefährlichsten Gewohnheiten im automatisierten Betrieb.
Wenn ein Apply fehlschlägt, friere automatische Wiederholungen ein. Sichere die Runner-Ausgabe, Informationen zur Zustandssperre, die Zielidentität und die Teilmenge der Ressourcen, die abgeschlossen wurden. Prüfe anschließend die tatsächliche Umgebung, bevor du eine Reaktion wählst. Ein blindes Wiederholen kann einen Teilerfolg verschlimmern, während ein sofortiges Rollback eine Zwischenressource entfernen kann, die der Provider noch erstellt.
Verwende diese Entscheidungsfolge:
- Bestätige die aktuelle Cloud-Identität und ermittle den tatsächlichen Status jeder Ressource, die im fehlgeschlagenen Vorgang genannt wurde.
- Bestimme, ob der gewünschte Zustand sicher fertiggestellt, sicher zurückgesetzt oder nur mit einem Reparaturplan erreicht werden kann.
- Erstelle aus dem aktuellen Zustand einen neuen Plan und lass ihn als neue Änderung von einem Operator prüfen.
- Dokumentiere die Vorfallentscheidung neben der ursprünglichen Genehmigung, einschließlich aller manuellen Aktionen, die Terraform nicht abbilden kann.
Hier zeigen Audit-Datensätze ihren Wert. Bewahre Quellrevision, Plan-Digest, Genehmigungsidentität, Zielbelege, Befehlsprotokoll, resultierenden Zustand und Folgeentscheidung gemeinsam auf. Eine manipulationssichere Ereignisspur ist besser als Screenshots in verschiedenen Chatthreads, weil Einsatzkräfte die Reihenfolge feststellen müssen und nicht die Absicht aus Erinnerungen rekonstruieren sollten.
Versprich nicht, dass die Automatisierung jedes fehlgeschlagene Apply rückgängig machen kann. Manche Änderungen erfordern einen Menschen, der Dienstabhängigkeiten, Datenbeständigkeit und Auswirkungen auf Kunden versteht. Der Agent kann Belege schnell sammeln. Er sollte keine Wiederherstellungsaktion erfinden, nur weil die Pipeline ein grünes Ergebnis erwartet.
Der erste Produktions-Rollout sollte bewusst langweilig sein
Das erste von einem Agenten vermittelte Produktions-Apply sollte klein, umkehrbar und gut beobachtbar sein. Wähle eine bekannte Konfigurationsanpassung mit einem bereits getesteten Wiederherstellungsverfahren, keine Migration, keine Neugestaltung des Netzwerks und keine Geheimnisrotation, die mehrere Verbraucher betrifft.
Führe den vollständigen Ablauf unter normalen Bedingungen aus: Erstelle das Belegpaket, prüfe das exakte Konto, kontrolliere den dargestellten Plan, genehmige den Digest, führe das gespeicherte Artefakt aus, prüfe das Ergebnis und verbrauche die Genehmigung. Führe anschließend eine kontrollierte Fehlerübung durch. Lass eine Genehmigung ablaufen, ändere die Quellrevision oder richte den Runner auf ein nicht genehmigtes Konto und bestätige, dass er die Aktion verweigert.
Diese Verweigerungstests sind wichtiger als ein erfolgreicher Ablauf. Jedes Tool wirkt diszipliniert, wenn Konto, Plan und Zustand zufällig übereinstimmen. Die Kontrolle beweist sich, wenn ein gestresster Operator, ein veraltetes Artefakt oder ein verwirrter Agent etwas Falsches verlangt und sie stoppt.
Erweitere das Berechtigungsmodell nicht nur deshalb, weil der erste Rollout langsam wirkt. Miss, wo die Prüfzeit anfällt. Wenn Menschen Zeit mit dem Vergleich von Konto-IDs verbringen, verbessere die Darstellung der Belege. Wenn Pläne zu viele nicht zusammengehörige Änderungen enthalten, korrigiere Modulverantwortung oder Zustandsgrenzen. Wenn Rollback-Notizen schwach sind, sollten Serviceteams sie schreiben und testen. Breiter dauerhafter Zugriff ist kein Heilmittel für einen umständlichen Release-Prozess. Er versteckt die Schwäche nur, bis ein Agent auf sie stößt.
FAQ
Darf ein KI-Agent Terraform apply ausführen?
Gib dem Agenten die Berechtigung, den Plan zu erstellen, die Zielumgebung zu lesen und den Apply-Antrag vorzubereiten. Das eigentliche Apply bleibt hinter einer menschlichen Genehmigung, die ein geprüftes Artefakt, ein Konto und eine kurze Gültigkeitsdauer bindet. Eine Planprüfung ohne Bindung an das Apply ist nur eine Besprechung.
Was muss eine Genehmigung für ein Infrastruktur-Apply enthalten?
Das sicherste praktikable Muster genehmigt einen bestimmten Plan-Digest, die Kennung des Zielkontos, den Workspace oder das Abonnement sowie einen Ablaufzeitpunkt. Der Apply-Prozess muss ein abweichendes Artefakt ablehnen. Eine allgemeine Genehmigung wie «Production-Deployment» lässt zu viel Raum für Abweichungen.
Reicht eine Terraform-Plan-Datei zur Genehmigung eines Deployments aus?
Ein gespeicherter Terraform-Plan ist nur dann hilfreich, wenn sich nachweisen lässt, welche Konfiguration, Providerauswahl, Zustandsdaten und Variablen ihn erzeugt haben. Speichere den Binärplan oder eine geprüfte JSON-Darstellung und binde die Genehmigung an seinen kryptografischen Digest. Wird der Plan nach der Genehmigung neu erstellt, verfehlt das den Zweck, weil sich die Änderungen inzwischen verändert haben können.
Wie kann ich nachweisen, welches Cloud-Konto ein Agent ändern wird?
Die Kontoidentität muss aus der Cloud-Steuerung oder einem vertrauenswürdigen Befehl zur Prüfung der Zugangsdaten stammen, nicht aus einem Variablennamen im Repository. Lass die ausführende Identität Konto, Mandant, Projekt, Abonnement, Rolle und Region melden, bevor der Agent die Genehmigung anfordert. Bezeichnungen können täuschen. Eine aus den Zugangsdaten abgeleitete Identität lässt sich schwerer verwechseln.
Braucht jede Infrastrukturänderung ein automatisches Rollback?
Nein. Für jedes Rollout braucht es eine Wiederherstellungsmethode, aber diese hängt von der Änderung ab. Eine Migration des Datenbankschemas erfordert möglicherweise eine getestete Vorwärtskorrektur oder Wiederherstellung. Eine Anpassung einer Security-Group lässt sich dagegen vielleicht direkt rückgängig machen. Tu nicht so, als hätte jede Änderung eine automatische Rückgängig-Schaltfläche.
Sollten Planung und Apply unterschiedliche Cloud-Zugangsdaten verwenden?
Trenne Planungs- und Apply-Zugangsdaten, wann immer die Cloud-Plattform das erlaubt. Planungszugang kann Zustände lesen und Ressourcen erkennen, während Apply-Zugang Änderungen vornimmt. Das begrenzt den Schaden, wenn ein Agent den falschen Befehl ausführt. Die Genehmigungsgrenze für das Apply bleibt trotzdem wichtig.
Wann sollte ein Agent einen Infrastrukturplan neu erstellen?
Ein neuer Plan ist sinnvoll, wenn die ursprüngliche Genehmigung abgelaufen ist, sich der Quell-Commit geändert hat, der Zustand relevant verändert wurde, Providerversionen gewechselt haben oder sich die Zielidentität geändert hat. Ein Plan kann veralten, obwohl der Agent nichts falsch gemacht hat, weil ein anderer Operator die Umgebung geändert hat. Betrachte einen Plan als zeitlich begrenzte Aussage, nicht als dauerhafte Erlaubnis.
Warum sind dauerhafte Cloud-Administratorzugänge für Agenten unsicher?
Gib einem Agenten nicht allein deshalb dauerhaften Administratorzugang, weil er gelegentlich deployen muss. Verwende nach der Genehmigung einen eng begrenzten, kurzlebigen Ausführungszugang und widerrufe ihn anschließend oder lass ihn ablaufen. Dauerhafte Berechtigungen machen aus jeder Prompt-Injection und jedem Toolfehler ein Problem mit Produktionszugriff.
Welche Audit-Daten sollte ein KI-Infrastrukturdeployment aufbewahren?
Halte den geprüften Plan-Digest, den Quell-Commit, die ausführende Identität, das Zielkonto, die genehmigende Person, Zeitstempel, das Befehlsergebnis und jede Notfallüberschreibung fest. Bewahre diese Daten so auf, dass Operatoren sie nach einem Vorfall abrufen können. Eine Chatnachricht mit «genehmigt» reicht nicht als Beleg, wenn sich das Konto später geändert hat.
Kann Sallyport Infrastrukturaktionen von KI-Agenten kontrollieren?
Sallyport kann API- und SSH-Zugangsdaten von einem MCP-fähigen Agenten fernhalten und vor der Ausführung eine sitzungsbezogene Genehmigung oder eine Genehmigung pro Aufruf verlangen. Die Bindung an den geprüften Plan, die Prüfung des Zielkontos und die Rollback-Nachweise müssen trotzdem in deinem Deployment-Ablauf definiert werden. Kein Zugangsdaten-Gateway kann diese Punkte aus einer vagen Anfrage zuverlässig ableiten.