Remarque
Les environnements de test dans le cloud et locaux pour GitHub Copilot sont en préversion publique et sont susceptibles d’être modifiés.
Présentation
Copilot les sandboxes dans le cloud et en local constituent la plateforme d’exécution sous-tendant des expériences sécurisées en sandbox pour GitHub Copilot CLI et le GitHub Copilot app. À mesure que Copilot effectue davantage d’actions en votre nom — en exécutant des outils, des commandes et en modifiant des fichiers —, le sandboxing offre l’isolation, la portabilité et les contrôles de politique nécessaires pour adopter en toute sécurité des flux de travail agentiques.
Le bac à sable est disponible dans les deux GitHub Copilot CLI et les GitHub Copilot appdeux surfaces l’exposent différemment :
- Dans Copilot CLI, vous contrôlez à la fois le bac à sable local et cloud avec les commandes et les paramètres décrits dans cet article.
- Dans le GitHub Copilot app, vous pouvez exécuter une session dans une sandbox cloud ou utiliser une sandbox locale pour les sessions sur un dépôt local et un arbre de travail. Les paramètres du projet définissent les paramètres par défaut des nouvelles sessions locales, et vous pouvez modifier l’isolation d’une session locale active. Pour plus d’informations, consultez « Travailler avec les sessions de l’agent dans l’application GitHub Copilot ».
Les paramètres de bac à sable local sont configurés séparément dans Copilot CLI et dans le GitHub Copilot app. L’activation ou la configuration du bac à sable local dans une surface ne la modifie pas dans l’autre.
Grâce au sandboxing, vous pouvez choisir où Copilot s’exécute :
- Bac à sable local : exécutez Copilot en toute sécurité sur votre propre ordinateur. Les commandes qui s’exécutent Copilot ont un accès restreint à votre système de fichiers, à votre réseau et aux fonctionnalités système. Vous pouvez utiliser le bac à sable local sans frais supplémentaires.
- Exécution isolée dans le cloud : exécutez à distance une session entière Copilot, dans un environnement Linux entièrement isolé et éphémère hébergé par GitHub. Le bac à sable cloud est facturé en fonction de l’utilisation.
Bac à sable local
Remarque
- Dans Copilot CLI, le bac à sable local est actuellement une fonctionnalité expérimentale. Pour l’utiliser, démarrez l’interface CLI avec l’option
‑‑experimentalde ligne de commande ou entrez/experimental onpendant une session. - Dans le GitHub Copilot app, le bac à sable local est en préversion publique et est susceptible d’être modifié.
Le bac à sable local permet Copilot de s’exécuter dans un environnement en bac à sable directement sur votre ordinateur, avec un accès restreint à votre système de fichiers, à la connectivité réseau et aux fonctionnalités système. Vous pouvez configurer l’isolation locale dans Copilot CLI ou GitHub Copilot app.
Le bac à sable local est désactivé par défaut. Jusqu’à ce que vous l’activez, les commandes d’interpréteur de commandes qui Copilot s’exécutent directement sur votre ordinateur avec le même accès que votre compte d’utilisateur : elles peuvent lire, écrire et supprimer où que vous puissiez, atteindre n’importe quel réseau auquel votre ordinateur peut accéder et utiliser vos informations d’identification sans restriction. Activer le bac à sable local restreint cet accès selon une politique que vous contrôlez.
Fonctionnement du bac à sable local
Le bac à sable local repose sur Microsoft eXecution Container (MXC), une technologie multiplateforme qui fournit une interface commune aux mécanismes d’isolation disponibles sur chaque système d’exploitation. Copilot CLI déclare la politique de sandbox qu’il veut mettre en œuvre — quels chemins sont accessibles en lecture ou en écriture, si l’accès réseau est autorisé, etc. — et MXC applique cette politique à l’aide du mécanisme d’isolation approprié pour votre système d’exploitation.
Les technologies d’isolation existent sur un spectre, de l’isolation forte, comme les hyperviseurs complets ou les conteneurs, à une isolation plus légère, comme le processus au niveau du système d’exploitation et l’isolement du système de fichiers. Le bac à sable local se situe actuellement parmi les solutions les plus légères de ce spectre : il limite ce qu’un processus peut lire, écrire et ce à quoi il peut accéder sur le réseau, mais il n’exécute pas vos commandes dans une machine virtuelle ou un conteneur distinct. Si vous souhaitez déterminer si ce niveau d’isolation répond à vos exigences de sécurité, consultez le référentiel microsoft/mxc pour plus d’informations sur l’implémentation.
Pour plus d’informations, consultez « Présentation des stratégies de système de fichiers pour le bac à sable local dans GitHub Copilot CLI ».
Activation du bac à sable local
Pour activer le bac à sable local à l’intérieur d’une Copilot CLI session, exécutez :
/sandbox enable
/sandbox enable
Après avoir activé le bac à sable local, les commandes et les outils qu’un agent s’exécute en votre nom : commandes shell, recherche de fichiers et, par défaut, les serveurs MCP et langage (LSP) que l’interface CLI démarre, s’exécutent à l’intérieur d’un bac à sable au niveau du système d’exploitation, ce qui limite leur accès à votre système. L’interface CLI continue d’utiliser le bac à sable local chaque fois que vous utilisez l’interface CLI ultérieurement, pour une utilisation programmatique et interactive, jusqu’à ce que vous l’exécutez /sandbox disable pour la désactiver. Si les paramètres administrés par l’entreprise imposent l’utilisation du bac à sable, les paramètres ordinaires, les options de démarrage et /sandbox disable ne peuvent pas le désactiver. Si la stratégie effective autorise le contournement du bac à sable, vous pouvez toujours désactiver explicitement le bac à sable pour le reste de la session en cours depuis une demande active d’autorisation de contournement.
Les outils de fichiers intégrés de l’interface CLI ( les commandes internes qui font partie de l’interface CLI, plutôt que les commandes shell comme sed) s’exécutent dans l’interface CLI. Étant donné que l’interface CLI elle-même n’est pas en bac à sable, le bac à sable du système d’exploitation ne voit jamais les opérations de fichier effectuées par ces outils et ne peut pas les limiter. Au lieu de cela, les outils intégrés sont conçus pour vérifier eux-mêmes la politique du bac à sable et respecter vos paramètres dans la mesure du possible.
Pour plus d’informations sur l’activation du bac à sable local dans Copilot CLI, consultez Utiliser le sandbox local.
Dans les paramètres du projet GitHub Copilot app, les paramètres définissent l’isolation locale par défaut pour les nouvelles sessions de dépôt local et d’arborescence de travail. Vous pouvez également modifier le bac à sable pour une session locale active sans modifier la valeur par défaut du projet. Pour plus d’informations, consultez « Configuration du bac à sable local dans l’application GitHub Copilot ».
Configuration du bac à sable local
Vous pouvez utiliser le comportement d’isolation local par défaut, ou modifier les éléments auxquels Copilot peut accéder. Les contrôles disponibles dépendent de la surface que vous utilisez.
Dans Copilot CLI, vous pouvez contrôler plusieurs dimensions d’accès :
- Système de fichiers : accorder un accès en lecture seule ou en lecture/écriture à des chemins spécifiques ou refuser des chemins d’accès.
- Réseau : autorisez ou bloquez l’accès Internet sortant et l’accès au réseau local indépendamment.
- Informations d’identification : indiquez si vos informations d’identification Git et GitHub CLI (
gh) sont mises à disposition dans le bac à sable. - Sous-processus : indiquez si les serveurs MCP locaux et les serveurs linguistiques s’exécutent également dans le bac à sable. Les serveurs MCP distants ne sont jamais en bac à sable.
- Trousseau (macOS) : indiquez si le trousseau système est accessible depuis la sandbox.
- Exceptions par commande : autorisez ou empêchez les commandes individuelles de s’exécuter en dehors du bac à sable lorsqu’elles ont besoin d’un accès plus large.
Pour plus d’informations sur la configuration des paramètres de bac à sable local dans Copilot CLI, consultez Configuration des paramètres de bac à sable local.
Dans les paramètres du projet GitHub Copilot app, seul un sous-ensemble de ces contrôles est disponible :
- Système de fichiers : accorder un accès en lecture seule ou en lecture/écriture supplémentaire à des chemins d’accès spécifiques ou refuser des chemins d’accès.
- Réseau : autorisez ou bloquez l’accès internet sortant et au réseau local.
- Informations d’identification : indiquez si vos informations d’identification et GitHub CLI Git sont disponibles dans le bac à sable.
L’application peut également vous demander d’approuver une commande individuelle à exécuter en dehors du bac à sable. Vous ne pouvez pas configurer si les demandes de contournement sont autorisées dans les paramètres du projet. Pour plus d’informations sur la façon de configurer la stratégie du projet et de modifier le mode bac à sable d’une session locale active, consultez Configuration du bac à sable local dans l’application GitHub Copilot.
Prise en charge multiplateforme
Le bac à sable local est disponible sur macOS, sur Linux et sur les builds Windows 11 récentes. Chaque système d’exploitation utilise un serveur principal d’isolation différent, de sorte que les exigences sont différentes :
- macOS utilise le back-end de la ceinture de sécurité. Copilot CLI applique à chaque commande isolée dans un bac à sable un profil limité au processus. Utilisez macOS 15 (Sequoia) ou version ultérieure. Copilot CLI ne bloque pas un macOS plus ancien, mais le back-end n’est pas testé là-bas.
- Linux utilise le back-end bubblewrap. Installez bubblewrap 0.5.0 ou une version ultérieure, et assurez-vous que
bwrapse trouve dans votrePATH. Si/sandboxindique que votrebwrapest obsolète, mettez à niveau le paquet. Lorsque la stratégie de bac à sable autorise le trafic sortant, vous devez également disposer des options suivantes :slirp4netnssur votrePATH.unshareetnsenterde util-linux 2.35 ou d’une version ultérieure, avec prise en charge de--map-current-useret de--keep-caps.iptables,ip6tableset leurs fichiers binaires de restauration. Utiliseznf_tablesbackend. Le back-end hérité fonctionne également, mais uniquement si vous pouvez écrire dans/run/xtables.lock.- Accès à
/dev/net/tun.
- Windows utilise le niveau BaseContainer du back-end ProcessContainer. Copilot CLI n’utilise pas les niveaux de repli d’AppContainer. Si votre version de Windows ne peut pas fournir BaseContainer, Copilot CLI indique que l’isolation en bac à sable n’est pas prise en charge. Pour rechercher les versions de Windows prises en charge, consultez Prise en charge du système d’exploitation Windows pour l’isolation (sandboxing) de Copilot.
Prise en charge du proxy
Le proxy de bac à sable fonctionne différemment sur chaque système d’exploitation :
- macOS : Copilot CLI ne donne pas le proxy à Seatbelt. Il définit
HTTP_PROXY,HTTPS_PROXYetALL_PROXYdans l’environnement bac à sable (sandbox) à la place. Seuls les programmes qui obéissent à ces variables utilisent le proxy. Un programme qui les ignore se connecte directement. - Linux: bubblewrap impose l’utilisation du proxy. Le sandbox dispose d’un espace de noms réseau privé, et seul le point de terminaison du proxy est autorisé. Les exigences Linux pour le trafic sortant répertorié dans la prise en charge multiplateforme s’appliquent également lorsque vous configurez un proxy en amont. Le proxy doit avoir une adresse IPv4, car Copilot CLI refuse un proxy auquel seul IPv6 peut atteindre. L’URL du proxy ne doit pas contenir d’informations d’identification. Donnez donc les informations d’identification au proxy lui-même.
- Windows : le proxy n’est pas disponible. Dans Copilot CLI, n’utilisez pas non plus de chemins refusés. Si une stratégie de bac à sable CLI inclut l’un de ces paramètres, la commande exécutée dans le bac à sable échoue et renvoie une erreur. Dans le GitHub Copilot appfichier , vous pouvez enregistrer les chemins refusés dans les paramètres du projet. Si les fonctionnalités de BaseContainer actives ne peuvent pas appliquer un chemin refusé, la commande en bac à sable échoue au lieu d’être exécutée avec une stratégie plus faible ou sans bac à sable.
Sur Linux, bubblewrap ne peut pas contrôler l’accès au réseau local indépendamment pour les processus générés, notamment les commandes shell et les serveurs MCP ou LSP locaux. Dans le paramètre GitHub Copilot appde réseau local, le réglage du réseau local s’applique toujours aux opérations au sein du processus, telles que les requêtes Web et les connexions MCP distantes.
Si votre hôte ne prend pas en charge le bac à sable local
Dans Copilot CLI, le bac à sable est désactivé pour la session et une notification s’affiche. Les commandes du shell et les services exécutés dans un bac à sable s’exécutent alors hors du bac à sable, et votre paramètre sandbox.enabled ne change pas. Si votre entreprise applique le bac à sable via les paramètres gérés par l’appareil, la session échoue à la place : les commandes en bac à sable ne s’exécutent pas.
Dans le GitHub Copilot app, la prise en charge de l’hôte est vérifiée lorsque le premier interpréteur de commandes en bac à sable démarre. Si l’hôte ne peut pas appliquer la stratégie demandée, le shell échoue avec un message d’erreur indiquant une plateforme non prise en charge ou une stratégie non prise en charge, et ne s’exécute pas hors bac à sable.
Application de la stratégie d’entreprise
Les entreprises peuvent nécessiter un bac à sable local et appliquer sa configuration via des paramètres managés par le serveur, gérés par MDM ou gérés par des fichiers. Consultez « Prise en main des paramètres gérés par l’entreprise ».
Isolation en bac à sable dans le cloud
Le bac à sable cloud vous permet d’exécuter des sessions dans des environnements Linux entièrement isolés et éphémères hébergés par GitHub. Vous pouvez utiliser l’isolation dans le cloud à la fois depuis Copilot CLI et le GitHub Copilot app. Chaque session de bac à sable cloud est isolée de votre environnement local et d’autres sessions.
Le sandboxing dans le cloud s’appuie sur les environnements de bac à sable d’Azure Container Apps, GitHub assurant la couche d’identité, de stratégie et de facturation.
Remarque
Si vous obtenez Copilot par l’intermédiaire d’une organisation, l’accès au sandboxing dans le cloud dépend de son activation au niveau des paramètres de l’organisation ou de l’entreprise, cette fonctionnalité étant désactivée par défaut. Pour plus d’informations, consultez « Activation ou désactivation des bacs à sable cloud pour votre organisation ou entreprise ».
Démarrage d’une session de sandbox dans le cloud
Pour démarrer une session cloud, exécutez la commande suivante :
copilot ‑‑cloud ‑‑experimental
copilot ‑‑cloud ‑‑experimental
Remarque
Le bac à sable cloud est actuellement une fonctionnalité expérimentale. Pour l’utiliser, vous devez activer les fonctionnalités expérimentales pour Copilot CLI: par exemple, à l’aide de l’option ‑‑experimental de ligne de commande lors du démarrage d’une session CLI, comme indiqué ci-dessus.
L’option ‑‑cloud de ligne de commande lance une session interactive Copilot CLI à l’intérieur d’un bac à sable cloud. Vous pouvez inviter Copilot à effectuer des tâches, exécuter des commandes shell et effectuer une itération sur le code, de la même façon que dans une session locale. Les commandes que Copilot exécute s’exécutent dans l’environnement cloud, et non sur votre machine locale.
L’exécution copilot ‑‑cloud démarre une session unique Copilot CLI dans un bac à sable cloud. Elle n’affecte pas les sessions futures Copilot . Chaque fois que vous souhaitez exécuter une nouvelle session dans un bac à sable cloud, vous devez démarrer l’interface CLI avec l’option ‑‑cloud .
Remarque
Le bac à sable cloud est disponible uniquement pour les sessions interactives Copilot CLI . Vous ne pouvez pas exécuter la CLI de manière programmatique dans un sandbox cloud — c’est-à-dire que vous ne pouvez pas combiner l’option ‑‑cloud avec l’option -p ou l’option -i.
Dans le GitHub Copilot app, vous n’utilisez aucune commande pour démarrer une session de bac à sable dans le cloud. Choisissez plutôt l’option de bac à sable cloud lorsque vous créez une session. Pour plus d’informations, consultez « Travailler avec les sessions de l’agent dans l’application GitHub Copilot ».
Poursuivre les sessions d’un appareil à l’autre
Étant donné que les sessions de bac à sable cloud s’exécutent dans GitHubune infrastructure hébergée, vous pouvez récupérer une Copilot session sur n’importe quel appareil, quel que soit l’emplacement où la session a été démarrée à l’origine. Cela permet des flux de travail plus flexibles sans avoir à copier des fichiers ou à réinstaller des dépendances.
Décharger des flux de travail nécessitant beaucoup de ressources de calcul
Vous pouvez exécuter plusieurs Copilot tâches en parallèle dans le cloud sans consommer de ressources locales. Cela permet à votre environnement local de rester léger et réactif tout en faisant évoluer le travail piloté par des agents.
Gouvernance unifiée
Les stratégies de bac à sable cloud partagent la même configuration que les Copilot cloud agent stratégies, ce qui étend les contrôles de sécurité existants à l’exécution en bac à sable cloud sans configuration supplémentaire.
Cycle de vie de session
Une session de bac à sable cloud a trois états principaux :
- Actif : la session est en cours, et vous interagissez avec elle depuis Copilot CLI ou le GitHub Copilot app.
- Arrêtée : la session n’est pas en cours d’exécution, mais son état est sauvegardé. Lorsque vous le reprenez, vos fichiers, variables d’environnement et travaux en cours sont restaurés.
- Supprimé : la session et son état enregistré sont supprimés et ne peuvent pas être récupérés.
Lorsque vous arrêtez une session, le bac à sable cloud crée un instantané de son état afin de pouvoir récupérer l’emplacement où vous vous êtes arrêté ultérieurement. Lorsque vous supprimez une session, l’environnement en cours d’exécution et l’instantané sont supprimés.
Authentification et accès
Le sandboxing utilise votre Copilot authentification existante. Si vous pouvez vous connecter à Copilot CLI ou à GitHub Copilot app et que vous avez accès à Copilot, vous n’avez pas besoin de configurer une authentification distincte pour les options d’isolation disponibles dans cette interface. Vous n’avez pas besoin de configurer un fournisseur de cloud distinct, de gérer des clés API ou de configurer l’infrastructure.
Un propriétaire d’organisation ou d’entreprise doit activer la stratégie d’accès au bac à sable cloud dans les paramètres de l’organisation ou de l’entreprise avant que les membres puissent utiliser des bacs à sable cloud.
Pour plus d’informations sur l’activation ou la désactivation des bacs à sable cloud pour les membres de votre organisation, consultez Activation ou désactivation des bacs à sable cloud pour votre organisation ou entreprise.
Billing
Le bac à sable local est inclus dans le siège standard GitHub Copilot sans frais supplémentaires.
Le bac à sable cloud est facturé en fonction de l’utilisation. GitHub mesure l’utilisation du bac à sable cloud sur trois mètres :
| Compteur | Description | Unité | Prix (USD) |
|---|---|---|---|
| Compute | Durée d’exécution d’une session de bac à sable dans le cloud. | Calculer le deuxième | 0,000024 $ |
| Memory | Mémoire allouée à une session de bac à sable dans le cloud lorsqu’elle est en cours d’exécution. | Gio-seconde | 0,000003 $ |
| Storage | Stockage d’instantanés pour les sessions arrêtées. | GiB mois | 0,005 USD |
Pour plus d’informations sur la façon dont l’utilisation du bac à sable cloud est mesurée et facturée, consultez Facturation des bacs à sable cloud et locaux pour GitHub Copilot.