Codex: Configuração de Permissões do Codex
Última atualização: 2026-08-31
O Codex tem poderosas capacidades operacionais, mas elas também trazem riscos de segurança. Esta lição aborda as configurações de permissões em detalhe, garantindo que as operações da IA permaneçam sob seu controle.
📋 Pré-requisitos: Conhecimento básico de configuração do Codex (veja Lição 6)
1. O Que Você Vai Aprender
- Hierarquia do modelo de permissões
- Três modos sandbox em detalhe
- Configuração de política de aprovação
- Proteção de operações sensíveis
2. Modelo de Permissões
(1) Hierarquia de Permissões de Operação
| Nível de Permissão | Escopo | Comportamento Padrão |
|---|---|---|
| Leitura | Ler arquivos do projeto | Auto-permitido |
| Escrita | Modificar/criar arquivos do projeto | Requer confirmação (configurável) |
| Execução | Executar comandos shell | Requer confirmação |
| Rede | Instalar pacotes, acessar APIs | Requer confirmação |
| Sistema | Acessar diretórios sensíveis | Requer confirmação |
(2) Níveis de Risco
| Nível | Exemplos de Operações | Proteção |
|---|---|---|
| 🟢 Baixo | Ler arquivos de código-fonte | Auto-permitido |
| 🟡 Médio | Modificar arquivos de código-fonte | Requer confirmação |
| 🟠 Alto | Executar comandos shell | Requer confirmação + mostrar comando |
| 🔴 Crítico | Deletar arquivos, acessar chaves | Requer confirmação + aviso extra |
3. Modos Sandbox em Detalhe
(1) Read-only
codex --sandbox readonly
| Capacidade | Status |
|---|---|
| Ler arquivos | ✅ |
| Modificar arquivos | ❌ |
| Executar comandos | ❌ |
| Acesso à rede | ❌ |
Uso para: Revisão de código, análise de arquitetura, geração de documentação
(2) Workspace-write
codex --sandbox workspace-write
| Capacidade | Status |
|---|---|
| Ler arquivos | ✅ |
| Modificar arquivos do workspace | ✅ |
| Executar comandos | ⚠️ Requer confirmação |
| Acesso à rede | ❌ |
Uso para: Desenvolvimento diário (modo padrão)
(3) Full-access
codex --sandbox full-access
| Capacidade | Status |
|---|---|
| Ler arquivos | ✅ |
| Modificar qualquer arquivo | ✅ |
| Executar comandos | ✅ |
| Acesso à rede | ✅ |
Uso para: Cenários de automação totalmente confiáveis (use com cautela)
▶ Exemplo 1: Alice Escolhe Modo por Cenário
def choose_sandbox(task_type):
modes = {
"code_review": "readonly",
"daily_dev": "workspace-write",
"full_migrate": "full-access",
}
return modes.get(task_type, "workspace-write")
# Trabalho de Alice hoje
print(choose_sandbox("code_review")) # readonly
print(choose_sandbox("daily_dev")) # workspace-write
print(choose_sandbox("full_migrate")) # full-access
4. Políticas de Aprovação
(1) Três Políticas
| Política | Comportamento | Risco |
|---|---|---|
ask |
Perguntar ao usuário cada vez | Mais segura |
approve |
Auto-aprovar | Risco moderado |
deny |
Auto-negar | Mais conservadora |
(2) Configuração por Tipo de Operação
# ~/.codex/config.toml
[approval]
# Aprovação de comandos shell
shell_commands = "ask"
# Aprovação de escrita de arquivos
file_writes = "ask"
# Aprovação de acesso à rede
network_access = "deny"
# Aprovação de caminhos sensíveis
sensitive_paths = "ask"
(3) Allowlist de Comandos
[approval]
shell_commands = "ask"
# Comandos seguros auto-aprovados
auto_approve_commands = [
"git status",
"git diff",
"npm test",
"pytest",
"ls",
"cat",
]
# Comandos perigosos sempre negados
always_deny_commands = [
"rm -rf",
"sudo",
"chmod 777",
"curl * | sh",
]
5. Proteção de Caminhos Sensíveis
(1) Caminhos Protegidos por Padrão
~/.ssh/
~/.gnupg/
/etc/
.env
.env.*
secrets/
credentials/
*.key
*.pem
(2) Caminhos Protegidos Personalizados
[sandbox]
blocked_paths = [
".env",
".env.production",
"secrets/",
"credentials/",
"config/production.yml",
"*.key",
"*.pem",
]
▶ Exemplo 2: Bob Protege a Config de Produção
# Config do sandbox do projeto de Bob
[sandbox]
mode = "workspace-write"
allowed_paths = ["src/", "tests/", "docs/"]
blocked_paths = [
".env.production",
"config/prod/",
"secrets/",
"deploy/",
]
6. Auditoria de Permissões
(1) Ver Logs de Operação
# Ver todas as operações na sessão atual
codex --audit-log
# Exemplo de saída
[10:30:15] READ src/auth.ts (auto-approved)
[10:30:18] WRITE src/auth.ts (approved by user)
[10:30:22] SHELL npm test (approved by user)
[10:30:25] WRITE test/auth.test.ts (approved by user)
(2) Configuração de Auditoria
[audit]
log_all_operations = true
log_file = "~/.codex/audit.log"
include_shell_output = true
7. Melhores Práticas
| Prática | Descrição |
|---|---|
| Política ask por padrão | Não troque casualmente para approve |
| Limitar escopo do sandbox | Apenas abrir caminhos necessários |
| Proteger arquivos-chave | Adicionar .env e chaves ao blocked_paths |
| Revisar logs regularmente | Verificar o que o Codex executou |
| Git como rede de segurança | Commite antes de deixar o Codex modificar — fácil reverter |
| Usar deny em CI | Rejeitar todas as operações de escrita em integração contínua |
❓ Perguntas Frequentes
P: Quais são os riscos do modo Full-access? R: O Codex pode executar qualquer comando, modificar qualquer arquivo e acessar a rede. Se o Codex julgar mal, pode deletar arquivos importantes ou executar comandos perigosos. Use apenas em cenários totalmente confiáveis.
P: Posso trocar políticas de aprovação em tempo de execução? R: Sim. Durante uma sessão do Codex, digite
/modepara trocar de modo, ou diga ao Codex "from now on, all operations need my confirmation."
P: Como impedir o Codex de acessar arquivos .env? R: Adicione
.enve.env.*ao blocked_paths na sua config, e use o modo workspace-write.
P: O Codex vai secretamente executar comandos? R: Não no modo ask — todas as operações sensíveis requerem confirmação primeiro. Mas no modo approve ou Full Auto, o Codex auto-executará.
P: Como sei o que o Codex fez? R: Habilite logs de auditoria, ou use
git diffpara ver mudanças de código. O Codex também exibe todas as operações em tempo real na janela de conversa.
📖 Resumo
- Hierarquia de permissões: Leitura → Escrita → Execução → Rede → Sistema
- Três modos sandbox: readonly / workspace-write / full-access
- Políticas de aprovação: ask (segura) / approve (auto) / deny (conservadora)
- Proteger caminhos sensíveis: .env, chaves, configs de produção
- Melhores práticas: ask padrão + rede de segurança Git + logs de auditoria
📝 Exercícios
- Básico (⭐): Configure o modo sandbox workspace-write e proteja arquivos .env.
- Intermediário (⭐⭐): Configure uma allowlist de comandos — auto-aprovar comandos de teste, negar perigosos.
- Avançado (⭐⭐⭐): Desenhe um esquema de permissões empresarial — diferentes funções com diferentes permissões — e escreva um documento de matriz de permissões.