Complete Claude Code Guide: From Installation to Advanced Usage

Complete Claude Code Guide: From Installation to Advanced Usage

A comprehensive tutorial covering everything you need to know about Claude Code - from basic installation and setup to advanced features like MCP integration, automation, and security best practices.

Lección 4 2025-07-03 08:03

Guía de Seguridad y Mejores Prácticas de Claude Code

Guía de seguridad y mejores prácticas para Claude Code

La seguridad es primordial cuando se trabaja con herramientas de IA que pueden ejecutar comandos y modificar archivos. Esta guía exhaustiva cubre las características de seguridad de Claude Code, las mejores prácticas y cómo usarla de forma segura en diversos entornos.

Comprender el modelo de seguridad de Claude Code

Claude Code implementa un enfoque de seguridad de varias capas:

  1. Sistema de permisos: Control granular del acceso a las herramientas.
  2. Aislamiento del entorno: Límites configurables del espacio de trabajo.
  3. Pistas de auditoría: Registro y monitorización exhaustivos.
  4. Comunicación segura: Comunicación API cifrada.
  5. Gestión de la configuración: Manejo seguro de las credenciales.

Profundización en el sistema de permisos

Niveles de permiso

Claude Code opera en tres niveles de permiso principales:

Nivel Descripción Riesgo Caso de uso
Interactivo Pide permiso para cada operación Bajo Trabajo de desarrollo
Lista blanca Solo herramientas preaprobadas Medio Scripts de automatización
Peligroso Omite todos los permisos CRÍTICO Solo contenedores

Modo interactivo (recomendado)

En el modo interactivo, Claude pide permiso antes de cada operación potencialmente peligrosa:

# Valor predeterminado seguro - pide permisos
claude "Ayúdame a depurar esta aplicación"

Cuando Claude lo pida: - Lee con atención la solicitud de permiso. - Comprende qué herramienta se utilizará. - Considera el impacto potencial. - Concede solo los permisos necesarios.

Modo de lista blanca

Preaprueba herramientas específicas para flujos de trabajo automatizados:

# Permite solo herramientas seguras
claude --allowedTools "Edit,View" "Revisa el código en busca de problemas de seguridad"

# Permite ámbitos de comando específicos
claude --allowedTools "Bash(git:*)" "Analiza el repositorio git"

# Permisos combinados
claude --allowedTools "Edit,View,mcp__git__status,mcp__git__log" "Sesión de revisión de código"

Modo peligroso ⚠️

¡NUNCA uses el modo peligroso en sistemas de producción o sistemas con datos importantes!

# PELIGROSO: Usa solo en contenedores aislados
claude --dangerously-skip-permissions

Casos de uso seguros para el modo peligroso: - ✅ Contenedores Docker aislados - ✅ Máquinas virtuales desechables - ✅ Entornos de prueba de concepto - ✅ Sistemas de prueba sin datos importantes

NUNCA uses el modo peligroso en: - ❌ Sistemas de producción - ❌ Máquinas de desarrollo compartidas - ❌ Sistemas con datos sensibles - ❌ Tu ordenador personal

Gestión de credenciales y secretos

Seguridad de la clave API

Tu clave API de Anthropic es la credencial más crítica que debes proteger:

# ✅ Bien: Variable de entorno
export ANTHROPIC_API_KEY="sk-tu-clave-aquí"

# ❌ Mal: Codificado en los comandos
# claude --api-key "sk-tu-clave-aquí" "consulta"

# ✅ Bien: Permisos de archivo seguros
chmod 600 ~/.bashrc  # Asegúrate de que solo tú puedas leer los archivos de entorno

Seguridad del archivo de configuración

Protege la configuración de tu Claude Code:

# Establece los permisos de archivo adecuados
chmod 600 ~/.claude.json

# Comprueba los permisos actuales
ls -la ~/.claude.json

# Ejemplo de salida: -rw------- (solo el propietario puede leer/escribir)

Mejores prácticas para las variables de entorno

# ✅ Usa variables de entorno para todos los secretos
export GITHUB_TOKEN="tu-token"
export DATABASE_URL="postgresql://usuario:contraseña@host/bd"
export API_SECRET="tu-secreto"

