Introduction
Copilot Lokale Sandboxes sind die Ausführungsplattform, die sichere sandboxbasierte Umgebungen für GitHub Copilot CLI und die GitHub Copilot app bereitstellt. Da Copilot immer mehr Aktionen in Ihrem Namen übernimmt – Tools ausführt, Befehle ausführt und Dateien ändert –, bietet Sandboxing die Isolierung, Portabilität und Richtliniensteuerung, die erforderlich sind, um agentische Workflows sicher einzuführen.
Sandboxing ist sowohl in GitHub Copilot CLI als auch in der GitHub Copilot app verfügbar, aber die beiden Oberflächen stellen es unterschiedlich bereit:
- In Copilot CLI, Sie steuern lokale Sandboxing mit den Befehlen und Einstellungen, die in diesem Artikel beschrieben werden.
- In der GitHub Copilot app können Sie lokales Sandboxing für lokale Repository- und Working-Tree-Sitzungen verwenden. Die Projekteinstellungen legen die Standardeinstellung für neue lokale Sitzungen fest, und Sie können die Sandbox-Einstellungen für eine aktive lokale Sitzung ändern. Weitere Informationen findest du unter Arbeiten mit Agent-Sitzungen in der GitHub-Copilot-App.
Lokale Sandbox-Einstellungen werden in Copilot CLI und GitHub Copilot app separat konfiguriert. Das Aktivieren oder Konfigurieren der lokalen Sandbox in einer Oberfläche hat keine Auswirkungen darauf, wie sie in der anderen Oberfläche konfiguriert ist.
Mit einer Sandbox können Sie auswählen, wo Copilot ausgeführt werden soll:
- Lokales Sandboxing: Führen Sie Copilot sicher auf Ihrem eigenen Computer aus. Die ausgeführten Copilot Befehle haben eingeschränkten Zugriff auf Ihre Dateisystem-, Netzwerk- und Systemfunktionen. Sie können die lokale Sandbox ohne zusätzliche Kosten verwenden.
- Cloud-Sandboxing: Führen Sie eine gesamte Copilot-Sitzung remote in einer vollständig isolierten, ephemeren Linux-Umgebung aus, die von GitHub gehostet wird. Cloud-Sandboxing wird basierend auf der Nutzung in Rechnung gestellt. Weitere Informationen findest du unter Informationen zu Cloud-Sandboxes für GitHub Copilot.
Lokales Sandboxing
Lokales Sandboxing ermöglicht es, Copilot direkt auf Ihrem Computer in einer Sandbox-Umgebung auszuführen, mit eingeschränktem Zugriff auf Ihr Dateisystem, Netzwerkverbindungen und Systemfunktionen. Sie können die lokale Sandbox in Copilot CLI oder in der GitHub Copilot app konfigurieren.
Die lokale Sandkastenfunktion ist standardmäßig deaktiviert. Bis Sie dies aktivieren, werden die von Copilot ausgeführten Shell-Befehle direkt auf Ihrem Rechner mit denselben Zugriffsrechten wie Ihr Benutzerkonto ausgeführt: Sie können überall dort lesen, schreiben und löschen, wo auch Sie es können, auf jedes Netzwerk zugreifen, das Ihr Rechner erreichen kann, und Ihre Anmeldeinformationen uneingeschränkt verwenden. Wenn Sie lokale Sandboxing aktivieren, wird dieser Zugriff auf eine von Ihnen gesteuerte Richtlinie eingeschränkt.
Funktionsweise des lokalen Sandkastens
Lokale Sandboxing wird von Microsoft eXecution Container (MXC) unterstützt, einer plattformübergreifenden Technologie, die eine gemeinsame Schnittstelle zu den Isolationsmechanismen bereitstellt, die auf jedem Betriebssystem verfügbar sind. Copilot CLI deklariert die Sandkastenrichtlinie, die er erzwingen möchte – welche Pfade lesbar oder schreibbar sind, ob der Netzwerkzugriff zulässig ist usw. – und MXC wendet diese Richtlinie mit dem entsprechenden Isolations-Back-End für Ihr Betriebssystem an.
Isolationstechnologien bestehen in einem Spektrum, von einer starken Isolation wie vollständigen Hypervisoren oder Containern bis hin zur leichteren Isolation wie Prozess- und Dateisystemeindämmung auf Betriebssystemebene. Lokales Sandboxing befindet sich derzeit eher am leichtgewichtigen Ende dieses Spektrums: Es schränkt ein, was ein Prozess lesen und schreiben kann und auf welche Netzwerkressourcen er zugreifen kann, führt Ihre Befehle jedoch nicht in einer separaten virtuellen Maschine oder einem Container aus. Wenn Sie bewerten möchten, ob diese Isolationsstufe Ihre Sicherheitsanforderungen erfüllt, finden Sie im Microsoft/mxc-Repository Details zur Implementierung.
Weitere Informationen findest du unter Grundlegendes zu Dateisystemrichtlinien für lokale Sandboxing in GitHub Copilot CLI.
Lokale Sandbox aktivieren
Führen Sie Folgendes aus, um lokales Sandboxing innerhalb einer Copilot CLI-Sitzung zu aktivieren:
/sandbox enable
/sandbox enable
Nachdem Sie die lokale Sandboxing aktiviert haben, werden die Befehle und Tools, die ein Agent in Ihrem Auftrag ausführt, in einer Sandbox auf Betriebssystemebene ausgeführt, die den Zugriff auf Ihr System beschränkt. Dazu gehören Shellbefehle, Dateisuche und standardmäßig alle lokalen MCP- und Sprachserver (LSP).
Copilot verwendet weiterhin lokales Sandboxing, auch in zukünftigen Sitzungen, bis Sie /sandbox disable ausführen, um es zu deaktivieren.
Wenn vom Unternehmen verwaltete Einstellungen Sandboxing erfordern, können normale Einstellungen und Startoptionen sie nicht deaktivieren. Wenn die effektive Richtlinie die Sandkastenumgehung zulässt, können Sie das Sandboxing für den Rest der aktuellen Sitzung weiterhin deaktivieren, entweder über eine Aufforderung zur Umgehungsberechtigung oder durch Ausführen von /sandbox disable. Dadurch wird die gespeicherte Richtlinie nicht geändert.
Die integrierten Dateitools der CLI – eigene Befehle, die Teil der CLI sind, und keine Shell-Befehle wie sed – laufen innerhalb des CLI-Prozesses. Da die CLI selbst nicht in einer Sandbox ausgeführt wird, erfasst die Betriebssystem-Sandbox die Dateioperationen, die diese Tools ausführen, nicht und kann sie daher nicht einschränken. Stattdessen sind die integrierten Tools so programmiert, dass sie die Sandbox-Richtlinie eigenständig prüfen und Ihre konfigurierten Einstellungen nach besten Kräften berücksichtigen.
In den Repository-Einstellungen GitHub Copilot app wird der Standard für lokale Sandbox-Isolierung für neue lokale Repository- und Working-Tree-Sitzungen definiert. Sie können auch das Sandboxing für eine aktive lokale Sitzung ändern, ohne den Standard des Repositorys zu ändern.
Weitere Informationen zum Aktivieren der lokalen Sandbox-Isolierung in Copilot CLI und der Copilot app finden Sie unter Verwenden einer lokalen Sandbox.
Konfigurieren der lokalen Sandkastenumgebung
Sie können die standardmäßige lokale Sandbox-Isolierung verwenden oder ändern, worauf Copilot zugreifen kann. Die verfügbaren Steuerelemente hängen von der verwendeten Oberfläche ab.
In Copilot CLI, können Sie mehrere Dimensionen des Zugriffs steuern:
- Dateisystem: Gewähren Sie schreibgeschützten oder Lese-/Schreibzugriff auf bestimmte Pfade oder verweigern Sie den Zugriff auf Pfade.
- Netzwerk: Ausgehenden Internetzugriff und lokalen Netzwerkzugriff steuern oder bestimmte Hosts zulassen und verweigern. Die verfügbaren Einschränkungen hängen vom Betriebssystem ab.
- Anmeldeinformationen: Aktivieren Sie die Git- und GitHub CLI (
gh) Authentifizierung, oder maskieren Sie zusätzliche Umgebungsvariablen. Sandkastentools empfangen Platzhalter, und ein lokaler Proxy stellt die tatsächlichen Anmeldeinformationen nur für genehmigte HTTPS-Ziele bereit. - Unterverarbeitungen: Wählen Sie aus, ob lokale MCP-Server und Sprachserver auch innerhalb der Sandbox ausgeführt werden. Remote-MCP-Server werden nie in einer Sandbox ausgeführt.
- Schlüsselbund (macOS): Wählen Sie aus, ob der Systemschlüsselbund innerhalb der Sandbox erreichbar ist.
- Ausnahmen pro Befehl: Zulassen oder Verhindern, dass einzelne Befehle außerhalb der Sandbox ausgeführt werden, wenn sie umfassenderen Zugriff benötigen.
In den GitHub Copilot appRepositoryeinstellungen wird eine Teilmenge dieser Steuerelemente verfügbar gemacht:
- Dateisystem: Gewähren Sie zusätzlichen Nur-Lese- oder Lese-/Schreibzugriff auf bestimmte Pfade oder verweigern Sie den Zugriff auf Pfade.
- Netzwerk: Zulassen oder Blockieren des ausgehenden Internets und des lokalen Netzwerkzugriffs.
- Anmeldeinformationen: Wählen Sie aus, ob Ihre Git- und GitHub CLI Anmeldeinformationen im Sandkasten verfügbar sind.
Die App kann Sie auch bitten, einen einzelnen Befehl zu genehmigen, der außerhalb der Sandbox ausgeführt werden soll. Sie können nicht konfigurieren, ob Umgehungsanforderungen in den Repositoryeinstellungen zulässig sind. Weitere Informationen zum Konfigurieren der lokalen Sandboxing in der App oder CLI finden Sie unter Konfigurieren lokaler Sandkasteneinstellungen.
Plattformübergreifender Support
Lokale Sandboxing ist unter macOS, unter Linux und in den letzten Windows 11 Builds verfügbar. Jedes Betriebssystem verwendet ein anderes Isolations-Back-End, sodass die Anforderungen unterschiedlich sind:
- macOS verwendet das Seatbelt-Back-End. Copilot CLI weist jedem in einer Sandbox ausgeführten Befehl ein prozessgebundenes Profil zu. Verwenden Sie macOS 15 (Sequoia) oder höher. Copilot CLI blockiert kein älteres macOS, aber das Back-End wird dort nicht getestet.
- Linux verwendet das Bubblewrap-Back-End. Installieren Sie Bubblewrap 0.5.0 oder höher, und stellen Sie sicher, dass sich
bwrapin IhremPATHbefindet. Wenn/sandboxmeldet, dass Ihrbwrapzu alt ist, aktualisieren Sie das Paket. Wenn die Sandbox-Richtlinie ausgehenden Datenverkehr zulässt, müssen Sie außerdem Folgendes haben:slirp4netnsauf IhremPATH.unshareundnsentervon util-linux 2.35 oder höher, mit--map-current-userund--keep-capsUnterstützung.iptables,ip6tablesund deren Wiederherstellungs-Binärdateien. Verwenden Sie dasnf_tablesBack-End. Das Legacy-Backend funktioniert auch, aber nur, wenn Sie in/run/xtables.lockschreiben können.- Zugriff auf
/dev/net/tun.
- Windows erfordert ein aktuelles Windows 11-Update, das Sandboxing unterstützt. Die Unterstützung für Features wie verweigerte Pfade, Localhost-Verbindungen und Proxying hängt auch von Ihrer Windows Version ab. Wenn Ihr Host ein angefordertes Feature nicht unterstützen kann, meldet Copilot CLI die Anforderung, anstatt den Befehl mit schwächeren Einschränkungen auszuführen. Siehe Informationen zu Windows-Updates für die Copilot-Sandbox.
Proxyunterstützung
In Copilot CLI, Hostregeln und HTTP-Proxyeinstellungen verwenden einen integrierten lokalen Proxy. Ihre Umsetzung unterscheidet sich je nach Betriebssystem:
- macOS und Linux: Die Sandbox schränkt ausgehende Verbindungen zum lokalen Proxy ein. Programme, die Proxyeinstellungen ignorieren, können stattdessen keine direkte Verbindung herstellen. Die Linux-Anforderungen für ausgehenden Datenverkehr, die in der Plattformübergreifenden Unterstützung aufgeführt sind, gelten auch, wenn Sie einen Proxy konfigurieren.
- Windows: Proxy- und Hostregeln erfordern eine unterstützte Windows-Version und Lokales Netzwerk zulassen aktiviert zu sein. Unter Windows basiert die Sandbox auf Programmen, die die Proxy-Einstellungen berücksichtigen. Daher bieten diese Steuerelemente nicht den gleichen Schutz vor direkten Verbindungen wie unter macOS und Linux.
Im GitHub Copilot app können Sie verweigerte Pfade in den Repository-Einstellungen speichern. Wenn die aktiven BaseContainer-Funktionen keinen verweigerten Pfad erzwingen können, schlägt der isolierte Befehl fehl, anstatt mit einer schwächeren Richtlinie oder ohne Sandbox ausgeführt zu werden.
Unter Linux kann Bubblewrap den Zugriff auf das lokale Netzwerk für gestartete Prozesse nicht unabhängig kontrollieren, darunter Shell-Befehle sowie lokale MCP- oder LSP-Server. Die Einstellung des lokalen Netzwerks gilt weiterhin für In-Process-Vorgänge, z. B. Webanforderungen und Remote-MCP-Verbindungen, sowohl in der CLI als auch in der App.
Wenn Ihr Host lokale Sandboxing nicht unterstützt
In Copilot CLI wird eine gespeicherte Benutzereinstellung zum Aktivieren von Sandboxing für die aktuelle Sitzung deaktiviert, wenn der Host dies nicht unterstützt. In einem Hinweis wird erläutert, dass Shellbefehle und -dienste ohne Sandbox ausgeführt werden. Ihre gespeicherte sandbox.enabled Einstellung bleibt unverändert. Die Ausführung /sandbox enable auf einem nicht unterstützten Host wird verweigert.
Unternehmenseinstellungen können dieses Verhalten ändern. Auf einem nicht unterstützten Host wird eine serververwaltete Anforderung zum Aktivieren der Sandkastenfunktion abgelehnt, es sei denn, effektive verwaltete Einstellungen setzen ebenfalls sandbox.failIfUnavailable auf true. Geräteverwaltete Einstellungen können auch auf einem nicht unterstützten Host eine Sandbox erfordern. Befehle und Dienste, die Sandboxing erfordern, schlagen dann fehl, anstatt ohne Sandboxing ausgeführt zu werden. Wenn effektive verwaltete Einstellungen sowohl als auch auf festlegen, blockiert die CLI Modellanforderungen und die Toolausführung für die Sitzung, wenn sie keine Sandboxing erzwingen kann. Diese Anforderungen können aus serververwalteten Einstellungen, geräteverwalteten Einstellungen oder einer Kombination aus beiden stammen.
Bei einem GitHub Copilot app-Host, der die lokale Sandbox nicht unterstützt, kann eine Sitzung, die für die Verwendung der lokalen Sandbox konfiguriert ist, normal gestartet werden, aber Shellbefehle und andere Sandbox-Prozesse schlagen fehl, wenn Copilot versucht, sie zu starten. GitHub Copilot app behält die gespeicherte Einstellung bei, und der fehlgeschlagene Vorgang meldet, dass die Sandkastenerstellung auf der Plattform nicht unterstützt wird. Geräteverwaltete Einstellungen erfordern möglicherweise dieses Fail-Closed-Verhalten und können die Ausführung von Modell und Tool blockieren.
Durchsetzung von Unternehmensrichtlinien
Unternehmen können lokale Sandboxing erfordern und ihre Konfiguration über vom Server verwaltete, von MDM verwaltete oder dateibasierte verwaltete Einstellungen erzwingen. Siehe Erste Schritte mit unternehmensverwalteten Einstellungen.
Authentifizierung und Zugriff
Sandboxing nutzt Ihre vorhandene Copilot Authentifizierung. Wenn Sie sich bei GitHub Copilot app oder bei Copilot anmelden und Zugriff auf Copilot CLI haben, müssen Sie keine separate Authentifizierung für die Sandboxing-Optionen konfigurieren, die auf dieser Oberfläche verfügbar sind. Sie müssen keinen separaten Cloudanbieter konfigurieren, API-Schlüssel verwalten oder Infrastruktur einrichten.
Abrechnung
Lokales Sandboxing ist im Standard GitHub Copilot-Sitz ohne zusätzliche Kosten enthalten.