"Entiendo que es conveniente. Pero, honestamente, ¿no da miedo que la IA ejecute comandos en las PC de los empleados?"
Esta es la preocupación más común que escucho de los ejecutivos al apoyar la implementación de IA. La IA que se mantiene dentro de un navegador, como ChatGPT, no es tan intimidante. Pero Claude Code lee archivos en las computadoras de los empleados, ejecuta comandos y accede a internet. "Sé que hace las cosas más rápido. Pero ¿quién asume la responsabilidad si ocurre un accidente?" Muchas empresas probablemente se quedan atascadas en este punto.
Una gran corporación ha dado una respuesta a esa ansiedad. Mercari compartió recientemente su "configuración de seguridad y métodos de distribución" utilizados al implementar Claude Code a cientos de empleados durante una sesión de estudio.
Además, el contenido no trataba de sistemas costosos y propietarios. Al preparar y distribuir un solo archivo de configuración, incluso las pequeñas y medianas empresas (PYMES) pueden replicar gran parte de ello.
La razón por la que Mercari pudo distribuirlo a cientos de personas no fue un mecanismo de alto costo, sino un único "archivo de configuración que los empleados no pueden eliminar". Las PYMES pueden hacer lo mismo desde hoy.
En este artículo, desglosaré el diseño de Mercari de la manera más simple posible, cubriendo "qué temer", "cómo lo manejó Mercari" y "por dónde puede empezar tu empresa". Agregaré explicaciones de términos técnicos a medida que aparezcan, para que los ejecutivos no ingenieros y los gerentes de producto puedan seguirlo.
Puedes encontrar los materiales de la presentación aquí:
(Configuración de seguridad para la implementación de Claude Code en Mercari / Speaker Deck).
La sintaxis exacta de las configuraciones se ha verificado con la documentación oficial de Anthropic.
¿Por qué Claude Code es "conveniente pero aterrador"?
Primero, aclaremos la naturaleza del miedo. Siento que si solo copias la configuración sin entender esto, no sabrás qué estás protegiendo realmente.
Lo que hace diferente a Claude Code de la IA de chat estándar es que puede actuar por sí mismo dentro de tu computadora local. Puede buscar y leer archivos, reescribirlos y ejecutar comandos de shell (comandos escritos en una terminal). También puede acceder a internet. En otras palabras, casi todo lo que puedes hacer en esa computadora, la IA también puede hacerlo.
Específicamente, ¿qué podría salir mal? Las computadoras suelen contener cosas que no quieres que se vean:
- Información que actúa como contraseñas para nubes o APIs (archivos de configuración como .env, ~/.aws/credentials, etc.)
- Claves para iniciar sesión en servidores (contenido de ~/.ssh/)
- Archivos importantes que serían desastrosos si se eliminan
La IA no tiene malicia. Sin embargo, debido a instrucciones ambiguas o comandos incrustados en texto sospechoso en la web (conocido como inyección de prompts), podría leer accidentalmente estos archivos secretos y enviarlos a internet, o eliminar elementos importantes usando el comando rm. La documentación oficial de Anthropic recomienda un diseño que restrinja los permisos basándose en estos riesgos (Configuración de permisos - Oficial).
En resumen, hay tres cosas que proteger: evitar que la información secreta se filtre, evitar que se realicen operaciones peligrosas automáticamente y limitar el alcance de lo que se puede tocar en primer lugar. Las medidas de Mercari se vuelven mucho más fáciles de entender cuando se leen a través de estos tres lentes.
Desglosando las "5 medidas" de Mercari
La presentación de Mercari resumió cinco medidas principales. Veremos "el propósito" y "cómo implementarlo" para cada una.
Ten en cuenta que las diapositivas de la presentación se centran en los conceptos y no incluyen todos los detalles del archivo de configuración. Por lo tanto, presentaré esto en forma de "cómo implementar las políticas de Mercari usando la configuración oficial de Claude Code". Los nombres de las claves y la sintaxis están todos verificados de los documentos oficiales de Anthropic.
Medida ①: Hacer que la confirmación humana sea "inevitable"
Claude Code tiene un modo que procede automáticamente sin pedir confirmación cada vez. Si bien es conveniente para los desarrolladores en sus PC de experimentación, permitir esto al distribuir a todos en una empresa elimina los frenos de seguridad.
Mercari deshabilitó este "modo de bypass de confirmación". Oficialmente, hay configuraciones como permissions.disableBypassPermissionsMode (y disableAutoMode para bloquear el modo automático). Establecer estas en "disable" evita que los usuarios entren en esos modos. Además, si se colocan en la "configuración administrada" que se describe más adelante, los empleados no pueden deshabilitarlas por sí mismos (Configuración de permisos - Oficial).
El significado es simple: impone la regla de que "un humano debe dar el visto bueno antes de que la IA mueva sus manos" en toda la empresa.
Medida ②: Detener comandos peligrosos, o confirmar siempre
A continuación, ponemos una correa a los comandos en sí. Por ejemplo, curl (un comando para obtener datos de internet). Si se usa libremente, puede convertirse en una vía para enviar archivos secretos al exterior.
En Claude Code, puedes establecer una lista de deny para comandos específicos y una lista de ask que requiere confirmación antes de la ejecución. La sintaxis se ve así:
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 los comandos que comiencen con curl" (el :* al final representa "cualquier cosa después de eso"). Una nota importante: los documentos oficiales indican que intentar permitir curl solo para destinos específicos como GitHub es fácilmente evadible mediante redirecciones. Por lo tanto, la recomendación oficial es bloquear la comunicación por internet por completo y unificar las búsquedas necesarias a través de un puerto seguro separado (Configuración de permisos - Oficial). Este "puerto seguro" es WebFetch (una función integrada de Claude Code para recuperación de internet), donde se pueden incluir en la lista blanca los destinos.
Medida ③: Evitar la lectura de archivos secretos y la modificación del sistema
También bloqueamos el acceso a la información secreta en sí, como archivos .env donde residen las contraseñas o el comando sudo utilizado para cambios profundos en el sistema.
1{2 "permissions": {3 "deny": [4 "Read(.env)",5 "Read(.env.*)",6 "Read(**/.ssh/**)",7 "Bash(sudo:*)"8 ]9 }10}
Escribir Read(.env) hace que .env sea ilegible en cualquier nivel dentro de la carpeta de trabajo. Algo que debes saber por seguridad es que, si bien esta lista de denegación funciona contra la lectura de archivos por parte de Claude o comandos obvios como cat, no puede detener por completo que un script escrito por la IA abra un archivo en secreto en segundo plano (Configuración de permisos - Oficial). Por eso es necesaria la Medida ④.
Medida ④: Encerrar el "alcance" con un sandbox
Mientras que una lista de denegación se trata de trazar líneas para comandos específicos, un sandbox crea un muro a nivel de sistema operativo. Restringe físicamente que la IA toque cualquier cosa fuera de la carpeta de trabajo o se conecte a algo que no sean dominios de internet permitidos.
1{2 "sandbox": {3 "enabled": true,4 "network": {5 "allowedDomains": ["*.github.com", "registry.npmjs.org"]6 }7 }8}
Cuando está habilitado, incluso si la IA accidentalmente intenta alcanzar un archivo secreto, no puede llegar a él porque está fuera del "sandbox". Los documentos oficiales explican que debes superponer tanto la lista de denegación (Medidas ② y ③) como el sandbox para el límite final (Sandboxing - Oficial). Piénsalo como tener tanto reglas individuales como una valla perimetral.
Una restricción: el sandbox funciona en macOS, Linux y WSL2 (Linux en Windows), pero no es compatible con Windows nativo. En lugares de trabajo centrados en Windows, la decisión sería fortalecer la configuración de permisos en las Medidas ①–③.
Medida ⑤: Hacer que la IA lea "qué proteger" cada vez
Finalmente, un ángulo diferente de las configuraciones rígidas: escribe la política de seguridad de la empresa en un manual de instrucciones que la IA lee cada vez. Si las configuraciones son "candados físicos", esto es como una "revisión de las reglas del lugar de trabajo".
Hay varias formas técnicas de hacer esto, y no está claro en los materiales cuál usó Mercari. Sin embargo, la forma más fácil es colocar un archivo llamado CLAUDE.md directamente en la carpeta de trabajo y enumerar allí las reglas internas. Claude Code lee este archivo cada vez.
1# Solicitudes de seguridad2- No abrir archivos .env o de clave (~/.ssh/, etc.)3- No enviar información de clientes o secretos comerciales a servicios externos4- Confirmar siempre con un humano antes de ejecutar operaciones de eliminación o publicación
Acción para hoy: Simplemente pegar estas tres líneas en un archivo CLAUDE.md agrega una capa de sentido común al comportamiento de la IA. Puedes empezar con esto incluso antes de los archivos de configuración.
Acción para hoy: No tienes que implementar todo de una vez. Comienza agregando solo la línea Read(.env) de la Medida ③ a un archivo de configuración llamado .claude/settings.json. Crea una carpeta llamada .claude (incluyendo el punto inicial) en tu carpeta de proyecto y guarda un archivo de texto llamado settings.json dentro. Si deseas que se aplique a todos los proyectos, colócalo en ~/.claude/settings.json en tu directorio de inicio. Puedes comenzar con el movimiento más efectivo: evitar que la IA lea archivos secretos.
La verdadera habilidad de Mercari estaba en la "distribución"
Hasta ahora, hemos cubierto "qué configurar". La presentación de Mercari fue particularmente práctica porque abordó cómo distribuir estas configuraciones a cientos de personas.
Normalmente, los archivos de configuración se colocan en la computadora de cada persona (configuración de usuario), lo que significa que los empleados pueden reescribirlos. Esto lleva a situaciones en las que "se distribuyeron configuraciones de seguridad, pero alguien las deshabilitó".
Para solucionar esto, Mercari usó MDM (Mobile Device Management, un sistema para que las empresas administren las PC de los empleados) para distribuir simultáneamente "configuraciones administradas" que los empleados no pueden sobrescribir. Claude Code tiene una ubicación designada para configuraciones administradas que tienen prioridad sobre las configuraciones individuales y no pueden ser cambiadas por el usuario. En macOS, esto es /Library/Application Support/ClaudeCode/managed-settings.json (Configuración - Oficial). Al escribir las Medidas ①–④ aquí, no se pueden relajar en el sitio.
Aún más inteligente fue diferenciar los niveles de seguridad para ingenieros y no ingenieros:
- Para ingenieros: Configuraciones que permiten algo de personalización y no obstaculizan demasiado la productividad.
- Para no ingenieros: La configuración predeterminada más segura con menos margen para modificaciones.
Incluso para la misma herramienta, ajustaron la longitud de la correa según la alfabetización del usuario. Si todos están estrictamente restringidos, el trabajo se estanca; si todos están sueltos, ocurren accidentes. Resolvieron esto variando las configuraciones distribuidas.
Por dónde pueden empezar a replicar las PYMES
La mayoría de las empresas probablemente no tienen MDM. Eso está bien. Puedes extraer las partes del diseño de Mercari que funcionan independientemente de la escala.
Todo lo que necesitas hacer es distribuir un solo archivo con configuraciones de seguridad y hacer que lo coloquen. Si tienes MDM, distribúyelo como una configuración administrada; si no, compártelo y di: "Por favor, coloca este settings.json en tu carpeta .claude/". El cumplimiento es menor, pero la dirección es la misma.
Como conjunto mínimo, combinar las Medidas ①–③ se ve así. Recomiendo usar esto como base y agregar cualquier comando específico que tu empresa quiera prohibir.
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 arriba a abajo: deshabilitar la omisión de confirmación, bloquear la comunicación por internet y las operaciones de administración, prohibir la lectura de archivos secretos, y confirmar siempre la eliminación o publicación. Incluso si no entiendes el contenido, funcionará si lo copias y pegas.
Si se distribuye a no ingenieros, recomiendo la versión más segura, que agrega el sandbox (Medida ④). Combinar las dos configuraciones en un solo archivo se ve así:
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}
Simplemente he colocado permissions y sandbox uno al lado del otro, separados por una coma. Cambia los allowedDomains para que coincidan con los servicios que usa tu empresa. Recuerda, el sandbox funciona en macOS, Linux y WSL2.
Lo que siempre les digo a las personas cuando apoyo la implementación es: no te detengas porque apuntas a la perfección. Incluso si no puedes construir una defensa de múltiples capas como la de Mercari de inmediato, proteger .env con una sola línea reduce significativamente la probabilidad de un accidente.
Acción para hoy: Si al menos una persona en tu empresa está comenzando a usar Claude Code, comparte el conjunto mínimo anterior como texto y pídele que lo pegue en .claude/settings.json. Es un tamaño perfecto para un ensayo de distribución.
Errores comunes: 3 cosas que debes saber antes de distribuir configuraciones
Debido a que se trata de endurecer la seguridad, hay puntos que son peligrosos si se malinterpretan.
- "Escribir una lista de denegación" no significa que sea perfectamente seguro. Como se mencionó en la Medida ③, una lista de denegación no puede detener todo lo que un script podría hacer en segundo plano. Incluso si detienes
curl, podrían quedar otros métodos de comunicación. Si deseas encerrarlo realmente, no olvides la premisa de superponerlo con un sandbox (Medida ④). - No confíes en el filtrado por argumentos. El propio Anthropic advierte que los permisos condicionales, como permitir
curlsolo para una URL específica, se rompen fácilmente. Es más robusto bloquear las cosas peligrosas por completo y proporcionar una alternativa segura. - No solo distribuyas configuraciones y lo des por terminado. Incluso si aplicas configuraciones administradas, no tiene sentido si los empleados instalan otras herramientas sospechosas por su cuenta. Las configuraciones son un "mecanismo para reducir accidentes" y funcionan mejor cuando se combinan con educación sobre el uso. Aquí es donde la Medida ⑤, "hacer que lean las reglas", finalmente entra en juego.
Preguntas frecuentes para usuarios intermedios
P. ¿Tiene algún sentido configurar esto para uso personal?
Sí. El criterio es si hay información secreta en esa computadora, no si es para una empresa. Los freelancers y desarrolladores individuales todavía tienen .env y ~/.ssh/ localmente. Como mínimo, es más seguro incluir la prohibición de lectura de la Medida ③.
P. ¿Restringir los permisos no hará que la IA sea inútil?
Es cuestión de cómo los restrinjas. Los comandos de solo lectura (como ls o cat) funcionan sin confirmación de forma predeterminada, por lo que el trabajo diario rara vez se detiene. Lo que se detiene son operaciones como eliminación, publicación y comunicación por internet, cosas que duelen si salen mal. De hecho, al cambiar a "los humanos solo verifican cuando es peligroso", puedes expandir de manera segura el rango de lo que dejas que la IA haga automáticamente.
P. ¿Cuál es la diferencia entre `settings.json` y la configuración administrada (`managed-settings.json`)?
La ubicación y la "fuerza" difieren. settings.json en la carpeta .claude/ de un proyecto es una configuración compartida que cualquiera puede editar. managed-settings.json es distribuido por la empresa y no puede ser cambiado por el usuario. Para individuos o grupos pequeños, el primero es suficiente; pasa al segundo cuando llegues a la etapa en que "es un problema si alguien relaja la configuración".
P. ¿Puedo usar el mismo razonamiento para Cursor u otras herramientas de codificación con IA?
Las cosas que quieres proteger (secretos, operaciones peligrosas, alcance) son las mismas, por lo que el concepto se aplica. Sin embargo, la sintaxis y la presencia de sandboxing varían según la herramienta, así que considera esta notación settings.json como específica de Claude Code. Si usas otras herramientas, el atajo es aplicar estas mismas tres perspectivas a su documentación oficial respectiva.
Resumen: De "no lo uses" a "distribúyelo de forma segura"
Cuando recibo consultas sobre implementación de IA, la respuesta más común solía ser "Es peligroso, así que todavía no podemos dejar que lo usen". Pero esa decisión también descarta toda la conveniencia.
Mercari nos mostró una salida a esa elección binaria. Deshabilita la omisión de confirmación, detén las operaciones peligrosas, prohíbe tocar archivos secretos, encierra en un sandbox y haz que lean las reglas. Luego, distribúyelo a todos como configuraciones que no pueden ser manipuladas. Es un diseño que cambia de "prohibido porque da miedo" a "distribuido con una correa porque da miedo".
- Objetivos a proteger: Evitar que los secretos se filtren / Evitar operaciones peligrosas / Limitar el alcance.
- Las 5 medidas de Mercari: Deshabilitar la omisión, restringir comandos peligrosos, prohibir archivos secretos, sandbox y lectura de reglas.
- Distribución: Usar configuraciones administradas que el usuario no puede sobrescribir, diferenciadas por alfabetización.
Finalmente, aquí hay tres pasos para empezar hoy:
- Agrega `Read(.env)` a tu propia computadora: Comienza prohibiendo la lectura de archivos secretos. Este es el movimiento único más efectivo.
- Crea un solo archivo con el conjunto mínimo: Basado en el ejemplo de
permissionsanterior, agrega comandos que tu empresa quiera detener. - Distribúyelo a una persona en la empresa para probar: Pídele que lo pegue en
.claude/settings.jsony verifiquen juntos que el trabajo no se estanque.
El primer paso es solo una línea para proteger .env. Puedes construir una defensa perfecta de múltiples capas una por una desde allí. ¿Por qué no colocar ese primer archivo hoy y cambiar de "detener porque da miedo" a "delegar con una correa"?





