1. Die Least-Agency-Checkliste
Schicken Sie jeden Schlüssel — neu oder bestehend — durch diese sechs Tore im Schlüssel-Editor (/console/token). Eines davon zu setzen erfordert die Rolle
Developer oder höher; die beiden Policy-Ebenen (§5–6) werden separat
verfasst und hier gebunden.
model_limits — die Modelle festpinnen
model_limits — die Modelle festpinnen
Setzen Sie
model_limits auf die exakte Liste, die dieser Agent braucht
(und aktivieren Sie model_limits_enabled). Ein Aufruf an irgendein Modell
außerhalb der Liste wird abgelehnt, bevor er das Gateway verlässt, sodass
ein gekaperter Agent nicht zu einem teureren oder fähigeren Modell
eskalieren kann.
Prüfung: Ist die Liste so kurz, wie der Job erlaubt — idealerweise ein
Modell? Tiefe: Modell-Limits.allow_ips — die Quelle festpinnen
allow_ips — die Quelle festpinnen
Setzen Sie
allow_ips auf die Quelladressen oder CIDR, von denen der Agent
tatsächlich aufruft. Ein geleakter Schlüssel, der von irgendwo sonst
präsentiert wird, wird auf der Auth-Ebene abgelehnt. Leer bedeutet, dass
alle IPs erlaubt sind.
Prüfung: Ist die Liste für einen Agenten mit festem Host oder geplanten
Agenten nicht-leer und auf diesen Egress gefasst? Tiefe:
IP-Allowlist.credit_limit_usd — die Ausgaben deckeln
credit_limit_usd — die Ausgaben deckeln
Setzen Sie
credit_limit_usd auf eine Obergrenze, die der Agent in seiner
Lebenszeit nie überschreiten sollte. Das Gateway setzt es gegen die Ausgaben
des Schlüssels durch. 0 bedeutet unbegrenzt — eine außer Kontrolle
geratene Schleife kann Ihr ganzes Guthaben leeren.
Prüfung: Ist das Cap ein echtes Budget, nicht 0? Tiefe:
Kontingent, Cap & Ablauf.expired_time — ihm eine Deadline geben
expired_time — ihm eine Deadline geben
Setzen Sie
expired_time auf einen absoluten Ablauf — das Ende des
Sprints, des Deployments oder des CI-Laufs. -1 bedeutet läuft nie ab.
Ein kurzlebiger Schlüssel kann nicht als vergessene Angriffsfläche
herumhängen.
Prüfung: Hat ein ephemerer oder Auftragnehmer-Schlüssel einen echten
Ablauf, nicht -1? Tiefe:
Ablaufende Schlüssel.guardrail_id — eine Content-Policy binden
guardrail_id — eine Content-Policy binden
Hängen Sie ein Guardrail via
guardrail_id an,
sodass der Text des Requests (und, wo unterstützt, der Antwort) auf PII,
Secrets und Injection-Intent geprüft wird, bevor er das Modell erreicht.
Prüfung: Hat ein Schlüssel, der sensible Prompts verarbeitet, ein
gebundenes Guardrail oder erbt er einen Workspace-Default? Siehe §5.firewall_policy_id — eine Tool-Policy binden
firewall_policy_id — eine Tool-Policy binden
Hängen Sie eine Firewall-Policy via
firewall_policy_id an, sodass jeder Tool-Call, MCP-Dispatch und Egress,
den dieser Schlüssel ausgibt, gegen eine Allowlist dessen ausgewertet wird,
was der Agent legitim braucht.
Prüfung: Hat ein Agent, der Tools aufruft, eine gebundene
Firewall-Policy oder erbt er den Workspace-Default? Siehe §6.2. Was / wie oft / wo
Drei Fragen verwandeln die Checkliste aus einer einmaligen Pflicht in eine Haltung.Was
Die sechs Tore oben, in Reihenfolge:
model_limits → allow_ips →
credit_limit_usd → expired_time → guardrail_id →
firewall_policy_id.Wie oft
Auf jedem Schlüssel bei der Erstellung und in einer wiederkehrenden
Überprüfung — wenn sich der Scope eines Agenten ändert, wenn Sie einen
Schlüssel rotieren und in einer festen Taktung
für langlebige Schlüssel.
Wo
Im Konsolen-Schlüssel-Editor (
/console/token), als Developer+. Die
beiden Policies werden in ihren eigenen Konsolen verfasst, dann auf dem
Schlüssel gebunden.3. Ein konkreter Least-Agency-Schlüssel
Ein geplanter Agent, der Support-Tickets mit einem billigen Modell, von einem Host, zusammenfasst, braucht fast keine Agency. Ein voll gehärteter Schlüssel:| Feld | Wert | Warum |
|---|---|---|
model_limits | ein Summarization-Modell | kann nicht zu einem Frontier-Modell eskalieren |
allow_ips | das Egress-CIDR des Schedulers | ein geleakter Schlüssel ist anderswo nutzlos |
credit_limit_usd | eine wöchentliche Obergrenze | eine außer Kontrolle geratene Schleife kann das Guthaben nicht leeren |
expired_time | Ende des Deployments | läuft automatisch ab, kann nicht herumhängen |
guardrail_id | ein PII-maskierendes Guardrail | der Request-Text wird geprüft |
firewall_policy_id | allowlistet nur seine Tools | keine überraschenden Tool-Calls |
4. Der /v1-Relay-Aufruf vs. die Konsole
Die Checkliste wird in der Konsole mit Ihrer Session (einem Developer+-Benutzer) konfiguriert. Ihr Agent fasst diese Konfigurationsrouten nie an — er präsentiert seinen scoped Relay-Schlüssel (sk-orca-…) auf den
/v1/*-Inferenz-Aufrufen, und die Limits und gebundenen Policies oben werden
auf jedem davon durchgesetzt.
model_limits des Schlüssels openai/gpt-4o-mini nicht enthalten,
wird dieser Aufruf abgelehnt, bevor er das Gateway verlässt. Wenn die IP des
Aufrufers nicht in allow_ips ist, wird er auf der Auth-Ebene abgelehnt. Der
Agenten-Code bleibt gleich; der Schlüssel entscheidet den Blast-Radius.
5. Tor 5 — das gebundene Guardrail
guardrail_id bindet eine workspace-bezogene, geordnete Content-Policy an
den Schlüssel. Die Auflösung ist das explizite Guardrail des Schlüssels (wenn
es existiert und aktiviert ist), sonst der Workspace-Default, sonst keines.
Guardrails sind ein strikter Aus-Schalter, wenn deaktiviert: Eine
deaktivierte oder gelöschte
guardrail_id bedeutet, dass der Schlüssel
kein Guardrail bekommt — er fällt nicht auf den Workspace-Default
zurück. Das ist das Gegenteil der Firewall-Ebene (§6), also verifizieren Sie,
dass das gebundene Guardrail aktiviert ist, nicht nur angehängt.block, mask
oder flag. Das PII Shield-Preset zum Beispiel maskiert PII im Request,
bevor er je das Modell erreicht. Verfassen und hängen Sie Guardrails als
Developer+ an — siehe
Guardrails und
Policies binden.
6. Tor 6 — die gebundene Firewall-Policy + Gateway-Scope
firewall_policy_id bindet eine workspace-bezogene Tool-Call-Policy. Sie
steuert die Aktionen, die ein Agent vornimmt — angebotene Tools,
modell-ausgegebene tool_calls, MCP-Dispatches und ausgehender Egress — gegen
eine geordnete Regelliste, deren Verdikte allow, audit, deny, sanitize,
pending_approval oder cap_cost sind.
Die Firewall-Ebene löst anders auf als Guardrails: Eine deaktivierte
gebundene Firewall-Policy fällt auf den Workspace-Default zurück, sie
schaltet die Durchsetzung nicht aus. Eine Policy zu binden und sie zu
deaktivieren setzt den Schlüssel also auf den Workspace-Default zurück — er geht
nie still ungeschützt.
tight / balanced /
permissive), mit Ein-Klick-Undo. Siehe
Firewall §8.
7. Nach der Checkliste
Secure-Agents-Baseline
Die empfohlene Ausgangshaltung — ein Autonomie-Schalter, dann von echtem
Traffic aus tunen.
Policies binden
Wie
guardrail_id und firewall_policy_id anhängen und auflösen.Übermäßige Agency
Die Bedrohung, die diese Checkliste einzudämmen gebaut ist.
Geleakter Schlüssel
Was zu tun ist in dem Moment, in dem ein scoped Key exponiert wird.
