Sandbox da Cortex Code CLI¶
A Cortex Code CLI pode executar comandos shell em sandbox para restringir o acesso ao sistema de arquivos e à rede e processar os recursos. O sandbox adiciona uma camada de isolamento para que o agente não modifique arquivos nem acesse recursos fora do seu projeto acidentalmente.
Importante
O suporte para este recurso é experimental e pode estar sujeito a alterações.
Suporte à plataforma¶
O sandbox usa os recursos de isolamento integrados do sistema operacional para restringir os comandos.
Plataforma |
Implementação |
Dependências |
|---|---|---|
macOS |
|
|
Linux |
|
|
Windows |
Tokens nativos restritos |
Nenhum |
Instalando dependências¶
macOS:
Debian/Ubuntu:
Fedora/RHEL:
Habilitando o sandbox¶
Use o comando de barra /sandbox na Cortex Code CLI:
Você também pode habilitar o sandbox no arquivo de configurações. Adicione um objeto sandbox a ~/.snowflake/cortex/settings.json (nível do usuário) ou a .snowflake/cortex/settings.json (nível do projeto):
O modo de permissão padrão é "regular". Para usar o modo de permissão automática, defina "mode": "autoAllow" explicitamente. Consulte Modos de permissão.
Modos de permissão¶
O sandbox tem dois modos de permissão que controlam como os comandos são aprovados:
Modo |
Valor de configuração |
Comportamento |
|---|---|---|
Permissão automática |
|
Os comandos que podem ser colocados em sandbox são executados automaticamente sem um aviso. Os comandos que não podem ser colocados em sandbox (por exemplo, aqueles que exigem acesso de rede a domínios não permitidos) são revertidos ao fluxo normal de permissão. |
Regular |
|
Todos os comandos solicitam aprovação, mesmo quando executados dentro do sandbox. |
Defina o modo com o comando /sandbox ou nas configurações:
Restrições de sistema de arquivos¶
O sandbox controla os caminhos em que os comandos podem ler e gravar.
Comportamento padrão¶
Diretório de trabalho: sempre permitido para leitura e gravação.
Diretório de habilidades (
~/.snowflake/cortex/skills): permitido.Diretório de contexto (
~/.snowflake/cortex/.ctx): permitido quandoctxAvailableestá habilitado.
Caminhos protegidos (sempre negados para gravação)¶
Os seguintes caminhos sempre são protegidos, seja qual for a sua configuração:
Arquivos de configuração shell:
~/.bashrc,~/.bash_profile,~/.zshrc,~/.zprofile,~/.profile,~/.bash_login,~/.bash_logoutGanchos do Git:
~/.git/hooks,.git/hooksConfiguração de SSH:
~/.ssh/authorized_keys,~/.ssh/configDiretórios e arquivos de configurações gerenciadas:
/Library/Application Support/Cortex/(macOS),/etc/cortex/(Linux),%ProgramData%\Cortex\(Windows)
Regras personalizadas de sistema de arquivos¶
Defina o acesso ao sistema de arquivos nas configurações:
Configuração |
Padrão |
Descrição |
|---|---|---|
|
|
Caminhos que o sandbox pode ler. Uma matriz vazia significa que todos os caminhos são permitidos (exceto aqueles em |
|
|
Caminhos que o sandbox não pode ler. Tem precedência sobre |
|
|
Caminhos em que o sandbox pode gravar. |
|
|
Caminhos em que o sandbox não pode gravar. Tem precedência sobre |
Importante
As regras de negação sempre têm precedência sobre as regras de permissão. Se um caminho corresponder a ambos allowWrite e denyWrite, o caminho será negado.
Restrições de rede¶
O sandbox pode restringir os comandos de domínio que ele pode acessar pela rede.
Configuração |
Padrão |
Descrição |
|---|---|---|
|
|
Domínios que o sandbox pode acessar. Uma matriz vazia significa que todos os domínios são permitidos (exceto aqueles em |
|
|
Domínios que o sandbox não pode acessar. Tem precedência sobre |
|
|
Se os comandos em sandbox podem ser vinculados a portas locais. |
Fallback de comando fora do sandbox¶
Alguns comandos podem não ser compatíveis com sandbox. A configuração allowUnsandboxedCommands controla o que acontece quando um comando não pode ser executado dentro do sandbox.
Configuração |
Comportamento |
|---|---|
|
O agente pode solicitar a execução do comando no host. Você será solicitado a aprovar. |
|
Os comandos devem ser executados dentro do sandbox ou listados em |
Comandos excluídos¶
Você pode especificar comandos que sempre devem ser executados no host, fora do sandbox:
Os comandos excluídos ignoram o sandbox e seguem o fluxo normal de permissão.
Referência de configurações¶
O objeto de configurações de sandbox completo:
Configuração |
Padrão |
Descrição |
|---|---|---|
|
|
Habilite ou desabilite o sandbox. |
|
|
Modo de permissão: |
|
|
Permitir o fallback para execução no host quando um comando não pode ser colocado em sandbox. |
|
|
Comandos que sempre são executados no host, fora do sandbox. |
|
|
Regras de permissão de alto nível. Compatível com padrões como |
|
|
Regras de negação de permissão de alto nível. Mesma sintaxe de padrão que |
|
|
Lista de permissão de domínios de rede (vazia = permitir tudo). Suporte para curingas. |
|
|
Lista de negação de domínios de rede. Tem precedência sobre a lista de permissão. |
|
|
Permitir que comandos em sandbox sejam vinculados a portas locais. |
|
|
Lista de permissão de leitura (vazia = permitir tudo, exceto negação). |
|
|
Lista de negação de leitura. Tem precedência. |
|
|
Lista de permissão de gravação. |
|
|
Lista de negação de gravação. Tem precedência. |
|
|
Permitir o acesso do sandbox ao diretório de contexto ( |
Escopos de configuração¶
As configurações de sandbox seguem a mesma precedência que as outras configurações do Cortex Code:
Nível do projeto (prioridade mais alta):
.snowflake/cortex/settings.jsonNível do usuário:
~/.snowflake/cortex/settings.jsonGerenciado/aplicado: os administradores podem aplicar a política de sandbox por meio do arquivo de configurações gerenciadas. Consulte Configurações gerenciadas (política da organização).