--sandbox-Flag startet die CLI mit Isolation auf Betriebssystemebene, setzt beschreibbare Pfade und Sperrregeln auf Betriebssystemebene durch und kann den Netzwerkverkehr optional einschränken.
Wie die Sandbox funktioniert
Wenn die Sandbox aktiv ist:- Beschreibbare Pfade werden aus den gewährten
Write(...)-Berechtigungsbereichen und dem Workspace-Verzeichnis abgeleitet; alles andere ist schreibgeschützt - Lesbare Pfade umfassen alle Pfade außer denen, die von
Read(...)-Regeln in derdeny-Liste abgedeckt werden; diese sind für Befehle in der Sandbox vollständig ausgeblendet - Während einer Sitzung gewährte
Write(...)-Bereiche erweitern die Sandbox dynamisch für nachfolgende Befehle. Während einer Sitzung erteilteRead(...)-Genehmigungen betreffen nur die eigenen Tools des Agenten – sie können keinen Pfad sichtbar machen, der durch eineRead(...)-deny-Regel ausgeblendet ist, denn dieser bleibt während der gesamten Sitzung ausgeblendet
Netzwerkfilterung
Konfigurieren Sie die Netzwerkfilterung auf Domainebene für die Sandbox imsandbox-Abschnitt Ihrer Konfigurationsdatei (nur in der Nutzerkonfiguration). Wenn --sandbox aktiv ist und eine Domänenfilterung konfiguriert wurde, wird auf der Loopback-Schnittstelle ein verwalteter Netzwerk-Proxy gestartet, und die Sandbox erzwingt, dass der gesamte Datenverkehr untergeordneter Prozesse über ihn geleitet wird.
Syntax für Domain-Muster:
Beispiel:
Die Domänenfilterung gilt, wenn die Sandbox aktiv ist (
--sandbox). Ohne --sandbox wird der Abschnitt zur Sandbox ignoriert.Ausgeschlossene Befehle
Manchmal muss ein bestimmter Befehl außerhalb der Sandbox ausgeführt werden — zum Beispielgit-Befehle, die auf Anmeldedaten zugreifen müssen, oder Hooks, die die Sandbox blockiert. Im Konfigurationsabschnitt sandbox.excluded können Sie passende Befehle mithilfe derselben Exec(...)-Regelsyntax wie bei Berechtigungen von der Sandbox-Isolierung ausnehmen:
Beispiel:
Exec(git push *) Vorrang vor Exec(git *)), und wenn sowohl die Nutzerkonfiguration als auch die Team Settings zutreffen, gilt die restriktivere Entscheidung (deny > ask > allow). Befehle ohne passende Regel — auch wenn sandbox.excluded überhaupt nicht konfiguriert ist — werden immer in der Sandbox ausgeführt.
- In
sandbox.excludedwerden nurExec(...)-Regeln unterstützt; jeder andere Regeltyp (z. B.Read(...),Write(...)) wird mit einer Warnung ignoriert. - Ausschlüsse folgen dem Fail-Closed-Prinzip: Wenn ein Befehl nicht sicher ermittelt werden kann (z. B. weil er nicht geparst werden kann), bleibt er in der Sandbox.
- Ausschlüsse gelten für den Standard-Ausführungspfad pro Befehl. Befehle, die über eine persistente PTY-Shell ausgeführt werden (interaktive Sitzungen oder wenn
pty_for_noninteractive_execaktiviert ist), bleiben immer in der Sandbox.
Durchsetzung auf Enterprise-Ebene
Enterprise-Admins können das Sandbox-Verhalten für ihre gesamte Organisation über Team Settings steuern.Sandbox-Erzwingungsmodus
Legen Sie den Erzwingungsgrad für das Flag--sandbox in Ihrer Organisation fest:
- Optional (Standard) — Nutzer wählen, ob sie
--sandboxübergeben. Keine Erzwingung. - Required — Das Flag
--sandboxwird für alle Nutzer erzwungen, auch wenn sie es nicht in der Befehlszeile angeben. Alle CLI-Sitzungen werden mit einer Dateisystem-Sandbox auf Betriebssystemebene ausgeführt, die beschreibbare Pfade undRead(...)-Sperrregeln erzwingt.
Enterprise-Domänenfilterung
Admins können außerdem organisationsweite Allowlists und Denylists für Domains konfigurieren:- Domain-Allowlist — Wenn sie festgelegt ist, sind nur die Domains in dieser Liste über den Netzwerk-Proxy der Sandbox erreichbar. Diese Liste ist verbindlich: Sie ersetzt alle vom Nutzer konfigurierten
allowed_domainsvollständig. Nutzer können keine zusätzlichen Domains hinzufügen, um Admin-Einschränkungen zu umgehen. - Domain-Denylist — Domains, die immer blockiert werden. Auf Enterprise-Ebene ausgeschlossene Domains sind additiv: Sie werden mit den lokalen
denied_domainsdes Nutzers zusammengeführt, sodass die kombinierte Liste restriktiver ist.
Da die lokalen
denied_domains des Nutzers erhalten bleiben und additiv zusammengeführt werden, kann ein Nutzer eine Domain blockieren, die in der Enterprise-Allowlist enthalten ist. Das ist beabsichtigt: Die Gesamtwirkung ist immer restriktiver, nie weniger restriktiv. Falls das zu Zugriffsproblemen führt, sollte der Nutzer den widersprüchlichen Eintrag aus seiner lokalen Konfiguration entfernen.Auf Enterprise-Ebene ausgeschlossene Befehle
Admins können auch organisationsweite Regeln für ausgeschlossene Befehle in den Team Settings festlegen:- Ausgeschlossenes
allow/ask—Exec(...)-Regeln für Befehle, die organisationsweit außerhalb der Sandbox ausgeführt werden dürfen – automatisch oder nach einer Rückfrage. - Ausgeschlossenes
deny—Exec(...)-Regeln für Befehle, die niemals außerhalb der Sandbox ausgeführt werden dürfen. Ein Team-denyhat bei übereinstimmenden Befehlen Vorrang vor jedemallowoderaskauf Nutzerebene, sodass Nutzer keine Befehle ausschließen können, die ihre Admins gesperrt haben.
deny > ask > allow).
Beispiel: Alle Ausschlüsse außer gh sperren. Ein allgemeines deny mit einer allow-Ausnahme sorgt dafür, dass jeder Befehl außer gh in der Sandbox bleibt – unabhängig davon, was Nutzer lokal konfigurieren. Diese Werte gehören in die excluded-commands-Konfiguration der Team Settings (nicht in die Nutzer-Konfigurationsdatei, daher gibt es keinen umschließenden sandbox-Schlüssel):
Exec(gh *) Vorrang vor dem Platzhalter Exec(**) hat, werden gh-Befehle außerhalb der Sandbox ausgeführt, während alles andere innerhalb der Sandbox bleibt — und der Platzhalter deny auf Teamebene überschreibt für andere Befehle alle allow- oder ask-Regeln auf Nutzerebene.
Weiterführende Informationen
- Team Settings — Sandbox-Erzwingung und Domänenfilterung auf Enterprise-Ebene
- Referenz zur Konfigurationsdatei — der Konfigurationsabschnitt
sandboxauf Nutzerebene - Berechtigungen — Berechtigungsbereiche, die beschreibbare Sandbox-Pfade und Sperrregeln steuern