# ✅ Usa entornos separados para diferentes contextos
# Desarrollo
export ANTHROPIC_API_KEY="sk-dev-key"
# Producción
export ANTHROPIC_API_KEY="sk-prod-key"

# ❌ Nunca codifiques secretos en archivos de configuración

Prácticas de configuración segura

Configuración jerárquica

Usa la jerarquía de configuración de Claude Code para mayor seguridad:

# 1. Configuración global (menos específica)
cat ~/.claude.json
{
  "allowedTools": ["View"],
  "disallowedTools": ["Bash"]
}

# 2. Configuración del proyecto (más específica)
cat ./settings.json
{
  "allowedTools": ["Edit", "View", "Bash(git:*)"],
  "systemPrompt": "Estás trabajando en una aplicación segura"
}

# 3. Flags de línea de comandos (más específicos)
claude --allowedTools "View" "Analiza el código en busca de vulnerabilidades"

Configuración MCP segura

Al configurar servidores MCP, sigue estas prácticas de seguridad:

{
  "mcpServers": {
    "database": {
      "command": "postgres-mcp-server",
      "env": {
        "POSTGRES_URL": "${DATABASE_URL}",  // ✅ Variable de entorno
        "POSTGRES_SSL": "require"           // ✅ Forzar SSL
      }
    },
    "github": {
      "command": "github-mcp-server",
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}",  // ✅ Variable de entorno
        "GITHUB_ORG": "tu-organización-segura"     // ✅ Limitar el ámbito
      }
    }
  }
}

Seguridad de la red

Configura Claude Code para un acceso seguro a la red:

# Configuración del proxy corporativo
export HTTP_PROXY="http://proxy.company.com:8080"
export HTTPS_PROXY="https://proxy.company.com:8443"
export NO_PROXY="localhost,127.0.0.1,*.company.com"

# Punto final de API personalizado (si se usa una implementación privada)
export ANTHROPIC_BASE_URL="https://tu-punto-final-privado.com"

# Verificación SSL (en entornos corporativos)
export NODE_TLS_REJECT_UNAUTHORIZED=1  # Mantener la verificación SSL habilitada

Seguridad del espacio de trabajo

Aislamiento de directorios

Controla a qué directorios puede acceder Claude Code:

# ✅ Limitar a directorios específicos
claude --add-dir ./src ./tests "Revisa el código de la aplicación"

# ✅ Espacio de trabajo específico del proyecto
cd /ruta/al/proyecto
claude "Trabaja solo en este proyecto"

# ❌ Evita trabajar desde directorios sensibles
# cd /etc && claude "ayuda a configurar el sistema"  # NO HAGAS ESTO

Patrones de permisos de archivo

# ✅ Bien: Permisos de herramientas específicos
claude --allowedTools "Edit(*.py),View(*.py)" "Trabaja en archivos Python"

# ✅ Bien: Acceso bash con ámbito limitado
claude --allowedTools "Bash(git:*),Bash(npm:test)" "Flujo de trabajo de desarrollo"

# ❌ Evita: Acceso bash amplio
# claude --allowedTools "Bash" "ayuda con el desarrollo"

Monitorización y auditoría

Mejores prácticas de registro

Habilita el registro exhaustivo para la monitorización de seguridad:

# Habilita el registro detallado
claude --verbose "Comienza la sesión de desarrollo"

# Registra en un archivo para fines de auditoría
claude --verbose "Sesión de desarrollo" 2>&1 | tee claude-session.log

# Monitoriza las llamadas a la API
export ANTHROPIC_LOG_LEVEL=debug
claude "Analiza la seguridad de la aplicación"

Seguimiento de sesiones

Realiza un seguimiento y gestiona las sesiones de Claude Code:

# Lista todas las sesiones
claude sessions list

# Revisa el historial de sesiones
claude sessions export ID-de-sesión > auditoría-de-sesión.json

# Limpia las sesiones antiguas
claude sessions clear --before "hace 30 días"

Monitorización de costes

Monitoriza el uso de la API para detectar actividades inusuales:

# Comprueba los costes de la sesión actual
claude /cost

# Monitoriza el uso de tokens
claude /status

# Configura alertas de costes (en entornos de producción)
export MAX_SESSION_COST=10.00  # Ejemplo de límite de coste

