Skip to content

Claude Code Mastery6 / 12

Seguridad en bases de código de producción

Permisos, salvaguardas y qué no automatizar. El artículo nada sexy que decide si Claude Code se vuelve infraestructura o se vuelve la razón por la que te llamaron a las 2 a. m.

El artículo nada sexy. El que decide si Claude Code se convierte en infraestructura o en la historia que cuentas en un postmortem.

Esta es la regla en torno a la cual construyes todo lo demás:

Esa única regla aclara el 90 % de las decisiones de permisos. Todo lo demás es operativizarla.

Reversibilidad, no "miedo"

La mayoría de equipos configuran allowlists por instinto. "Los tests parecen seguros; los deletes dan miedo." Está mal.

Reformula alrededor del blast radius:

  • Reversible: editar un archivo en tu working tree, correr tests, hacer pnpm install, crear una feature branch. Si algo se rompe, git checkout/git stash te salva.
  • Irreversible: git push, npm publish, migraciones de DB en prod, terraform apply, enviar correos, cobrar tarjetas, borrar recursos cloud.

La primera lista debería estar en la allowlist del agente. La segunda debería exigir una pulsación humana cada vez, sin excepciones.

El .claude/settings.json mínimo para un repo de producción

{
  "tools": {
    "shell": {
      "allow": [
        "pnpm test",
        "pnpm test:watch",
        "pnpm lint",
        "pnpm build",
        "pnpm db:migrate:dev",
        "pnpm db:reset:dev",
        "pnpm install",
        "git status",
        "git diff *",
        "git log *",
        "git stash *",
        "git checkout *",
        "git branch",
        "git add *",
        "git commit *",
        "ls *",
        "rg *",
        "cat *"
      ],
      "deny": [
        "git push *",
        "git rebase *",
        "git reset --hard *",
        "rm -rf *",
        "npm publish *",
        "pnpm publish *",
        "docker push *",
        "kubectl apply *",
        "terraform apply *",
        "aws *",
        "gcloud *",
        "psql -h prod*"
      ]
    }
  }
}

Algunas cosas a fijarse:

  • git commit está permitido; git push no. El agente puede preparar un cambio local; lo publicas.
  • pnpm db:migrate:dev está permitido; la variante prod no — y las migraciones de prod no deberían ejecutarse desde una máquina de dev.
  • aws * y gcloud * se deniegan en bloque. Si necesitas un sub-agente que llame APIs cloud, dale un comando específico, no la CLI entera.

La lista "archivos que el agente no debe tocar nunca"

Aunque confíes en el agente, ciertos archivos deben requerir edición humana. Bloquéalos en CLAUDE.md:

# Nunca modificar
- /infra/terraform/   (solo humanos)
- /.github/workflows/release.yml
- El campo "version" de /package.json
- Cualquier archivo en /db/migrations/ ya aplicado
- /SECURITY.md

Claude Code respeta con fuerza las instrucciones de CLAUDE.md. Combinado con la revisión del git diff, basta para el 99 % de los equipos.

Separación de roles de sub-agentes = defensa en profundidad real

Cubrimos los 11 sub-agentes en el artículo 5. Por qué importa la separación de roles para la seguridad:

  • code-reviewer no puede editar. Aunque "decida" que algo está bien, no puede enviarlo.
  • test-writer no puede tocar código de producción. Un test fallido es evidencia real, no salida flaky.
  • migration-runner solo puede correr pnpm db:migrate. Aun comprometido, el blast radius es un comando.

Esa es defensa en profundidad real — construida con archivos de restricciones, no con teatro de seguridad.

Cosas que no deberías automatizar

Una lista corta de "no, aunque funcione":

  • Publicar en canales públicos (Slack, Discord, Twitter). La latencia da igual; un mensaje con tono fuera de lugar en #engineering, no.
  • Correos a clientes. Contenido generado, vale en borradores. El envío es humano.
  • Dinero. Cargos, reembolsos, payouts. No automatizar. Nunca.
  • Auth e identidad. Añadir usuario, conceder admin, rotación de claves.
  • Force pushes. Incluso en feature branches. El coste de un force-push accidental es demasiado alto.

Regla práctica: si el peor coste es un postmortem, un correo de disculpa o una carta del regulador, mantén una pulsación humana entre intención y ejecución.

Trazabilidad — la feature infravalorada

