Aktions-Gateway für KI-Agenten: fünf Anzeichen, dass du eines brauchst
Ein Aktions-Gateway für KI-Agenten hält Zugangsdaten vom Coding-Agenten fern, klärt Genehmigungen und protokolliert jede HTTP- oder SSH-Aktion.

Ein KI-Coding-Agent braucht ein Aktions-Gateway, sobald er außerhalb seines Arbeitsbereichs mit einer Berechtigung handeln kann, die niemand eindeutig prüfen, genehmigen oder widerrufen kann. Das Warnsignal ist nicht, dass der Agent Code schreibt. Problematisch wird es, wenn er ein Zugangstoken verwenden, einen gehosteten Dienst ändern oder eine SSH-Sitzung öffnen kann, nachdem jemand ein Geheimnis in seinen Kontext kopiert und diese Einrichtung als ausreichend betrachtet hat.
Teams sprechen oft erst nach einem Beinahevorfall von einem Problem mit dem Aktions-Gateway für KI-Agenten. Ein Token taucht in einem Chatprotokoll auf. Ein Coding-Lauf verwendet das Produktionskonto für Deployments, weil es das einzige verfügbare Konto war. Jemand fragt, wer eine Datenbankänderung genehmigt hat, und die Antwort besteht aus einer losen Kette von Nachrichten und einer gemeinsam genutzten Terminalsitzung. Das sind keine reinen Dokumentationsfehler. Sie zeigen, dass das Team einem nicht vertrauenswürdigen Prozess operative Berechtigungen gegeben hat, ohne eine brauchbare Grenze darum zu ziehen.
Ein Gateway macht einen Agenten nicht sicher, indem es beurteilt, ob jeder Befehl moralisch vertretbar ist. Das wäre das falsche Versprechen. Es hält Zugangsdaten vom Agenten fern, setzt an sinnvollen Stellen eine menschliche Entscheidung voraus und hinterlässt einen Datensatz, mit dem ein Operator nachvollziehen kann, was geschehen ist, ohne den Vorfall aus dem Gedächtnis rekonstruieren zu müssen. Wenn dir die folgenden Anzeichen bekannt vorkommen, hat der direkte Zugriff auf Zugangsdaten seinen praktischen Nutzen bereits überlebt.
Kopierte API-Schlüssel gehören zum normalen Setup
Ein Agent braucht eine eigene Aktionsgrenze, sobald Entwickler API-Schlüssel in Prompts, Umgebungsdateien, Terminalsitzungen oder die Agentenkonfiguration kopieren, um ihre Arbeit zu erledigen. Diese Gewohnheit wirkt harmlos, weil der erste Lauf häufig genau das tut, was der Entwickler verlangt. Gleichzeitig entstehen Kopien an Orten, die nie für Produktionsberechtigungen gedacht waren.
Ein Zugangsdatenwert im Agentenkontext kann über mehr Wege nach außen gelangen als über den ursprünglichen Prompt. Der Agent kann ihn in einem Befehl wiederholen, in eine Konfigurationsdatei schreiben, in einen Fehlerbericht aufnehmen, in erzeugte Dokumentation einfügen oder beim Erklären eines Fehlers offenlegen. Terminalausgabe, Shell-Historie, Prozessumgebungen, CI-Logs, Backups und Support-Screenshots erzeugen weitere Kopien. Eine einzelne sichtbare Nachricht zu schwärzen, entfernt diese Kopien nicht.
Die Unterscheidung, die Teams oft verwischen, ist einfach: Ein Agent, der ein Geheimnis verwendet, ist etwas anderes als ein Agent, der ein Geheimnis besitzt. Ein Browser kann eine Zahlung absenden, ohne dass jede Skriptdatei auf der Seite die Kartennummer erhält. Dieselbe Trennung ist auch bei einem Agenten möglich. Er kann mit einem beschriebenen Payload POST /deployments anfordern, während ein vertrauenswürdiger Executor die Zugangsdaten einfügt und die Antwort zurückgibt.
Akzeptiere keine Scheinlösung, bei der das System API_KEY=... durch ${SECRET_NAME} ersetzt und den Platzhalter anschließend innerhalb des Agentenprozesses auflöst. Der Klartext gelangt weiterhin in denselben Prozess. Eine kompromittierte Erweiterung, eine schädliche Anweisung in einem Repository oder eine übereifrige Debug-Ausgabe kann ihn abrufen.
Eine sicherere Anfragegrenze sieht so aus:
{
"channel": "http",
"credential": "deploy-service",
"method": "POST",
"url": "https://api.example.internal/deployments",
"headers": {"content-type": "application/json"},
"body": {"service": "catalog", "revision": "a1b2c3d"}
}
Der Agent sieht Endpunkt, Payload, Genehmigungsstatus und Antwort. Das Bearer-Token, das die Anfrage autorisiert, sieht er nie. Dieser Unterschied ermöglicht es, Zugangsdaten zu wechseln, ohne gleichzeitig Prompts und lokale Arbeitskopien nach geleakten Kopien durchsuchen zu müssen.
Sobald ein Schlüssel in einen Agentenkontext gelangt ist, behandle ihn als offengelegt. Widerrufe oder ersetze ihn, prüfe die Ziele, an denen der Lauf Ausgaben protokolliert hat, und entferne das Muster mit direkten Geheimnissen. Teams verzögern den Austausch manchmal, weil sie nicht beweisen können, dass das Token abgeflossen ist. Du brauchst keinen Beweis, dass eine kopierte Zugangsinformation gestohlen wurde. Du musst erkennen, dass du nicht mehr kontrollierst, wo sie sich befindet.
Gemeinsame Konten verbergen, wer die Änderung vorgenommen hat
Ein Agent braucht ein Aktions-Gateway, wenn er über einen gemeinsamen Deployment-Benutzer, ein teamweites Cloud-Token oder ein SSH-Konto handelt, das von jedem Entwickler und jedem Automatisierungsjob verwendet wird. Gemeinsamer Zugriff spart kurzfristig Kontoverwaltung und zerstört die Zuordnung, sobald etwas schiefgeht.
Betrachte einen vertrauten Fehler. Ein Agent erhält die Aufgabe, einen Build-Fehler zu beheben. Er findet eine veraltete Infrastruktureinstellung und verbindet sich mit einem Host über ops@production. Das Konto funktioniert, weil es weitreichende Berechtigungen besitzt und sein privater Schlüssel in den Onboarding-Hinweisen des Repositorys liegt. Der Agent ändert eine Datei, startet einen Dienst neu und meldet Erfolg.
Später beginnt der Dienst, Fehler zurückzugeben. Das Serverjournal meldet, dass ops ihn neu gestartet hat. Der Cloud-Audit-Trail meldet, dass das Team-Token die Deployment-API aufgerufen hat. Keine der beiden Aufzeichnungen identifiziert den Agentenprozess, die Arbeitsanfrage, die ihn ausgelöst hat, die Person, die den Prozess gestartet hat, oder ob jemand die Aktion vor ihrer Ausführung gesehen hat. Das Team muss den Vorfall nun aus Vermutungen rekonstruieren.
Eine eigene Zugangsinformation für jede Person ist besser als ein gemeinsames Konto, löst die Nutzung durch Agenten aber nicht vollständig. Wenn der Agent Alices privaten Schlüssel oder ein langlebiges Token erhält, kann der Audit-Trail nur sagen, dass Alices Zugangsdaten verwendet wurden. Er kann nicht zuverlässig feststellen, ob Alice, ihr Terminal, eine kompromittierte Repository-Anweisung oder ihr Agent die Anfrage ausgelöst hat.
Verwende Identitäten und Aufzeichnungen für unterschiedliche Aufgaben:
- Eine Serviceidentität legt fest, was das externe System erlaubt.
- Eine Agentensitzung identifiziert den konkreten laufenden Prozess, der die Arbeit angefordert hat.
- Eine Genehmigung identifiziert die Person, die einen Aktionsumfang akzeptiert hat.
- Eine Aktionsaufzeichnung identifiziert die genaue Anfrage und ihr Ergebnis.
Fasse diese Informationen nicht in einem Feld namens user zusammen. Jede beantwortet während eines Ausfalls oder einer Zugriffsprüfung eine andere Frage.
Bei SSH verdienen weitreichende gemeinsame Konten besondere Aufmerksamkeit. Ein privater SSH-Schlüssel ist eine portable Signaturberechtigung. Wenn der Agent die Datei besitzt, haben alle Kontrollen, die du nach der Anmeldung anwenden wolltest, ihre wichtigste Grenze bereits verloren. Erzwungene Befehle und Kontobeschränkungen können den Schaden begrenzen und sind sinnvoll. Sie ändern aber nichts daran, dass der Agent jede Verbindung initiieren kann, die der Schlüssel erlaubt.
Verschiebe den Schlüssel in einen Executor, der die SSH-Aktion selbst ausführt. Gib dem Agenten eine Anfrageschnittstelle, die Host, Befehl, Identität, Sitzung und Ergebnis erfasst. Halte die Anfrage so eng, dass ein Prüfer sie versteht. systemctl restart catalog lässt sich prüfen. ssh host 'bash -c \"$(curl ... )\"' ist ein undurchsichtiger Tunnel für beliebige Berechtigungen.
Eine Genehmigung für alles ist keine Genehmigung
Ein Agent braucht ein Aktions-Gateway, wenn ein Entwickler einmalig eine vage Berechtigung genehmigt und später nicht erkennen kann, welche Anfragen sie verwendet haben. Eine Schaltfläche mit der Beschriftung "Agentenzugriff erlauben" ist eine Scheingenehmigung, wenn sie eine unbekannte Menge von Endpunkten, Befehlen, Konten und Laufzeiten abdeckt.
Genehmigungen funktionieren, wenn sie zwei praktische Fragen beantworten: Welcher Prozess hat die Anfrage gestellt, und was deckt diese Genehmigung ab? Die Prozessidentität ist wichtig, weil auf einem lokalen Rechner ein vertrauenswürdiger Coding-Agent, ein aus einem Repository kopiertes unsigniertes Skript und ein schädlicher Prozess laufen können, der den Namen des Agenten übernommen hat. Ein Anzeigename allein schafft kein Vertrauen. Eine Codesignatur-Berechtigung liefert dem Prüfer eine nützliche Information.
Der Umfang ist wichtig, weil Genehmigungsmüdigkeit Menschen zu automatischen Klickern macht. Wenn Entwickler fünfzig routinemäßige Aufrufe pro Stunde prüfen sollen, entsteht keine menschliche Kontrolle. Sie lernen, die Abfragen wegzuklicken. Eine pauschale Genehmigung für ein Produktionskonto über eine ganze Woche gibt dagegen einer einzigen versehentlichen Anweisung zu viel Spielraum.
Verwende je nach Auswirkung der Fähigkeit zwei unterschiedliche Genehmigungsumfänge:
- Eine Sitzungsgenehmigung kann gewöhnliche Aufrufe eines identifizierten Agentenprozesses abdecken, bis dieser Prozess endet.
- Eine Bestätigung pro Aufruf sollte Zugangsdaten abdecken, mit denen unumkehrbare Änderungen an der Produktion vorgenommen, Geld bewegt, Zugriffe verändert oder Daten außerhalb der Aufgabe gelesen werden können.
Die Grenze sollte mit dem Prozess ablaufen und nicht mit einer beliebigen Erinnerung daran, was jemand gestern angeklickt hat. Ein neuer Prozess erhält eine neue Entscheidung. Das hilft, wenn ein Agent neu startet, ein Tool aktualisiert wird oder ein Entwickler einen zweiten Lauf aus einem anderen Repository öffnet.
Die Genehmigungskarte sollte zuerst die Prozessidentität und anschließend die Fähigkeit in klaren Worten nennen. "Signierter Prozess X fordert die Verwendung von deploy-service für HTTP-Aufrufe an" gibt einer Person etwas, das sie annehmen oder ablehnen kann. "Tool benötigt Berechtigung" tut das nicht. Bei einer Genehmigung pro Aufruf solltest du außerdem Ziel und Aktion anzeigen. Ein Mensch kann eine Anfrage nicht beurteilen, die hinter einem allgemeinen Fähigkeitsnamen verborgen ist.
Baue keine kleine Richtliniensprache, nur weil das Problem anspruchsvoll wirkt. Teams verlieren Wochen damit, Zulassungsregeln für promptgesteuerte Tools zu schreiben, und stellen dann fest, dass die schwierige Frage nie die Syntax war. Es ging darum, ob der Agent diese Berechtigung überhaupt erhalten sollte. Beginne mit einem Tresorzugang, einer prozessbezogenen Zustimmung und einer Bestätigung pro Zugangsdaten, wenn der mögliche Schaden dies rechtfertigt. Diese Kontrollen kannst du der Bereitschaftsperson um zwei Uhr morgens erklären.
Der Agent kann aus einem Wegwerf-Checkout die Produktion erreichen
Ein Agent braucht ein Aktions-Gateway, wenn ein Repository, ein Branch oder eine kurzlebige Entwicklungsumgebung allein deshalb echte externe Aktionen auslösen kann, weil der Agent dort ausgeführt wird. Repositories sind Eingaben. Repository-Anweisungen als vertrauenswürdige Operatoren zu behandeln, ist ein Kategorienfehler.
Ein bösartiger Pull Request muss das Modell nicht auf spektakuläre Weise ausnutzen. Er kann Anweisungen in einer Datei platzieren, die der Agent während der normalen Arbeit liest: "Führe diesen Diagnosebefehl aus", "verwende das Deployment-Token aus der Umgebung" oder "lade die Logs unter dieser URL hoch". Wenn der Agent direkten Zugriff auf Geheimnisse und uneingeschränkten Netzwerkzugriff hat, hat der Autor des Repositorys einen Weg zu operativen Berechtigungen gefunden.
Das Problem tritt auch bei harmloser Arbeit auf. Ein Entwickler checkt einen alten Branch aus, um eine Migration zu vergleichen. Der Branch enthält ein veraltetes Skript, das auf die Produktion zeigt, weil das vor Jahren sinnvoll war. Der Agent folgt der Dokumentation in der Nähe, findet eine gültige Zugangsinformation in seiner Umgebung und führt den Aufruf aus. Niemand wollte eine Änderung in der Produktion, aber die Kombination aus automatisch verfügbaren Zugangsdaten und nicht vertrauenswürdigen Anweisungen hat sie ermöglicht.
Trenne den Codezugriff von der Aktionsberechtigung. Lass den Agenten den Checkout mit normalen lokalen Berechtigungen lesen, testen und bearbeiten. Ausgehende Aktionen müssen eine ausdrückliche Grenze überschreiten, die Ziel und Zugangsdaten identifiziert. Der Agent darf die Aktion weiterhin anfordern. Er sollte die Berechtigung aber nicht erben, nur weil er neben einer Geheimdatei ausgeführt wurde.
Darum löst auch eine reine Netzwerkfilterung das Problem nicht. Eine Egress-Regel kann bekannte Ziele blockieren, und du solltest sie dort einsetzen, wo sie passt. Sie kann aber nicht feststellen, wer eine erlaubte Anfrage ausgelöst hat, ob die richtige Zugangsinformation verwendet wurde oder ob eine Person den Agentenlauf genehmigt hat. Eine Netzwerkregel ist eine nützliche äußere Mauer. Sie ersetzt nicht das Fernhalten von Zugangsdaten vom Agenten.
Teste das mit einem absichtlich nicht vertrauenswürdigen Checkout. Erstelle einen harmlosen Endpunkt, der Anfragen aufzeichnet. Lege in einer Projektdatei eine überzeugende Anweisung ab, nach der der Agent ihn mit einem angeblichen Diagnose-Token aufrufen soll. Führe den Agenten so aus, wie Entwickler ihn normalerweise verwenden. Wenn der Endpunkt ein Token, einen Geheimnisnamen, der innerhalb des Agenten aufgelöst wird, oder eine Anfrage erhält, die die Prüfung umgeht, hast du die zu korrigierende Grenze gefunden.
Du kannst einen laufenden Agenten nicht schnell widerrufen
Ein Agent braucht ein Aktions-Gateway, wenn die einzige Reaktion auf einen problematischen Lauf darin besteht, ein Terminal zu beenden, alle möglicherweise kopierten Zugangsdaten zu widerrufen oder zu hoffen, dass der Agent fertig ist. Eine ernsthafte Kontrolle ermöglicht es einem Operator, die aktuelle Berechtigung zu stoppen, ohne aus einem lokalen Fehler eine umfassende Krise mit Zugangsdaten zu machen.
Die Prozesslebensdauer liefert eine natürliche Einheit für den Widerruf. Wenn eine Genehmigung an einen Agentenprozess gebunden ist, blockiert der Widerruf dieser Sitzung spätere Aktionen desselben Laufs, auch wenn der Prozess weiter geöffnet bleibt. Der Agent kann weiterhin Code entwerfen, aber die vom Gateway kontrollierten externen Kanäle nicht mehr erreichen. Das ist deutlich weniger störend, als unabhängige Entwicklungsarbeiten zu beenden oder während eines Vorfalls ein organisationsweites Token zu wechseln.
Teams vermischen oft drei verschiedene Arten des Widerrufs:
- Der Widerruf einer Sitzung verhindert, dass ein bestimmter Agentenlauf weitere genehmigte Anfragen stellt.
- Die Sperrung des Zugangsdaten-Tresors stoppt jede geschützte Aktion, bis eine berechtigte Person ihn wieder öffnet.
- Das Wechseln oder Deaktivieren einer externen Zugangsinformation entzieht die Berechtigung beim Dienst, der sie ausgestellt hat.
Verwende die kleinste Maßnahme, die den Vorfall eindämmt, und ergreife bei Bedarf anschließend die umfassendere Maßnahme. Wenn ein Entwickler einfach die falsche Aufgabe ausgewählt hat, kann der Widerruf der Sitzung ausreichen. Wenn der Agent ein Token in ein externes Transkript geschrieben hat, musst du das Token wechseln. Wenn du nicht feststellen kannst, welche Agentenläufe Zugriff haben, sperre zuerst den Tresor und untersuche den Vorfall aus einer stabilen Ausgangslage.
Ein Gateway sollte Aktionen ablehnen, solange sein Tresor gesperrt ist. Das klingt offensichtlich, bis du auf Tools triffst, die entschlüsselte Zugangsdaten aus Bequemlichkeit zwischenspeichern. Zwischengespeicherte Berechtigungen machen den Sinn einer Sperre genau in dem Moment zunichte, in dem Operatoren sie am dringendsten brauchen. Ein gesperrter Zustand muss bedeuten, dass der Executor keine HTTP-Aufrufe oder SSH-Verbindungen mit gespeicherten Geheimnissen ausführen kann.
Übe dies vor einem Vorfall. Starte eine Agentensitzung, die eine harmlose geschützte Aktion anfordert, widerrufe die Sitzung und wiederhole dieselbe Anfrage. Die erwartete Antwort sollte mitteilen, dass die Autorisierung nicht mehr gültig ist. Starte anschließend einen neuen Prozess und bestätige, dass er eine eigene Genehmigung benötigt. Wenn der alte Prozess weiterarbeiten kann, hast du ein Benachrichtigungssystem gebaut, keine Kontrolle.
Deine Logs erfassen Ausgaben, aber keine Aktionen
Ein Agent braucht ein Aktions-Gateway, wenn du Chatprotokolle und Terminalausgaben hast, aber keine zuverlässige Aktionsaufzeichnung liefern kannst. Ein Transkript beschreibt, was der Agent angeblich getan hat. Es beweist nicht, was das Netzwerk tatsächlich verlassen hat oder welche Zugangsinformation die Aktion autorisiert hat.
Eine Aktionsaufzeichnung sollte das Ereignis möglichst nahe am Executor erfassen. Bei einem HTTP-Aufruf sollten Agentensitzung, Anfragezeit, Ziel, Methode, Referenz der Zugangsinformation, Autorisierungsentscheidung und Ergebnisstatus aufgezeichnet werden. Bei SSH sollten Host, Kontoreferenz, Befehlsanfrage, Entscheidung und Exit-Ergebnis erfasst werden. Protokolliere keine rohen Passwörter, privaten Schlüssel, Bearer-Tokens oder vollständigen sensiblen Antwortdaten, nur damit das Journal vollständig wirkt.
OWASPs Logging Cheat Sheet nennt denselben praktischen Punkt: Logs sollten Sicherheitsuntersuchungen unterstützen, Anwendungen sollten aber vermeiden, Zugriffstokens, Passwörter, Sitzungskennungen und andere Geheimnisse direkt zu speichern. Viele Teams befolgen nur die erste Hälfte. Sie aktivieren nach einem fehlgeschlagenen Agentenlauf ausführliches Debugging und erzeugen dadurch ein zweites Leck im Log-Speicher.
Eine bessere Aufzeichnung trennt Belege vom geheimen Material. Der Executor kann eine Referenz wie deploy-service, einen Anfrage-Digest und das Aktionsergebnis aufbewahren. Ein Ermittler kann feststellen, dass eine bestimmte autorisierte Sitzung diese Zugangsinformation für eine bestimmte Aktion verwendet hat, ohne die Zugangsinformation selbst zu erhalten.
Die Aufzeichnung braucht außerdem einen Schutz gegen nachträgliche Manipulation. Wenn derselbe Prozess, der Aktionen ausführt, das Journal von gestern unbemerkt umschreiben kann, wird das Journal zu einem Bericht über das, was dieser Prozess dich glauben lassen möchte. Eine Hash-Verkettung ist eine praktische Abwehr: Jeder Eintrag enthält einen Digest des vorherigen Eintrags. Wird ein früherer Eintrag geändert oder entfernt, schlägt die spätere Prüfung fehl.
Für die Prüfung muss nicht jedes sensible Ereignis entschlüsselt werden. Ein nützliches Audit-Tool kann die Integrität der Kette anhand verschlüsselter Aufzeichnungen validieren. So kann ein Operator Änderungen erkennen, ohne allgemein Zugriff auf die Inhalte zu erhalten. Das beweist nicht, dass jede ursprüngliche Aktion klug war. Es beweist, dass die aufgezeichnete Abfolge nachträglich nicht unbemerkt bearbeitet wurde.
Stelle eine Auditfrage, die über "War der Agent erfolgreich?" hinausgeht. Frage: "Welcher Agentenlauf hat gestern die Produktionsberechtigung für Deployments verwendet, welcher Prozess erhielt die Zustimmung und welches Ergebnis gab jede Anfrage zurück?" Wenn du Shell-Historie, Cloud-Logs, einen Chat-Export und die Erinnerung einer Person zusammenführen musst, hast du kein Aktionsjournal.
Ein Proxy beobachtet den Datenverkehr, aber der Agent besitzt weiterhin die Macht
Ein Agent braucht ein Aktions-Gateway, wenn die vorgeschlagene Lösung ein Proxy ist, der den Datenverkehr beobachtet, während der Agent weiterhin das API-Token oder den SSH-Schlüssel besitzt. Proxies haben legitime Aufgaben, aber Sichtbarkeit des Datenverkehrs und Verwahrung von Zugangsdaten sind getrennte Kontrollen.
Ein Reverse-Proxy kann Anfragen am Rand einer Anwendung authentifizieren. Ein ausgehender Proxy kann Ziele filtern oder Anfrageprotokolle aufbewahren. Keine dieser Konstruktionen verhindert automatisch, dass der lokale Agent ein Token liest, es in eine andere Anfrage einfügt, in einer Datei speichert oder einen anderen zugelassenen Weg verwendet. Bei SSH löst ein Netzwerkproxy das Problem eines privaten Schlüssels in der Agentenumgebung nicht.
Ein Man-in-the-Middle-Design bringt außerdem eigenen Betriebsaufwand mit sich. Es muss TLS-Vertrauen, Zertifikatsverteilung, Protokollausnahmen und Datenverkehr verarbeiten, den Anwendungen selbst absichern oder verschlüsseln. Teams bauen solche Systeme manchmal, weil sie wie ein universeller Kontrollpunkt wirken. Dann stellen sie fest, dass weiterhin entschieden werden muss, welcher Prozess welche Zugangsinformation verwenden darf.
Setze die Grenze an der Aktion, nicht nur am Paket. Der Agent stellt eine strukturierte Anfrage. Der Executor wählt die gespeicherte Zugangsinformation, fügt sie in eine HTTP-Anfrage ein oder verwendet sie für SSH, protokolliert die Entscheidung und gibt das Ergebnis zurück. Der Agent besitzt die Informationen, die er zum Anfordern einer Arbeit braucht, nicht aber das Material, mit dem er die Serviceidentität an anderer Stelle imitieren kann.
Dieses Design hat eine nützliche Begrenzung: Es versucht nicht, eine allgemeine Richtlinienmaschine zu werden, die Absichten aus natürlicher Sprache vorhersagt. Es macht Berechtigungen ausdrücklich. Ein Agent fordert über einen bekannten Kanal eine Aktion an. Eine Person oder eine konfigurierte Kontrolle für Zugangsdaten entscheidet, ob dieser Kanal für den Lauf verfügbar ist. Die Aufzeichnung hält fest, was geschehen ist.
Für macOS-Teams verwendet Sallyport dieses Modell über einen MCP-stdio-Shim: Der Agent fordert HTTP- oder SSH-Aktionen an, während die App API- und SSH-Geheimnisse in ihrem verschlüsselten Tresor aufbewahrt und die Aktion selbst ausführt. Das macht die Auswahl geeigneter Serviceberechtigungen nicht überflüssig, beendet aber die Gewohnheit, dem Agenten rohe Zugangsdaten zu übergeben.
Du verlässt dich auf geringste Berechtigungen, testest aber die Grenzen nicht
Ein Agent braucht ein Aktions-Gateway, wenn das Team behauptet, seine Tokens folgten dem Prinzip der geringsten Berechtigung, aber nicht geprüft hat, was diese Berechtigungen in den Händen eines autonomen Prozesses ermöglichen. Geringste Berechtigungen sind eine Eigenschaft einer echten Zugangsinformation und der damit erreichbaren Aktionen, kein Etikett an einer Rolle.
Ein Token, das nur einen Dienst deployen kann, kann möglicherweise trotzdem die Umgebungsvariablen des Dienstes ändern und dadurch Datenverkehr umleiten oder Daten offenlegen. Ein SSH-Konto, das auf einen Host beschränkt ist, kann möglicherweise Deployment-Konfigurationen mit Zugangsdaten für andere Systeme lesen. Eine Cloud-Rolle, die Ressourcen nicht löschen kann, kann eine Workload mit einer übermäßig weitreichenden Identität anlegen. Berechtigungsnamen zeigen selten jede Folge.
Prüfe Berechtigungen anhand von Aktionen, nicht anhand von Produkten. Schreibe auf, was der Agent einen Executor tun lassen kann, und untersuche für jede Aktion die Autorisierungsregeln des Dienstes. Berücksichtige auch Lesezugriffe. Agenten können über Export-Endpunkte, das Abrufen von Logs, das Lesen von Konfigurationen und Discovery-APIs teure oder sensible Vorfälle auslösen, ohne eine einzige Ressource zu ändern.
Verwende bei der Prüfung eine kleine Tabelle:
| Angeforderte Aktion | Externe Identität | Folge bei Missbrauch | Genehmigungsumfang |
|---|---|---|---|
| Vorschau-Deployment erstellen | Konto für Vorschau-Deployments | Temporäre Workload und Kosten | Sitzung |
| Produktionsdienst neu starten | Produktionskonto für den Betrieb | Ausfall für Benutzer | Pro Aufruf |
| Incident-Log-Bundle lesen | Supportkonto | Mögliche Offenlegung sensibler Daten | Pro Aufruf |
| SSH zum Build-Host öffnen | Konto des Build-Hosts | Befehlsausführung auf dem Host | Sitzung, wenn der Befehlsumfang eng begrenzt ist |
Die Tabelle erzwingt ein unangenehmes, aber produktives Gespräch. Wenn du die Folge nicht in einer kurzen Formulierung benennen kannst, ist die Berechtigung wahrscheinlich zu weitreichend oder die Anfrageschnittstelle zu ungenau.
Verwende ein Aktions-Gateway nicht als Ausrede dafür, Serviceidentitäten übermäßig mächtig zu lassen. Es reduziert die Offenlegung von Geheimnissen und verbessert Zustimmung und Nachweise. Die externe API oder der Host entscheidet weiterhin, was die Zugangsinformation tun darf. Reduziere diese Rechte, nutze getrennte Identitäten für getrennte Umgebungen und gib unumkehrbaren Aktionen eine strengere Genehmigungsregel.
Die erste Grenze sollte die Aktion abdecken, die dir diese Woche schaden kann
Ein Aktions-Gateway verdient seinen Platz, wenn es einen direkten Zugangspfad ersetzt, den dein Team bereits verwendet, nicht wenn es zu einer sechsmonatigen Neugestaltung des Zugriffs wird. Wähle die folgenschwerste Aktion, die ein Agent derzeit ausführt, und verschiebe zuerst diesen Pfad.
Für viele Teams ist das eine Produktions-API für Deployments. Für andere ist es SSH-Zugriff auf einen Build- oder Betriebs-Host. Die Auswahl sollte sich an der tatsächlichen Berechtigung orientieren, nicht daran, welche Integration sich am einfachsten vorführen lässt. Ein schreibgeschütztes Token für einen Issue-Tracker kann wichtig sein. Es sollte aber nicht von einem privaten Schlüssel ablenken, der Produktionsdienste neu starten kann.
Gestalte die erste Einführung konkret:
- Erfasse die Tokens, SSH-Schlüssel, gemeinsamen Konten und Umgebungsvariablen, die dem Agenten zur Verfügung stehen.
- Wähle eine Zugangsinformation, die eine echte Vertrauensgrenze überschreitet, und entferne ihren Klartext aus der Agentenumgebung.
- Definiere die strukturierte Aktionsanfrage, die der Agent stellen darf, einschließlich Ziel und Aktion.
- Verlange für diesen Anfragepfad eine prozessbezogene Autorisierung und wähle eine Bestätigung pro Aufruf, wenn die Aktion großen Schaden verursachen kann.
- Führe einen harmlosen Test aus, widerrufe die Sitzung und prüfe, ob das Journal sowohl den erlaubten Aufruf als auch den abgelehnten Wiederholungsversuch zeigt.
Führe dies nur dann zuerst mit einer Staging-Zugangsinformation durch, wenn Staging denselben Aktionspfad zuverlässig abbildet. Ein Staging-Token in einem völlig anderen Tool sagt nur wenig darüber aus, wie die Autorisierung in der Produktion funktioniert. Der Test muss den tatsächlichen Executor, die Genehmigung, den Widerruf und den Auditpfad abdecken.
Warte nicht auf perfektes Agentenverhalten. Abwehr gegen Prompt-Injection, Repository-Prüfung, Sandboxing, Serviceberechtigungen und Netzwerkkontrollen senken gemeinsam das Risiko. Keine dieser Maßnahmen liefert dir eine klare Antwort, wenn ein Agentenprozess eine externe Aktion mit einer Zugangsinformation anfordert, die er niemals besitzen sollte. Lege die Zugangsinformation hinter die Grenze, bevor aus dem nächsten kopierten Token eine Untersuchung wird.
FAQ
Was ist ein Aktions-Gateway für einen KI-Coding-Agenten?
Ein Aktions-Gateway hält Zugangsdaten außerhalb des Agentenprozesses und führt genehmigte externe Aktionen im Auftrag des Agenten aus. Ein Secret Manager speichert und ruft Geheimnisse ab. Wenn er ein API-Token an den Agenten zurückgibt, besitzt der Agent das Token weiterhin und kann es offenlegen oder wiederverwenden.
Brauchen kleine Teams ein Aktions-Gateway?
Du kannst mit einem einzigen gefährlichen Kanal beginnen, normalerweise mit HTTP-Zugriff auf die Produktion oder SSH. Die erste sinnvolle Grenze ist einfach: Der Agent fordert eine Aktion an, eine separate vertrauenswürdige Komponente verwahrt die Zugangsdaten, und ein Mensch kann den Lauf sehen und stoppen.
Was soll ich tun, wenn ein Agent einen API-Schlüssel in einen Prompt kopiert hat?
Behandle ein kopiertes Token als offengelegt, sobald es in einem Prompt, Transkript, in der Shell-Historie, einer Terminalaufzeichnung oder einer erzeugten Datei landet. Widerrufe es, ersetze es, finde heraus, wo es auftauchte, und ändere anschließend den Ablauf, durch den der Agent es erhalten konnte.
Sind eingeschränkte SSH-Schlüssel sicher, wenn man sie direkt an einen Agenten gibt?
Nein. Ein SSH-Schlüssel kann durch Konto, Quelladresse oder Befehl eingeschränkt sein. Der Agentenprozess kann trotzdem jede Berechtigung nutzen, die dieser Schlüssel besitzt. Bewahre den privaten Schlüssel in einem separaten Executor auf und genehmige oder begrenze die von ihm ausgeführten Befehle.
Warum sind gemeinsame Servicekonten beim Agentenzugriff problematisch?
Gemeinsame Konten zerstören die Zuordnung, weil eine erfolgreiche Anfrage nur zeigt, welches Konto gehandelt hat, nicht welcher Agentenlauf oder welche Person ihn gestartet hat. Gib Workloads nach Möglichkeit eigene Identitäten und zeichne die Agentensitzung neben jeder Aktion auf.
Was sollte ein Genehmigungsdialog für eine Agentenaktion anzeigen?
Eine brauchbare Genehmigung nennt den Agentenprozess, das Ziel, die Aktion, die betroffenen Zugangsdaten oder Fähigkeiten und den Umfang der Genehmigung. Eine Meldung, die nur sagt, dass ein Agent Zugriff möchte, zwingt die Person, genau den wichtigen Teil zu erraten.
Was sollte ein Aktionsprotokoll für einen KI-Agenten enthalten?
Aktionsprotokolle sollten Agentensitzung, Zeitpunkt, Ziel, Methode oder Befehl, Autorisierungsergebnis und Resultat erfassen. Rohe Zugangsdaten, Tokens und sensible Antwortdaten sollten fehlen, sofern es dafür keinen bewusst geschützten Prozess gibt.
Kann ein Reverse-Proxy ein Aktions-Gateway ersetzen?
Ein Proxy kann Datenverkehr beobachten oder weiterleiten. Er verhindert aber nicht automatisch, dass ein Agent Zugangsdaten besitzt oder einen anderen Netzwerkpfad verwendet. Ein Aktions-Gateway sollte die Zugangsdaten verwahren und die Aktion selbst ausführen, statt nur im Pfad einer Anfrage zu sitzen.
Wann sollte ich für jeden Agentenaufruf eine Genehmigung verlangen?
Eine Genehmigung pro Sitzung passt für routinemäßige Arbeiten eines bekannten Agentenprozesses, wenn die Sitzung sauber endet und ihr Umfang begrenzt ist. Fordere für Zugangsdaten mit weitreichenden Auswirkungen auf die Produktion, für unumkehrbare Aktionen oder bei wiederholten Fehlbedienungen eine Bestätigung bei jeder Verwendung.
Wie führe ich Kontrollen für Agentenaktionen ein, ohne die Entwicklung zu stoppen?
Beginne damit, alle Zugangsdaten, SSH-Schlüssel, gemeinsamen Konten und ausgehenden Integrationen zu erfassen, die einem Agenten zur Verfügung stehen. Entferne dann zuerst im wichtigsten Pfad die direkte Übergabe von Geheimnissen und prüfe, ob du eine Testaktion von der Anfrage über Genehmigung bis zum Ergebnis lückenlos nachvollziehen kannst.