Permisos de Claude Code: protege .env, Git y los comandos peligrosos
Guía práctica para limitar los permisos de Claude Code: aislar secretos, controlar comandos de Git y shell y comprobar los límites de seguridad antes de usar un repositorio de producción.
Al configurar Claude Code, los desarrolladores suelen encontrarse ante una elección equivocada: confirmar constantemente comandos de lectura triviales o activar el bypass completo (--dangerously-skip-permissions) y arriesgar una filtración de .env, un git push --force accidental o un entorno de proyecto dañado.
Ninguno de los dos extremos funciona bien. La operación segura sigue el principio de mínimo privilegio: hay que separar con claridad los accesos de lectura, los permisos de escritura, la ejecución de shell y el control de versiones.
1. Mapa de permisos: de la lectura al impacto externo
Organiza los archivos y comandos en cuatro niveles de acceso:
2. Aislar los archivos .env y los secretos del proyecto
Transport Layer Security (TLS) cifra el tráfico de API mientras viaja por la red. No impide, sin embargo, que credenciales confidenciales lleguen a la ventana de contexto del modelo, a los registros de errores o a los resúmenes de handoff.
Para evitar que Claude Code ingiera credenciales privadas:
- Añade a
.gitignoretodos los archivos de entorno que contengan secretos. - Proporciona una plantilla
.env.examplelimpia con valores ficticios; así el agente conoce los nombres de variables sin ver valores de ejecución. - Añade una regla de límite estricta en
CLAUDE.mdoAGENTS.md:
Regla de protección de secretos
- Nunca inspecciones, muestres ni transmitas contenido de
.env,.env.localo archivos de claves privadas. - Para comprobar las claves de configuración requeridas, revisa
.env.example.
3. Lista de comprobación priorizada para Git y comandos
Al ejecutar tareas con Claude Code, aplica primero esta jerarquía:
Barreras paso a paso
- Paso 1: bloquear mutaciones de Git. No permitas pushes automatizados directos a
mainsin ejecutar manualmentegit diff --checky las pruebas. - Paso 2: aislar la instalación de paquetes. Comandos como
npm install <package>o scripts curl remotos deben verificarse manualmente para evitar dependencias no confiables y riesgos de cadena de suministro. - Paso 3: limitar el alcance de directorios. Restringe el workspace del agente a una carpeta concreta de la funcionalidad o a un Git worktree dedicado.
4. Validar permisos en un workspace de prueba
Antes de dar a Claude Code acceso a repositorios críticos, realiza una validación en sandbox:
- Crea una rama temporal de prueba:
git checkout -b test/permission-check. - Añade un archivo
.envficticio con un secreto de prueba falso. - Pide al agente que refactorice el módulo de autenticación.
- Comprueba que:
- el agente no leyó el
.envficticio durante la exploración; - no aparecen tokens secretos en registros de errores, comentarios o
git diff; - las pruebas unitarias se ejecutan sin acceder a archivos no autorizados.
- el agente no leyó el
- Elimina la rama de prueba cuando hayas confirmado los límites.
Este límite de permisos protege las credenciales y mantiene una ejecución autónoma rápida.