Cada sesión de Claude Code escribe un transcript en ~/.claude/sessions/. En equipo, manda esos transcripts a algo durable:

  • Un bucket S3 privado.
  • Un stream de logs en Datadog.
  • Un simple git log de .claude/transcripts/ commiteado en el repo.

No los leerás a menudo. Pero el día que sí — cuando algo raro pase en la base y necesites saber quién/qué la cambió — son oro.

Checklist práctica de seguridad

Antes de dejar correr Claude Code sobre una base real:

  • .claude/settings.json con allow y deny explícitos.
  • CLAUDE.md con sección "Nunca modificar".
  • .claude/agents/ incluye al menos code-reviewer y test-writer.
  • git push no está en ninguna allowlist.
  • Un compañero ha revisado la allowlist.
  • Probaste primero claude --dry-run (o el equivalente en tu versión) en una feature branch.

Seis ítems. Veinte minutos de trabajo. La mayoría de incidentes de prod vienen de saltarte al menos tres.


Próximo artículo: Pipelines multi-agente — encadenar sub-agentes, ejecutarlos en paralelo y los patrones para "revisión-mientras-codeo" sin perder la cabeza.

Compartir este artículo

#ClaudeCode #DevOps #Seguridad #AgenticAI #ProductionEngineering

LinkedInX / TwitterBlueskyThreadsRedditHacker NewsWhatsAppCorreo

Serie — Claude Code Mastery

  1. Parte 01Claude Code vs ChatGPT vs Copilot vs agentesLa mayoría de los desarrolladores usan la herramienta de IA equivocada para la tarea equivocada. Aquí tienes el porqué — y qué hacer en su lugar.
  2. Parte 02Instalación + el flujo de trabajo antigravedadInstalar Claude Code es cosa de 30 segundos. Configurar el flujo que hace que el agente parezca cargar con todo el trabajo pesado — eso es lo que nadie cuenta.
  3. Parte 03Escribir prompts que funcionan"Hazlo mejor" no es un prompt. "Refactoriza para rendimiento" no es un prompt. Aquí tienes la estructura de cuatro partes que hace que Claude Code termine de verdad lo que pediste.
  4. Parte 04Slash commands — construir un proyecto de la A a la Z/init, /agents, /compact y tus comandos personalizados. El kit que te lleva de carpeta vacía a app corriendo sin salir del prompt de Claude.
  5. Parte 05Sub-agentes — los 11 expertos especializados dentro de Claude CodeLos slash commands reutilizan prompts. Los sub-agentes reutilizan personas enteras — code-reviewer, test-writer, migration-runner. Aquí tienes el equipo que deberías tener desde el día uno.
  6. Parte 06Seguridad en bases de código de producciónestás aquíPermisos, salvaguardas y qué no automatizar. El artículo nada sexy que decide si Claude Code se vuelve infraestructura o se vuelve la razón por la que te llamaron a las 2 a. m.
  7. Parte 07Pipelines multi-agenteEncadenar sub-agentes, ejecutarlos en paralelo y los patrones para 'revisar-mientras-codeo' sin perder la cabeza. Donde Claude Code empieza a sentirse como una pequeña organización de ingeniería.
  8. Parte 08Construir features completasDel ticket en Linear al PR mergeado con Claude Code. Un recorrido real y honesto — cómo era el prompt, qué acertó el agente, qué pillé en la review.
  9. Parte 09Pruebas y depuraciónDejar que Claude Code dueñe todo el bucle de tests. Incluidas las partes que ponen nerviosos a los ingenieros: regresiones, flakies, tests de integración y el susurrador de stack-traces.
  10. Parte 10Workflows de equipoCómo los equipos de ingeniería integran Claude Code hoy en la práctica. La carpeta .claude/ compartida, los rituales de revisión y los antipatrones que veo una y otra vez en el campo.
  11. Parte 11Patrones avanzados — Hooks, servidores MCP, herramientas custom, system promptsCuando ya creciste más allá de los defaults: hooks para efectos colaterales deterministas, servidores MCP para datos de la organización, herramientas custom y cirugía de system prompt.
  12. Parte 12El futuro del desarrollo agénticoHacia dónde va esto en 2026 y más allá. A qué le apostaría, a qué no, y la línea más allá de la cual me vuelvo escéptico del hype.

Sigue aprendiendo

Curso

El curso Claude Mastery

12 módulos · 5 idiomas · certificado · prueba de 3 días gratis.

Ver planes →
LinkedInX / TwitterBlueskyThreads