--sandbox esegue la CLI con isolamento a livello di sistema operativo, applicando a livello di sistema operativo gli ambiti di autorizzazione Read e Write attivi e, facoltativamente, limitando il traffico di rete.
Come funziona la sandbox
- I percorsi scrivibili derivano dagli ambiti delle autorizzazioni
Write(...)concessi, oltre che dalla directory del workspace - I percorsi leggibili derivano dagli ambiti
Read(...)concessi (i percorsi predefiniti della piattaforma, come/usr/bin, sono sempre leggibili) - Gli ambiti concessi nel corso della sessione espandono dinamicamente la sandbox per i comandi successivi
Filtro di rete
sandbox del file di configurazione (solo configurazione utente). Quando --sandbox è attivo e il filtraggio dei domini è configurato, viene avviato un proxy di rete gestito sull’interfaccia di loopback e il sandbox limita tutto il traffico dei processi figli a passare attraverso di esso.
Sintassi dei pattern di dominio:
Esempio:
Il filtraggio dei domini si applica quando la sandbox è attiva (
--sandbox). Senza --sandbox, la sezione relativa alla sandbox viene ignorata.Comandi esclusi
git che devono accedere alle credenziali o gli hook bloccati dalla sandbox. La sezione di configurazione sandbox.excluded consente di escludere i comandi corrispondenti dall’isolamento della sandbox usando la stessa sintassi di regola Exec(...) di autorizzazioni:
Esempio:
Exec(git push *) prevale su Exec(git *)), e quando corrispondono sia la configurazione utente sia le impostazioni del team, prevale il verdetto più restrittivo (deny > ask > allow). I comandi senza alcuna regola corrispondente — anche quando sandbox.excluded non è configurato — vengono sempre eseguiti all’interno della sandbox.
- In
sandbox.excludedsono supportate solo le regoleExec(...); qualsiasi altro tipo di regola (ad es.Read(...),Write(...)) viene ignorato con un avviso. - L’esclusione opera in modalità fail-closed: se un comando non può essere determinato in modo sicuro (ad es. perché non può essere analizzato), rimane all’interno della sandbox.
- Le esclusioni si applicano al percorso exec predefinito per comando. I comandi eseguiti tramite una shell PTY persistente (sessioni interattive, oppure quando
pty_for_noninteractive_execè abilitato) rimangono sempre all’interno della sandbox.
Applicazione a livello Enterprise
Modalità di applicazione della sandbox
--sandbox per tutta la tua organizzazione:
- Facoltativo (predefinito) — Gli utenti scelgono se specificare
--sandbox. Nessuna imposizione. - Obbligatorio — Il flag
--sandboxviene imposto per tutti gli utenti, anche se non lo specificano sulla riga di comando. Tutte le sessioni CLI vengono eseguite con sandboxing del file system a livello di sistema operativo, che applica gli ambiti di autorizzazione in lettura/scrittura.
Filtraggio dei domini Enterprise
- Allowlist di domini — Se impostata, solo i domini presenti in questo elenco sono raggiungibili tramite il proxy di rete della sandbox. Questo elenco è vincolante: sostituisce completamente qualsiasi
allowed_domainsconfigurato dall’utente. Gli utenti non possono aggiungere altri domini per aggirare le restrizioni impostate dagli amministratori. - Denylist di domini — Domini sempre bloccati. I domini negati a livello Enterprise sono additivi: vengono uniti ai
denied_domainslocali dell’utente, rendendo l’elenco risultante più restrittivo.
Poiché i
denied_domains locali dell’utente vengono mantenuti e uniti in modo additivo, un utente potrebbe negare un dominio presente nell’allowlist Enterprise. È intenzionale: l’effetto combinato è sempre più restrittivo, mai meno. Se questo causa problemi di accesso, l’utente deve rimuovere la voce in conflitto dalla propria configurazione locale.Comandi esclusi a livello Enterprise
- Allow / ask esclusi — regole
Exec(...)per i comandi che possono essere eseguiti fuori dal sandbox in tutta l’organizzazione, automaticamente o dopo una richiesta di conferma. - Deny esclusi — regole
Exec(...)per i comandi che non devono mai essere eseguiti fuori dal sandbox. Undenydel team ha la precedenza su qualsiasiallowoaska livello utente per i comandi corrispondenti, quindi gli utenti non possono escludere comandi che i loro admin hanno bloccato.
deny > ask > allow).
Esempio: bloccare tutte le esclusioni tranne gh. Un deny wildcard con un’eccezione allow mantiene tutti i comandi all’interno del sandbox tranne gh, indipendentemente da ciò che gli utenti configurano localmente. Questi valori vanno nella configurazione excluded-commands delle impostazioni del team (non nel file di configurazione dell’utente, quindi non c’è alcuna chiave sandbox esterna):
Exec(gh *) prevale sul wildcard Exec(**), i comandi gh vengono eseguiti fuori dal sandbox, mentre tutto il resto rimane all’interno — e il deny wildcard a livello di team prevale su qualsiasi regola allow o ask a livello di singolo utente per gli altri comandi.
Approfondimenti
- Team Settings — applicazione della sandbox a livello Enterprise e filtraggio dei domini
- Riferimento del file di configurazione — la sezione di configurazione
sandboxa livello utente - Autorizzazioni — gli ambiti di autorizzazione che determinano la risoluzione dei percorsi della sandbox