Flujos de trabajo de desarrollo seguros

Flujo de trabajo de revisión de código

Enfoque seguro para la revisión de código:

# ✅ Seguro: Solo revisión, sin modificaciones
claude --allowedTools "View,mcp__git__*" "Revisa los últimos commits en busca de problemas de seguridad"

# ✅ Seguro: Permisos de edición limitados
claude --allowedTools "Edit(*.md),View" "Actualiza la documentación"

# ⚠️ Precaución: Acceso de edición completo
claude --allowedTools "Edit,View" "Implementa la corrección de seguridad"

Operaciones de base de datos

Interacciones seguras con la base de datos:

# ✅ Seguro: Acceso a base de datos de solo lectura
claude --allowedTools "mcp__postgres__query" "Analiza las tendencias de datos de usuario"

# ⚠️ Precaución: Acceso de escritura limitado
claude --allowedTools "mcp__postgres__query,mcp__postgres__insert" "Añade datos de prueba"

# ❌ Peligroso: Acceso completo a la base de datos
# claude --allowedTools "mcp__postgres__*" "Soluciona problemas de la base de datos"

Gestión de infraestructura

Operaciones de infraestructura seguras:

# ✅ Seguro: Solo comprobaciones de estado
claude --allowedTools "View,Bash(kubectl:get)" "Comprueba el estado del clúster"

# ⚠️ Precaución: Acceso de despliegue limitado
claude --allowedTools "Bash(kubectl:apply),Bash(kubectl:rollout)" "Despliega la aplicación"

# ❌ Nunca: Acceso completo a la infraestructura
# claude --allowedTools "Bash" "Soluciona problemas de producción"

Seguridad específica del entorno

Entorno de desarrollo

# Permisos relajados para el desarrollo
claude --allowedTools "Edit,View,Bash(git:*),Bash(npm:*)" \
  --add-dir ./src ./test ./docs \
  "Sesión de desarrollo"

# Memoria del proyecto para el contexto
claude /memory set "Entorno de desarrollo - sé útil pero cauteloso"

Entorno de staging

# Más restrictivo para el staging
claude --allowedTools "View,Bash(git:status),Bash(git:log)" \
  "Analiza el despliegue de staging"

# Acceso a la base de datos de solo lectura
claude --allowedTools "mcp__postgres__query" \
  "Comprueba la integridad de los datos de staging"

Entorno de producción

# Permisos mínimos para producción
claude --allowedTools "View" \
  "Analiza los registros de producción en busca de errores"

# No se permite la edición de archivos en producción
claude --disallowedTools "Edit,Bash" \
  "Sesión de análisis de producción"

Respuesta a incidentes de seguridad

Clave API comprometida

Si tu clave API está comprometida:

  1. Revoce la clave inmediatamente en Anthropic Console.
  2. Genera una nueva clave API.
  3. Actualiza las variables de entorno.
  4. Revisa el uso reciente de la API en busca de actividad no autorizada.
  5. Audita las sesiones de Claude Code en busca de actividad sospechosa.
# Comprueba las sesiones recientes
claude sessions list

# Exporta la sesión para su análisis
claude sessions export ID-de-sesión-sospechosa > análisis-de-incidentes.json

# Borra todas las sesiones
claude sessions clear --all

Acceso no autorizado a archivos

Si Claude Code accedió a archivos sensibles:

  1. Detén la sesión actual inmediatamente.
  2. Revisa los registros de la sesión para comprender qué se accedió.
  3. Cambia cualquier credencial expuesta.
  4. Audita los permisos de los archivos.
  5. Implementa políticas de allowedTools más estrictas.
# Detén la sesión actual
claude /exit

# Revisa lo que pasó
tail -100 claude-session.log

# Implementa permisos más estrictos
claude config set allowedTools '["View"]'

Compromiso del servidor MCP

Si un servidor MCP está comprometido:

  1. Deshabilita el servidor MCP afectado.
  2. Revisa los registros del servidor.
  3. Actualiza el servidor a la última versión.
  4. Rota las credenciales utilizadas por el servidor.
  5. Vuelve a habilitar con permisos mínimos.
# Deshabilita el servidor MCP
claude mcp remove servidor-comprometido

# Comprueba el estado del servidor
claude mcp status

