Práticas recomendadas de segurança para o Cortex Code CLI¶
Práticas de segurança essenciais para o Cortex Code CLI incluem o uso de métodos de autenticação seguros, proteção de arquivos de configuração, gerenciamento adequado de funções e acesso, tratamento seguro do histórico de conversas, garantia de integridade do servidor MCP e adesão aos protocolos de segurança de produção.
Importante
Em ambientes gerenciados, sua organização pode implantar um arquivo de configurações gerenciadas em nível de sistema que aplica políticas (por exemplo, restringindo o acesso a ferramentas, limitando as contas permitidas ou desativando recursos de bypass). Para obter mais detalhes, consulte Configurações gerenciadas (política da organização).
Credenciais¶
- Use autenticação baseada em navegador quando possível.
O método de autenticação padrão para o Cortex Code CLI é a autenticação baseada no navegador. Use
authenticator = "externalbrowser"no arquivoconnections.tomlpara definir esta opção manualmente.- Use tokens de acesso programático (PATs) ao tentar definir o escopo do acesso a uma função específica.
Geração de PATs dedicados no Snowsight (consulte Uso de tokens de acesso programático para autenticação). Defina a expiração para até 90 dias, use nomes descritivos e alterne regularmente.
- Proteção de arquivos de configuração
Use o modo
600com arquivos de configuração e700com diretórios para restringir o acesso apenas ao seu usuário.chmod 600 ~/.snowflake/connections.toml chmod 700 ~/.snowflake/cortex
- Nunca confirme credenciais
Adicione arquivos de configuração confidenciais a
.gitignore.echo "~/.snowflake/connections.toml" >> ~/.gitignore
Use variáveis de ambiente para manter credenciais e tokens e incorporá-los em seus arquivos de configuração usando a sintaxe
${VARIABLE_NAME}.
Funções e acesso¶
- Uso das funções apropriadas por ambiente
Por exemplo, use uma função somente leitura na produção e uma função mais abrangente no desenvolvimento.
[dev] role = "DEVELOPER" [prod_readonly] role = "ANALYST"
Nunca use
ACCOUNTADMINpara operações de rotina. Conceda menos privilégios.
Histórico de conversas¶
As conversas são armazenadas em ~/.snowflake/cortex/conversations/. Use cortex --private ao iniciar o Cortex Code para desabilitar o salvamento de sessões de trabalho confidenciais. Alternativamente, use o comando /clear para limpar a sessão atual antes de sair do Cortex Code CLI.
Use o modo 700 para restringir o acesso ao histórico de conversas somente ao seu usuário.
chmod 700 ~/.snowflake/cortex/conversations
Segurança MCP¶
- Instale apenas os servidores MCP confiáveis
Verifique a fonte e a integridade dos servidores MCP antes de adicioná-los. Use os comandos a seguir para obter uma lista e remover quaisquer servidores não confiáveis:
cortex mcp list cortex mcp remove <server>
- Nunca codifique credenciais de MCP
Use variáveis de ambiente. Primeiro, defina em seu shell:
export GITHUB_TOKEN="your_token"
Em seguida, faça referência a eles na sua configuração de MCP:
{ "mcpServers": { "github": { "env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" } } } }
Segurança de produção¶
- Ativação do modo de planejamento
Use o comando
/planpara revisar as ações pretendidas antes da execução./plan Drop and recreate the ANALYTICS schema
Caso seu token de acesso pessoal seja comprometido¶
Revogue o PAT no Snowsight imediatamente! Em seguida, gere um novo token e comece a usá-lo. Lembre-se de não usar o token nos arquivos de configuração; use variáveis de ambiente.
Revise o histórico de consultas para identificar qualquer atividade suspeita.
SHOW QUERIES IN ACCOUNT
Configurações gerenciadas (política corporativa)¶
Em algumas organizações, os administradores implantam configurações gerenciadas que aplicam políticas para o Cortex Code CLI. As configurações gerenciadas podem restringir ou substituir a configuração em nível de usuário (incluindo solicitações de permissão e comportamento de bypass).
Para obter mais informações, consulte Configurações gerenciadas (política da organização).
Permissões¶
O Cortex Code tem três modos operacionais:
Modo |
Indicador |
Comandos de barra |
Descrição |
|---|---|---|---|
Confirmação de ações |
Azul ⏵⏵ |
Modo padrão |
Prompts de permissão antes de ações potencialmente perigosas. |
Plano |
Laranja ⏸ |
|
Apresenta um plano antes de realizar qualquer ação. |
Bypass |
Vermelho >> |
|
Todas as chamadas de ferramentas são aprovadas. |
Pressione Shift-Tab no Cortex Code CLI para alternar entre esses modos.
Aviso
O modo bypass desabilita todos os prompts de confirmação. Use-o somente em ambientes confiáveis.
Tipos de permissão¶
Os seguintes níveis de permissão se aplicam às chamadas da ferramenta Cortex Code:
Tipo |
Descrição |
|---|---|
EXECUTE_COMMAND |
Execução dos comandos bash/shell |
FILE_READ |
Ler conteúdo de arquivos |
FILE_WRITE |
Criar/modificar arquivos |
FILE_EDIT |
Editar arquivos existentes |
WEB_ACCESS |
Operações de pesquisa/busca na web |
Modelo de confiança¶
O Cortex Code classifica comandos e operações por risco, conforme mostrado na tabela a seguir:
Nível |
Exemplos |
Comportamento |
|---|---|---|
SAFE |
|
Aprovado automaticamente |
LOW |
Criar novos arquivos (por exemplo, |
Costuma ser aprovado automaticamente |
MEDIUM |
Edição de arquivos (por exemplo, |
Prompts no modo de confirmação |
HIGH |
|
Sempre solicitado |
CRITICAL |
|
Confirmação extra |
Comandos shell e SQL são classificados com base em seu impacto potencial.
Comandos shell¶
Os comandos são analisados em relação a fatores de risco comuns.
- Comandos arriscados
rm,sudo,curl,wget,sshsystemctl,chmod,chowngit push --force,git reset --hard
- Sinalizadores perigosos
-rf,--force,--recursive--no-preserve-root
- Padrões perigosos
Canal para o shell:
curl | bashDownload e execução
Acesso a arquivos ocultos (prefixo
.)Acesso ao caminho do sistema (
/etc,/var,/usr)
Consultas SQL¶
O SQL é categorizado por tipo de operação:
Categoria |
Operações |
Comportamento |
|---|---|---|
READ_ONLY |
SELECT, SHOW, DESCRIBE |
Aprovado automaticamente |
WRITE |
INSERT, UPDATE, DELETE, CREATE |
Prompts |
USE_ROLE |
USE ROLE, USE WAREHOUSE |
Prompts |
Permissões de sandbox¶
Quando o sandbox está habilitado:
Modo sandbox |
Comportamento de permissão |
|---|---|
Contêiner + automático |
Comandos em sandbox aprovados automaticamente |
Contêiner + regular |
Todos os prompts de comando |
OS + automático |
Comandos em sandbox aprovados automaticamente |
OS + regular |
Todos os prompts de comando |
Integração de ganchos¶
Você pode personalizar a política de permissão usando ganchos. Aqui está um exemplo de gancho de pré-execução que aprova comandos bash automaticamente:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "bash .claude/hooks/auto-approve.sh"
}
]
}
]
}
}
Esse gancho pode retornar uma resposta JSON como a seguinte para aprovação automática de comandos bash.
{
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": "allow",
"permissionDecisionReason": "Approved by policy"
}
}
Prompts de permissão e cache¶
Quando o Cortex Code exige sua permissão para continuar uma operação, ele pede detalhes sobre a solicitação. Você pode optar por aprovar ou negar essa solicitação. Você também pode se lembrar da sua escolha para futuras solicitações semelhantes:
«Always allow (this session)» serve para lembrar a escolha até você sair do Cortex Code CLI.
“Always allow (persist)” serve para lembrar indefinidamente.
Essas respostas são armazenadas em cache e com escopo definido para o diretório do projeto, o tipo de ferramenta ou o padrão de comando, conforme apropriado.
As permissões persistentes são armazenadas em ~/.snowflake/cortex/permissions.json. A seguir é mostrado um exemplo de cache:
{
"/path/to/project": {
"Bash": {
"npm test": "allow",
"make build": "allow"
},
"Write": {
"*": "allow"
}
}
}
Exclua este arquivo para redefinir todas as permissões persistentes. Para redefinir permissões para um projeto específico, exclua a entrada correspondente.
Para redefinir o cache da sessão, use o comando /new, que inicia uma nova sessão, ou saia e reinicie o Cortex Code CLI.
Configuração¶
Defina as variáveis de ambiente descritas abaixo para controlar o comportamento da permissão:
Variável |
Descrição |
|---|---|
|
Define o tempo limite padrão para o cache de permissões da sessão (em segundos). |
|
Se definido como |
Lista de verificação de segurança¶
Use PATs que expiram em no máximo 90 dias
Defina as permissões de arquivo como 600/700
Nunca confirme credenciais para o git
Use funções de privilégio mínimo
Nunca use ACCOUNTADMIN para trabalhos de rotina
Habilite o modo de planejamento para produção e reserve o modo bypass para ambientes confiáveis
Instale apenas os servidores MCP confiáveis
Armazene credenciais em variáveis de ambiente
Use ganchos para aplicar políticas, automatizando verificações de segurança personalizadas
Faça uma auditoria periódica das permissões