"Eu entendo que é conveniente. Mas, honestamente, não é assustador que uma IA execute comandos nos PCs dos funcionários?"
Essa é a preocupação mais comum que ouço de executivos ao apoiar a implementação de IA. Uma IA que permanece dentro de um navegador, como o ChatGPT, não é tão intimidadora. Mas o Claude Code lê arquivos nos computadores dos funcionários, executa comandos e acessa a Internet. "Eu sei que isso acelera as coisas. Mas quem assume a responsabilidade se ocorrer um acidente?" Muitas empresas provavelmente estão travadas nesse ponto.
Uma grande empresa forneceu uma resposta para essa ansiedade. A Mercari compartilhou recentemente suas "configurações de segurança e métodos de distribuição" usados ao implantar o Claude Code para centenas de funcionários durante uma sessão de estudo.
Além disso, o conteúdo não era sobre sistemas proprietários caros. Ao preparar e distribuir um único arquivo de configuração, até mesmo pequenas e médias empresas (PMEs) podem replicar grande parte disso.
A razão pela qual a Mercari conseguiu distribuir para centenas de pessoas não foi um mecanismo de alto custo, mas um único "arquivo de configuração que os funcionários não podem remover". As PMEs podem fazer o mesmo a partir de hoje.
Neste artigo, vou detalhar o design da Mercari da forma mais simples possível, abordando "o que temer", "como a Mercari gerenciou isso" e "por onde sua empresa pode começar". Vou adicionar explicações para termos técnicos à medida que aparecem, para que executivos não-engenheiros e gerentes de produto possam acompanhar.
Você pode encontrar os materiais da apresentação aqui:
(Mercari Claude Code Organization Deployment Security Settings / Speaker Deck).
A sintaxe exata das configurações foi verificada na documentação oficial da Anthropic.
Por que o Claude Code é "Conveniente e Assustador"?
Primeiro, vamos esclarecer a natureza do medo. Sinto que, se você apenas copiar as configurações sem entender isso, não saberá o que está realmente protegendo.
O que torna o Claude Code diferente de um chat de IA padrão é que ele pode agir por conta própria dentro do seu computador local. Ele pode pesquisar e ler arquivos, reescrevê-los e executar comandos de shell (comandos digitados em um terminal). Ele também pode acessar a Internet. Em outras palavras, quase tudo que você pode fazer naquele computador, a IA também pode fazer.
Especificamente, o que pode dar errado? Os computadores geralmente contêm coisas que você não quer que sejam vistas:
- Informações que funcionam como senhas para nuvens ou APIs (arquivos de configuração como .env, ~/.aws/credentials, etc.)
- Chaves para acessar servidores (conteúdo de ~/.ssh/)
- Arquivos importantes que seriam desastrosos se excluídos
A IA não tem malícia. No entanto, devido a instruções ambíguas ou comandos incorporados em textos suspeitos na web (conhecidos como injeção de prompt), ela pode acidentalmente ler esses arquivos secretos e enviá-los para a Internet, ou excluir itens importantes usando o comando rm. A documentação oficial da Anthropic recomenda um design que restrinja as permissões com base nesses riscos (Permission Settings - Official).
Em resumo, há três coisas a proteger: impedir que informações secretas vazem, impedir que operações perigosas sejam realizadas automaticamente e restringir o escopo do que pode ser tocado. As medidas da Mercari ficam muito mais fáceis de entender quando lidas através dessas três lentes.
Detalhando as "5 Medidas" da Mercari
A apresentação da Mercari resumiu cinco grandes medidas. Vamos analisar "o propósito" e "como implementar" cada uma.
Observe que os slides da apresentação focam nos conceitos e não incluem todos os detalhes do arquivo de configuração. Portanto, apresentarei isso na forma de "como implementar as políticas da Mercari usando as configurações oficiais do Claude Code." Os nomes das chaves e a sintaxe foram todos verificados na documentação oficial da Anthropic.
Medida ①: Tornar a Confirmação Humana "Impossível de Pular"
O Claude Code tem um modo que prossegue automaticamente sem pedir confirmação a cada vez. Embora seja conveniente para desenvolvedores em seus PCs de experimentação, permitir isso ao distribuir para todos em uma empresa remove os freios de segurança.
A Mercari desativou esse "modo de ignorar confirmação". Oficialmente, configurações como permissions.disableBypassPermissionsMode (e disableAutoMode para bloquear o modo automático) estão disponíveis. Definir essas como "disable" impede que os usuários entrem nesses modos. Além disso, se colocado nas "configurações gerenciadas" descritas posteriormente, os funcionários não podem desativá-los por conta própria (Permission Settings - Official).
O significado é simples: impõe a regra de que "um humano deve dar o OK antes que a IA mova as mãos" em toda a empresa.
Medida ②: Parar Comandos Perigosos, ou Sempre Confirmar
Em seguida, colocamos uma rédea curta nos próprios comandos. Por exemplo, curl (um comando para buscar dados da Internet). Se usado livremente, pode se tornar um caminho para enviar arquivos secretos para fora.
No Claude Code, você pode definir uma lista deny para comandos específicos e uma lista ask que requer confirmação antes da execução. A sintaxe é assim:
1{2 "permissions": {3 "deny": [4 "Bash(curl:*)",5 "Bash(wget:*)"6 ],7 "ask": [8 "Bash(git push:*)"9 ]10 }11}
Bash(curl:*) significa "bloquear todos os comandos que começam com curl" (o :* no final representa "qualquer coisa depois disso"). Uma observação importante: a documentação oficial afirma que tentar permitir curl apenas para destinos específicos, como GitHub, é facilmente contornado por redirecionamentos. Portanto, a recomendação oficial é bloquear completamente a comunicação com a Internet e unificar as buscas necessárias através de uma porta segura separada (Permission Settings - Official). Essa "porta segura" é o WebFetch (um recurso integrado do Claude Code para recuperação da Internet), onde os destinos podem ser colocados em uma lista de permissões.
Medida ③: Impedir a Leitura de Arquivos Secretos e Modificação do Sistema
Também bloqueamos o acesso às próprias informações secretas, como arquivos .env onde as senhas residem ou o comando sudo usado para alterações profundas no sistema.
1{2 "permissions": {3 "deny": [4 "Read(.env)",5 "Read(.env.*)",6 "Read(**/.ssh/**)",7 "Bash(sudo:*)"8 ]9 }10}
Escrever Read(.env) torna .env ilegível em qualquer nível dentro da pasta de trabalho. Uma coisa a saber para segurança é que, embora essa lista de negação funcione contra a leitura de arquivos pelo próprio Claude ou comandos óbvios como cat, ela não pode impedir completamente que um script escrito pela IA abra um arquivo secretamente em segundo plano (Permission Settings - Official). É por isso que a Medida ④ é necessária.
Medida ④: Cercar o "Alcance" com um Sandbox
Enquanto uma lista de negação trata de traçar linhas para comandos específicos, um sandbox cria uma parede no nível do sistema operacional. Ele restringe fisicamente a IA de tocar em qualquer coisa fora da pasta de trabalho ou de se conectar a qualquer coisa que não sejam domínios de Internet permitidos.
1{2 "sandbox": {3 "enabled": true,4 "network": {5 "allowedDomains": ["*.github.com", "registry.npmjs.org"]6 }7 }8}
Quando ativado, mesmo que a IA acidentalmente alcance um arquivo secreto, ela não conseguirá acessá-lo porque está fora do "sandbox". A documentação oficial explica que você deve sobrepor tanto a lista de negação (Medidas ② e ③) quanto o sandbox para a fronteira final (Sandboxing - Official). Pense nisso como ter regras individuais e uma cerca de perímetro.
Uma restrição: o Sandbox funciona em macOS, Linux e WSL2 (Linux no Windows), mas não é suportado no Windows nativo. Em ambientes de trabalho centrados no Windows, a decisão seria fortalecer as configurações de permissão nas Medidas ① a ③.
Medida ⑤: Fazer a IA Ler "O Que Proteger" Toda Vez
Finalmente, um ângulo diferente das configurações rígidas: escreva a política de segurança da empresa em um manual de instruções que a IA lê toda vez. Se as configurações são "fechaduras físicas", isso é como uma "revisão das regras do local de trabalho".
Existem várias maneiras técnicas de fazer isso, e não está claro nos materiais qual delas a Mercari usou. No entanto, a maneira mais fácil é colocar um arquivo chamado CLAUDE.md diretamente na pasta de trabalho e listar as regras internas lá. O Claude Code lê este arquivo toda vez.
1# Solicitações de Segurança2- Não abra arquivos .env ou de chaves (~/.ssh/, etc.)3- Não envie informações de clientes ou segredos comerciais para serviços externos4- Sempre confirme com um humano antes de executar operações de exclusão ou publicação
Ação para hoje: Apenas colar essas três linhas em um arquivo CLAUDE.md adiciona uma camada de senso comum ao comportamento da IA. Você pode começar com isso antes mesmo dos arquivos de configuração.
Ação para hoje: Você não precisa implementar tudo de uma vez. Comece adicionando apenas a linha Read(.env) da Medida ③ a um arquivo de configuração chamado .claude/settings.json. Crie uma pasta chamada .claude (incluindo o ponto inicial) na pasta do seu projeto e salve um arquivo de texto chamado settings.json dentro dela. Se quiser que se aplique a todos os projetos, coloque-o em ~/.claude/settings.json no seu diretório inicial. Você pode começar com a jogada mais eficaz: impedir que a IA leia arquivos secretos.
A Verdadeira Habilidade da Mercari Estava na "Distribuição"
Até agora, cobrimos "o que configurar". A apresentação da Mercari foi particularmente prática porque abordou como distribuir essas configurações para centenas de pessoas.
Normalmente, os arquivos de configuração são colocados no computador de cada pessoa (configurações do usuário), o que significa que os funcionários podem reescrevê-los. Isso leva a situações em que "as configurações de segurança foram distribuídas, mas alguém as desativou."
Para resolver isso, a Mercari usou MDM (Mobile Device Management — um sistema para empresas gerenciarem PCs de funcionários) para distribuir simultaneamente "configurações gerenciadas" que os funcionários não podem sobrescrever. O Claude Code tem um local designado para configurações gerenciadas que têm prioridade sobre as configurações individuais e não podem ser alteradas pelo usuário. No macOS, este é /Library/Application Support/ClaudeCode/managed-settings.json (Settings - Official). Ao escrever as Medidas ① a ④ aqui, elas não podem ser afrouxadas localmente.
Ainda mais inteligente foi diferenciar os níveis de segurança para engenheiros e não-engenheiros:
- Para Engenheiros: Configurações que permitem alguma personalização e não prejudicam muito a produtividade.
- Para Não-Engenheiros: As configurações padrão mais seguras, com menos espaço para ajustes.
Mesmo para a mesma ferramenta, eles ajustaram o comprimento da rédea com base na literacia do usuário. Se todos forem estritamente restritos, o trabalho para; se todos forem flexíveis, ocorrem acidentes. Eles resolveram isso variando as configurações distribuídas.
Onde as PMEs Podem Começar a Replicar
A maioria das empresas provavelmente não tem MDM. Tudo bem. Você pode extrair as partes do design da Mercari que funcionam independentemente do porte.
Tudo o que você precisa fazer é distribuir um único arquivo com configurações de segurança e pedir para que seja colocado no lugar. Se você tiver MDM, distribua como uma configuração gerenciada; se não, compartilhe e diga: "Por favor, coloque este settings.json na sua pasta .claude/". A aplicação é menor, mas a direção é a mesma.
Como conjunto mínimo, combinando as Medidas ① a ③, fica assim. Recomendo usar isso como base e adicionar quaisquer comandos específicos que sua empresa queira banir.
1{2 "permissions": {3 "disableBypassPermissionsMode": "disable",4 "deny": [5 "Bash(curl:*)",6 "Bash(wget:*)",7 "Bash(sudo:*)",8 "Read(.env)",9 "Read(.env.*)",10 "Read(**/.ssh/**)"11 ],12 "ask": [13 "Bash(git push:*)",14 "Bash(rm:*)"15 ]16 }17}
De cima para baixo: desativar a ignorar confirmação, bloquear comunicação com a Internet e operações administrativas, proibir a leitura de arquivos secretos e sempre confirmar exclusão ou publicação. Mesmo que você não entenda o conteúdo, funcionará se você copiar e colar.
Se estiver distribuindo para não-engenheiros, recomendo a versão mais segura, que adiciona o sandbox (Medida ④). Combinar as duas configurações em um único arquivo fica assim:
1{2 "permissions": {3 "disableBypassPermissionsMode": "disable",4 "deny": [5 "Bash(curl:*)",6 "Bash(wget:*)",7 "Bash(sudo:*)",8 "Read(.env)",9 "Read(.env.*)",10 "Read(**/.ssh/**)"11 ],12 "ask": [13 "Bash(git push:*)",14 "Bash(rm:*)"15 ]16 },17 "sandbox": {18 "enabled": true,19 "network": {20 "allowedDomains": ["*.github.com", "registry.npmjs.org"]21 }22 }23}
Eu simplesmente coloquei permissions e sandbox lado a lado, separados por uma vírgula. Altere os allowedDomains para corresponder aos serviços que sua empresa usa. Lembre-se, o sandbox funciona em macOS, Linux e WSL2.
O que sempre digo às pessoas ao apoiar a implementação é: não pare porque está mirando na perfeição. Mesmo que você não consiga construir uma defesa em várias camadas como a da Mercari imediatamente, proteger .env com uma única linha reduz significativamente a probabilidade de um acidente.
Ação para hoje: Se pelo menos uma pessoa na sua empresa está começando a usar o Claude Code, compartilhe o conjunto mínimo acima como texto e peça para colá-lo em .claude/settings.json. É um tamanho perfeito para um ensaio de distribuição.
Armadilhas: 3 Coisas para Saber Antes de Distribuir Configurações
Por se tratar de endurecimento de segurança, há pontos que são perigosos se mal interpretados.
- "Escrever uma lista de negação" não significa que é perfeitamente seguro. Como mencionado na Medida ③, uma lista de negação não pode impedir tudo o que um script pode fazer em segundo plano. Mesmo que você pare o
curl, outros métodos de comunicação podem permanecer. Se você quiser realmente cercar, não se esqueça da premissa de sobrepor com um sandbox (Medida ④). - Não confie na filtragem por argumentos. A própria Anthropic alerta que permissões condicionais, como permitir
curlapenas para uma URL específica, são facilmente quebradas. É mais robusto bloquear coisas perigosas completamente e fornecer uma alternativa segura. - Não apenas distribua as configurações e pronto. Mesmo que você aplique configurações gerenciadas, não adianta nada se os funcionários instalarem outras ferramentas suspeitas por conta própria. As configurações são um "mecanismo para reduzir acidentes" e funcionam melhor quando emparelhadas com educação sobre o uso. É aqui que a Medida ⑤, "fazê-los ler as regras", finalmente entra em jogo.
FAQ para Usuários Intermediários
P. Faz sentido configurar isso para uso pessoal?
Sim. O critério é se há informações secretas naquele computador, não se é para uma empresa. Freelancers e desenvolvedores individuais ainda têm .env e ~/.ssh/ localmente. No mínimo, é mais seguro incluir a proibição de leitura da Medida ③.
P. Restringir as permissões não tornará a IA inútil?
É uma questão de como você as restringe. Comandos de apenas leitura (como ls ou cat) funcionam sem confirmação por padrão, então o trabalho diário raramente para. O que para são operações como exclusão, publicação e comunicação com a Internet — coisas que prejudicam se derem errado. Na verdade, ao mudar para "humanos só verificam quando é perigoso", você pode expandir com segurança o alcance do que você deixa a IA fazer automaticamente.
P. Qual é a diferença entre `settings.json` e configurações gerenciadas (`managed-settings.json`)?
O local e a "força" diferem. settings.json na pasta .claude/ de um projeto é uma configuração compartilhada que qualquer um pode editar. managed-settings.json é distribuído pela empresa e não pode ser alterado pelo usuário. Para indivíduos ou pequenos grupos, o primeiro é suficiente; passe para o segundo quando atingir o estágio em que "é um problema se alguém afrouxar as configurações".
P. Posso usar o mesmo raciocínio para Cursor ou outras ferramentas de codificação de IA?
As coisas que você quer proteger (segredos, operações perigosas, alcance) são as mesmas, então o conceito se aplica. No entanto, a sintaxe e a presença de sandbox variam de ferramenta para ferramenta, então considere esta notação settings.json específica para o Claude Code. Se estiver usando outras ferramentas, o atalho é aplicar essas mesmas três perspectivas na documentação oficial respectiva.
Resumo: De "Não Use" a "Distribua com Segurança"
Quando recebo consultas sobre implementação de IA, a resposta mais comum costumava ser "É perigoso, então não podemos deixá-los usar ainda." Mas essa decisão também joga fora toda a conveniência.
A Mercari nos mostrou uma saída para essa escolha binária. Desative a ignorar confirmação, pare operações perigosas, proíba tocar em arquivos secretos, coloque em um sandbox e faça-os ler as regras. Em seguida, distribua para todos como configurações que não podem ser adulteradas. É um design que muda de "proibido porque é assustador" para "distribuído com uma rédea porque é assustador."
- Alvos a proteger: Impedir vazamento de segredos / Impedir operações perigosas / Restringir o alcance.
- 5 Medidas da Mercari: Desativar ignorar, restringir comandos perigosos, proibir arquivos secretos, sandbox e leitura de regras.
- Distribuição: Usar configurações gerenciadas que o usuário não pode sobrescrever, diferenciadas por literacia.
Finalmente, aqui estão três passos para começar hoje:
- Adicione `Read(.env)` no seu próprio computador: Comece proibindo a leitura de arquivos secretos. Esta é a jogada individual mais eficaz.
- Crie um único arquivo com o conjunto mínimo: Com base no exemplo
permissionsacima, adicione comandos que sua empresa queira parar. - Distribua para uma pessoa na empresa para testar: Peça para colar em
.claude/settings.jsone verifiquem juntos que o trabalho não para.
O primeiro passo é apenas uma linha para proteger .env. Você pode construir uma defesa perfeita em várias camadas, uma por uma, a partir daí. Por que não colocar esse primeiro arquivo hoje e mudar de "parar porque é assustador" para "delegar com uma rédea"?