# Revisa la configuración
claude config get mcpServers

Lista de verificación de seguridad

Lista de verificación de uso diario

  • Usa permisos específicos y mínimos para cada tarea.
  • Evita el modo peligroso en sistemas importantes.
  • Mantén las claves API seguras en variables de entorno.
  • Revisa las solicitudes de permiso antes de conceder acceso.
  • Monitoriza los costes y el uso de la sesión.
  • Usa configuraciones específicas del proyecto.

Auditoría semanal de seguridad

  • Audita el historial de sesiones.
  • Revisa y limpia las sesiones antiguas.
  • Busca actualizaciones de Claude Code.
  • Revisa las configuraciones del servidor MCP.
  • Verifica los permisos de archivo en los archivos de configuración.
  • Monitoriza los patrones de uso de la clave API.

Mantenimiento de seguridad mensual

  • Rota las claves API.
  • Actualiza los servidores MCP a las últimas versiones.
  • Revisa y actualiza las configuraciones de allowedTools.
  • Audita los archivos de memoria del proyecto.
  • Limpia los servidores MCP no utilizados.
  • Revisa el cumplimiento de las políticas de seguridad corporativas.

Errores de seguridad comunes

Lo que NO se debe hacer

# ❌ Nunca uses el modo peligroso en producción
claude --dangerously-skip-permissions "arregla un error de producción"

# ❌ Nunca uses secretos codificados
claude --env "API_KEY=secreto123" "despliega la aplicación"

# ❌ Nunca concedas permisos demasiado amplios
claude --allowedTools "Bash" "ayúdame con cualquier cosa"

# ❌ Nunca ignores las solicitudes de permiso
# Siempre lee y comprende lo que Claude quiere hacer

# ❌ Nunca uses Claude Code con privilegios elevados innecesariamente
sudo claude "arregla la configuración del sistema"  # Normalmente innecesario y peligroso

Patrones de seguridad contraproducentes

  1. Permisos genéricos: Conceder acceso a todas las herramientas sin consideración.
  2. Exposición de credenciales: Poner secretos en los argumentos de la línea de comandos.
  3. Escalada de privilegios: Ejecutar Claude Code con sudo innecesario.
  4. Experimentación en producción: Probar en entornos de producción.
  5. Advertencias ignoradas: Desestimar las solicitudes de seguridad sin leer.

Configuración de seguridad avanzada

Seguridad empresarial

Para entornos empresariales:

# Gestión de configuración centralizada
export CLAUDE_CONFIG_URL="https://interna.empresa.com/config-claude"

# Registro de auditoría
export CLAUDE_AUDIT_LOG="/var/log/claude/auditoría.log"

# Restricciones de red
export ANTHROPIC_BASE_URL="https://proxy.empresa.com/anthropic"

# Modo de cumplimiento
export CLAUDE_COMPLIANCE_MODE="SOC2"

Seguridad de contenedores

Para Claude Code en contenedores:

# Dockerfile para un contenedor seguro de Claude Code
FROM node:18-alpine

# Crea un usuario no root
RUN addgroup -g 1001 claude && adduser -D -u 1001 -G claude claude

# Instala Claude Code
RUN npm install -g @anthropic-ai/claude-code

# Cambia al usuario no root
USER claude

# Establece un directorio de trabajo seguro
WORKDIR /workspace

# Por defecto, establece el modo seguro
CMD ["claude", "--allowedTools", "View"]

Conclusión

La seguridad en Claude Code radica en equilibrar la funcionalidad con la protección. Comienza con los permisos mínimos y amplía el acceso gradualmente según sea necesario. Siempre considera el impacto potencial de conceder permisos y nunca uses el modo peligroso en sistemas con datos importantes.

Recuerda: - Prioriza los permisos restrictivos por defecto. - Usa variables de entorno para los secretos. - Monitoriza y audita regularmente. - Mantén las configuraciones actualizadas. - Sigue el principio del menor privilegio.

Al seguir estas prácticas de seguridad, podrás aprovechar de forma segura el poder de Claude Code mientras proteges tus sistemas y datos de posibles riesgos.

Recursos de seguridad

Sé consciente de la seguridad, y Claude Code será una adición potente y segura a tu kit de herramientas de desarrollo.