Observação
Sandboxes na nuvem para GitHub Copilot estão em prévia pública e sujeitas a alterações.
Introdução
Copilot sandboxes em nuvem e locais são a plataforma de execução que viabiliza experiências seguras em sandbox para GitHub Copilot CLI e o GitHub Copilot app. À medida que Copilot realiza mais ações em seu nome — executando ferramentas, executando comandos e modificando arquivos —, o isolamento em sandbox fornece o isolamento, a portabilidade e os controles de políticas necessários para adotar com segurança fluxos de trabalho com agentes.
Sandboxing está disponível em ambos GitHub Copilot CLI e GitHub Copilot app, mas as duas interfaces o disponibilizam de maneiras diferentes:
- Em Copilot CLI, você controla o sandboxing local e de nuvem com os comandos e as configurações descritos neste artigo.
- No GitHub Copilot app, você pode executar uma sessão em um sandbox na nuvem ou usar sandbox local para sessões de repositório local e árvore de trabalho. As configurações do projeto definem a configuração padrão para novas sessões locais, e você pode alterar o isolamento de uma sessão local ativa. Para obter mais informações, consulte Trabalhando com sessões de agente no GitHub aplicativo Copilot.
As configurações da sandbox local são configuradas separadamente em Copilot CLI e em GitHub Copilot app. Habilitar ou configurar o isolamento local em uma interface não altera essa configuração na outra.
Com o sandboxing, você pode escolher onde Copilot é executado:
- Área restrita local: execute Copilot com segurança em seu próprio computador. Os comandos que Copilot executa têm acesso restrito ao sistema de arquivos, à rede e às capacidades do sistema. Você pode usar sandbox local sem custo adicional.
- Área restrita de nuvem: execute uma sessão Copilot inteira remotamente dentro de um ambiente Linux totalmente isolado e efêmero hospedado por GitHub. O sandboxing em nuvem é cobrado de acordo com o uso.
Área restrita local
O isolamento local permite executar Copilot em um ambiente isolado diretamente na sua máquina, com acesso restrito ao seu sistema de arquivos, à conexão de rede e aos recursos do sistema. Você pode configurar o isolamento local em Copilot CLI ou no GitHub Copilot app.
O isolamento em sandbox local fica desativado por padrão. Até que você o habilite, os comandos do shell que Copilot executa são executados diretamente na sua máquina com o mesmo acesso da sua conta de usuário: eles podem ler, escrever e excluir em qualquer lugar em que você puder, acessar qualquer rede que sua máquina possa acessar e usar suas credenciais sem restrição. Habilitar a área restrita local restringe esse acesso a uma política que você controla.
Como funciona o sandboxing local
O sandboxing local usa o Microsoft eXecution Container (MXC), uma tecnologia multiplataforma que fornece uma interface comum para os mecanismos de isolamento disponíveis em cada sistema operacional. Copilot CLI declara a política de área restrita que deseja impor — quais caminhos são legíveis ou graváveis, se o acesso à rede é permitido e assim por diante — e o MXC aplica essa política usando o back-end de isolamento apropriado para seu sistema operacional.
As tecnologias de isolamento existem em um espectro, desde um isolamento forte, como hipervisores completos ou contêineres, até o isolamento de peso mais leve, como o processo no nível do sistema operacional e a contenção do sistema de arquivos. Atualmente, o sandboxing local está na extremidade mais leve desse espectro: restringe o que um processo pode ler, gravar e alcançar na rede, mas não executa seus comandos dentro de uma máquina virtual ou contêiner separado. Se você quiser avaliar se esse nível de isolamento atende aos seus requisitos de segurança, consulte o repositório microsoft/mxc para obter detalhes da implementação.
Para obter mais informações, consulte Noções básicas sobre políticas de sistema de arquivos para área restrita local em GitHub Copilot CLI.
Ativando o sandbox local
Para habilitar o sandboxing local dentro de uma Copilot CLI sessão, execute:
/sandbox enable
/sandbox enable
Depois de habilitar o sandboxing local, os comandos e as ferramentas que um agente executa em seu nome são executados dentro de uma área restrita no nível do sistema operacional que limita seu acesso ao seu sistema. Isso inclui comandos de shell, pesquisa de arquivos e, por padrão, quaisquer servidores MCP locais e servidores de linguagem (LSP).
Copilot continua a usar área restrita local, inclusive em sessões futuras, até que você execute /sandbox disable para desabilitá-la.
Se as configurações gerenciadas pela empresa exigirem sandbox, as configurações comuns e as opções de inicialização não poderão desativá-lo. Se a política efetiva permitir bypass de sandbox, você ainda poderá desabilitar o sandbox para o restante da sessão atual, seja por um prompt de permissão de bypass ou executando /sandbox disable. Isso não altera a política salva.
As ferramentas de arquivo internas da CLI — comandos de primeira parte que fazem parte da CLI, em vez de comandos de shell, como sed— são executadas em processo na CLI. Como a CLI em si não está em área restrita, a área restrita do sistema operacional nunca vê as operações de arquivo executadas por essas ferramentas e não pode restringi-las. Em vez disso, as ferramentas integradas foram projetadas para verificar por conta própria a política da sandbox e respeitar suas configurações na medida do possível.
No GitHub Copilot app, as configurações do projeto definem o padrão de área restrita local para novas sessões de repositório local e de árvore de trabalho. Você também pode alterar o isolamento de uma sessão local ativa sem alterar a configuração padrão do projeto.
Para obter mais informações sobre como habilitar o sandboxing local em Copilot CLI e Copilot app, consulte Usando o sandbox local.
Configurando o isolamento local
Você pode usar o comportamento de área restrita local padrão ou modificar o que Copilot pode acessar. Os controles disponíveis dependem da superfície usada.
Em Copilot CLI, você pode controlar várias dimensões de acesso:
- Sistema de arquivos: conceda acesso somente leitura ou leitura/gravação a caminhos específicos ou negue caminhos.
- Rede: controle o acesso à Internet de saída e o acesso à rede local ou permita e negue hosts específicos. As restrições disponíveis dependem do sistema operacional.
- Credenciais: Habilite a autenticação do Git e a autenticação GitHub CLI (
gh), ou mascare variáveis de ambiente adicionais. As ferramentas isoladas recebem placeholders, e um proxy local fornece as credenciais reais apenas para destinos HTTPS aprovados. - Subprocessos: escolha se servidores MCP locais e servidores de idioma também são executados dentro da área restrita. Os servidores MCP remotos nunca são protegidos por área restrita.
- Chaves (macOS): Escolha se o conjunto de chaves do sistema pode ser acessado de dentro do sandbox.
- Exceções por comando: permitir ou impedir que comandos individuais sejam executados fora da área restrita quando precisarem de acesso mais amplo.
No GitHub Copilot app, as configurações do projeto expõem um subconjunto desses controles:
- Sistema de arquivos: conceda acesso adicional somente leitura ou leitura/gravação a caminhos específicos ou negar caminhos.
- Rede: permitir ou bloquear o acesso à Internet e à rede local de saída.
- Credenciais: Escolha se suas credenciais do Git e GitHub CLI estão disponíveis no sandbox.
O aplicativo também pode solicitar que você aprove um comando individual para ser executado fora da área restrita. Não é possível configurar se as solicitações de bypass são permitidas nas configurações do projeto. Para obter mais informações sobre como configurar o sandboxing local no aplicativo ou na CLI, consulte Configurando as configurações locais da sandbox.
Suporte multiplataforma.
O sandboxing local está disponível no macOS, no Linux e em builds de Windows 11 recentes. Cada sistema operacional usa um back-end de isolamento diferente, portanto, os requisitos são diferentes:
- O macOS usa o back-end do Seatbelt. Copilot CLI aplica um perfil com escopo de processo a cada comando em área restrita. Use o macOS 15 (Sequoia) ou versão posterior. Copilot CLI não bloqueia um macOS mais antigo, mas o back-end não é testado lá.
- Linux usa o back-end bubblewrap. Instale o bubblewrap 0.5.0 ou superior e certifique-se de que
bwrapesteja no seuPATH. Se/sandboxinformar que seubwrapestá desatualizado, atualize o pacote. Quando a política de sandbox permite tráfego de saída, você também deve ter:slirp4netnsem seuPATH.unshareensenterdo util-linux 2.35 ou posterior, com suporte a--map-current-usere--keep-caps.iptables,ip6tablese seus binários de restauração. Use o back-end denf_tables. O backend legado também funciona, mas apenas se você puder escrever em/run/xtables.lock.- Acesso a
/dev/net/tun.
- O Windows requer uma atualização recente do Windows 11 que dá suporte ao isolamento em sandbox. O suporte para recursos como caminhos negados, conexões localhost e proxy também depende de sua versão Windows. Se o host não puder dar suporte a um recurso solicitado, Copilot CLI informará o requisito em vez de executar o comando com restrições mais fracas. Consulte informações de atualização do Windows para o isolamento do Copilot.
Suporte a proxy
Em Copilot CLI, as regras de host e as configurações de proxy HTTP usam um proxy local interno. Sua aplicação difere de acordo com o sistema operacional:
- macOS e Linux: o sandbox restringe as conexões de saída ao proxy local. Programas que ignoram as configurações de proxy não podem se conectar diretamente em vez disso. Os requisitos do Linux para o tráfego de saída listado no suporte entre plataformas também se aplicam quando você configura um proxy.
- Windows: regras de proxy e host exigem uma versão compatível do Windows e que Permitir rede local esteja ativado. No Windows, o sandbox depende de programas que respeitam as configurações de proxy. Como resultado, esses controles não fornecem a mesma proteção contra conexões diretas que no macOS e linux.
Em GitHub Copilot app, você pode salvar os caminhos negados nas configurações do projeto. Se os recursos ativos do BaseContainer não puderem impor um caminho negado, o comando em área restrita falhará em vez de ser executado com uma política mais fraca ou sem uma área restrita.
No Linux, o bubblewrap não pode controlar o acesso à rede local independentemente para processos gerados, incluindo comandos de shell e servidores MCP ou LSP locais. A configuração de rede local ainda se aplica a operações no processo, como solicitações da Web e conexões MCP remotas, tanto na CLI quanto no aplicativo.
Se o host não der suporte ao sandboxing local
Em Copilot CLI, uma preferência salva do usuário para habilitar a área restrita será desativada para a sessão atual se o host não der suporte a ela. Um aviso explica que os comandos e serviços do shell serão executados sem uma sandbox. Sua configuração salva sandbox.enabled permanece inalterada. Executar /sandbox enable em um host sem suporte é recusado.
As configurações da empresa podem alterar esse comportamento. Em um host sem suporte, uma solicitação gerenciada pelo servidor para habilitar o sandboxing é recusada, a menos que as configurações gerenciadas efetivas também definirem sandbox.failIfUnavailable como true. As configurações gerenciadas pelo dispositivo podem exigir isolamento em sandbox mesmo em um host sem suporte. Comandos e serviços que exigem isolamento em sandbox passam a falhar em vez de ser executados sem sandbox. Quando as configurações gerenciadas efetivas definem sandbox.enabled e sandbox.failIfUnavailable como true, a CLI bloqueia as solicitações de modelo e a execução da ferramenta para a sessão se ela não puder impor a área restrita. Esses requisitos podem vir de configurações gerenciadas pelo servidor, configurações gerenciadas pelo dispositivo ou uma combinação de ambos.
Para o GitHub Copilot apphost, em um host que não dá suporte ao sandboxing local, uma sessão configurada para usar o sandboxing local pode começar normalmente, mas os comandos do shell e outros processos em área restrita falham quando Copilot tenta iniciá-los. O GitHub Copilot app preserva a preferência salva, e a operação com falha informa que não há suporte para sandboxing na plataforma. As configurações gerenciadas pelo dispositivo podem exigir esse comportamento de fail-closed e podem bloquear a execução do modelo e das ferramentas.
Imposição da política empresarial
As empresas podem exigir área restrita local e impor sua configuração por meio de configurações gerenciadas por servidor, gerenciadas por MDM ou gerenciadas com base em arquivo. Consulte Introdução às configurações gerenciadas pela empresa.
Área restrita na nuvem
O sandboxing de nuvem permite executar sessões dentro de ambientes linux totalmente isolados e efêmeros hospedados por GitHub. Você pode usar o sandbox em nuvem a partir de Copilot CLI e de GitHub Copilot app. Cada sessão de área restrita de nuvem é isolada do seu ambiente local e de outras sessões.
A área restrita em nuvem baseia-se em Áreas Restritas dos Aplicativos de Contêiner do Azure, com GitHub fornecendo a camada de identidade, política e cobrança.
Observação
Se você obtiver Copilot por meio de uma organização, o acesso ao isolamento em sandbox na nuvem dependerá de esse recurso estar habilitado nas configurações da organização ou da empresa, onde ele fica desabilitado por padrão. Para obter mais informações, consulte Habilitar ou desabilitar áreas restritas de nuvem para sua organização ou empresa.
Iniciando uma sessão de sandbox na nuvem
Para iniciar uma sessão com backup de nuvem, execute o seguinte comando:
copilot ‑‑cloud ‑‑experimental
copilot ‑‑cloud ‑‑experimental
Observação
Atualmente, o sandboxing de nuvem é um recurso experimental. Para usá-lo, você deve ter recursos experimentais habilitados para Copilot CLI— por exemplo, usando a opção de ‑‑experimental linha de comando ao iniciar uma sessão da CLI, conforme mostrado acima.
A opção de linha de comando ‑‑cloud inicia uma sessão interativa Copilot CLI em uma sandbox na nuvem. Você pode solicitar que Copilot execute tarefas, execute comandos de shell e itere no código, assim como faria em uma sessão local. Os comandos que Copilot executa são executados no ambiente de nuvem, não na sua máquina local.
Executar copilot ‑‑cloud inicia uma única sessão Copilot CLI em uma sandbox na nuvem. Isso não afeta sessões futuras Copilot . Sempre que quiser executar uma nova sessão em uma área restrita de nuvem, você deve iniciar a CLI com a opção ‑‑cloud .
Observação
O sandboxing na nuvem só está disponível para sessões interativas Copilot CLI . Você não pode executar a CLI programaticamente em um sandbox na nuvem — ou seja, não é possível combinar a opção ‑‑cloud com as opções -p ou -i.
No GitHub Copilot app, não é necessário usar um comando para iniciar uma sessão de sandbox na nuvem. Em vez disso, escolha a opção de área restrita de nuvem ao criar uma nova sessão. Para obter mais informações, consulte Trabalhando com sessões de agente no GitHub aplicativo Copilot.
Continuar sessões entre dispositivos
Como as sessões de sandbox na nuvem são executadas em infraestrutura hospedada por GitHub, você pode retomar uma sessão Copilot em qualquer dispositivo, independentemente de onde ela tenha sido iniciada originalmente. Isso permite fluxos de trabalho mais flexíveis sem a necessidade de copiar arquivos ou reinstalar dependências.
Descarregar fluxos de trabalho com uso intensivo de computação
Você pode executar várias Copilot tarefas em paralelo na nuvem sem consumir recursos locais. Isso mantém o ambiente local leve e responsivo ao dimensionar o trabalho controlado pelo agente.
Governança unificada
As políticas de área restrita de nuvem compartilham a mesma configuração que Copilot cloud agent as políticas, estendendo os controles de segurança existentes para a execução em área restrita de nuvem sem configuração adicional.
Ciclo de vida da sessão
Uma sessão de área restrita de nuvem tem três estados principais:
- Ativo: A sessão está em execução e você está interagindo com ela de Copilot CLI ou do GitHub Copilot app.
- Parado: a sessão não está em execução no momento, mas seu estado é salvo. Quando você retomá-lo, seus arquivos, variáveis de ambiente e trabalho em andamento são restaurados.
- Excluído: a sessão e seu estado salvo são removidos e não podem ser recuperados.
Quando você encerra uma sessão, o sandbox na nuvem cria um snapshot do estado dela para que você possa retomar de onde parou depois. Quando você exclui uma sessão, o ambiente em execução e o instantâneo são removidos.
Autenticação e acesso
A área restrita usa sua autenticação Copilot existente. Se você puder entrar em Copilot CLI ou em GitHub Copilot app e tiver acesso a Copilot, não precisará configurar uma autenticação separada para as opções de isolamento disponíveis nesse ambiente. Você não precisa configurar um provedor de nuvem separado, gerenciar chaves de API ou configurar a infraestrutura.
Uma organização ou proprietário da empresa deve habilitar a política de acesso à Área Restrita de Nuvem nas configurações da organização ou da empresa antes que os membros possam usar áreas restritas de nuvem.
Para obter informações sobre como habilitar ou desabilitar áreas restritas de nuvem para membros da sua organização, consulte Habilitar ou desabilitar áreas restritas de nuvem para sua organização ou empresa.
Cobrança
A área restrita local é incluída na estação padrão GitHub Copilot sem custo adicional.
O sandboxing em nuvem é cobrado de acordo com o uso. GitHub mede o uso da área restrita em nuvem entre três métricas:
| Medidor | Description | Unidade | Preço (USD) |
|---|---|---|---|
| Computação | Tempo durante o qual uma sessão de sandbox na nuvem está em execução. | Segundos de computação | US$ 0,000024 |
| Memory | Memória alocada a uma sessão de sandbox na nuvem enquanto está em execução. | GiB segundo | US$ 0,000003 |
| Armazenamento | Armazenamento de instantâneos para sessões interrompidas. | GiB por mês | US$ 0,005 |
Para obter mais informações sobre como o uso da área restrita de nuvem é medido e cobrado, consulte Cobrança para áreas restritas locais e de nuvem para GitHub Copilot.