Endurecimiento de Seguridad y Auditoría
Avanzado⏱60 min📖2 min de lecturaLección 3 de 5

Endurecimiento de Seguridad y Auditoría

Endurece tu despliegue de OpenCode para seguridad. Aprende sistemas de permisos, registro de auditoría, gestión de secretos y patrones de cumplimiento para entornos de producción.

Capas de Seguridad

100%

Sistema de Permisos

Principio de Menor Privilegio

json
{ "permissions": [ { "tool": "bash", "allow": ["npm test", "npm run lint", "git status"], "deny": ["sudo *", "rm -rf *", "git push --force"] }, { "tool": "write", "allow": ["src/**", "tests/**"], "deny": [".env*", "secrets/**", "*.key", "*.pem"] }, { "tool": "read", "allow": ["**"], "deny": [".env*", "secrets/**"] } ] }

Patrones de Permisos

Patrón
Ejemplo
Coincide con
Exacto
npm test
Solo npm test
Comodín
npm *
Cualquier comando npm
Ruta
src/**
Cualquier archivo en src/
Negación
*.key
Cualquier archivo .key

Registro de Auditoría

Habilitar Registro Integral

json
{ "logging": { "enabled": true, "level": "info", "file": "opencode-audit.log", "rotate": { "maxSize": "10MB", "maxFiles": 30 } } }

Formato de Registro

json
{ "timestamp": "2024-01-15T10:30:00Z", "level": "info", "event": "tool.execute", "tool": "bash", "args": {"command": "npm test"}, "result": "success", "user": "developer1", "session": "abc123" }

Analizando Registros

bash
# Encontrar todas las operaciones fallidas grep '"result":"error"' opencode-audit.log # Encontrar comandos bash grep '"tool":"bash"' opencode-audit.log # Encontrar operaciones de escritura en archivos sensibles grep '"tool":"write"' opencode-audit.log | grep -E '\.env|secrets'

Gestión de Secretos

Variables de Entorno

bash
# .env (nunca commitear) OPENAI_API_KEY=sk-your-key ANTHROPIC_API_KEY=sk-ant-your-key DATABASE_URL=postgresql://...

Referencia en Configuración

json
{ "providers": { "openai": { "apiKey": "${OPENAI_API_KEY}" } } }

.gitignore

git
.env .env.* *.key *.pem secrets/

Seguridad de Red

Rotación de API Keys

bash
# Generar nueva key # Actualizar .env # Reiniciar OpenCode # Verificar que la key antigua está invalidada

Limitación de Tasa

json
{ "providers": { "openai": { "apiKey": "${OPENAI_API_KEY}", "rateLimit": { "requests": 60, "window": "1m" } } } }

Configuración de Timeout

json
{ "providers": { "openai": { "timeout": 30000 } } }

Patrones de Cumplimiento

Residencia de Datos

json
{ "providers": { "openai": { "apiKey": "${OPENAI_API_KEY}", "region": "us-east-1" } } }

Retención de Datos

json
{ "logging": { "retention": { "days": 90, "autoDelete": true } } }

Redacción de PII

json
{ "security": { "redact": { "patterns": [ "\\b\\d{3}-\\d{2}-\\d{4}\\b", "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b" ], "replacement": "[REDACTED]" } } }

Lista de Verificación de Seguridad

Antes del Despliegue

  • API keys en variables de entorno
  • .env en .gitignore
  • Reglas de permisos configuradas
  • Registro de auditoría habilitado
  • Limitación de tasa configurada
  • Timeouts establecidos
  • Redacción de PII habilitada

Auditorías Regulares

  • Revisar registros de auditoría semanalmente
  • Rotar API keys mensualmente
  • Actualizar reglas de permisos trimestralmente
  • Revisar patrones de seguridad anualmente

Preguntas de Práctica (Practice Questions)

Pregunta de Práctica
Cómo responder

Pregunta de opción múltiple con 4 opciones. Selecciona una opción y elige Comprobar respuesta.

¿Qué es el principio de menor privilegio?

Pregunta de Práctica
Cómo responder

Pregunta de opción múltiple con 4 opciones. Selecciona una opción y elige Comprobar respuesta.

¿Dónde se deben almacenar las API keys?

Pregunta de Práctica
Cómo responder

Pregunta de opción múltiple con 4 opciones. Selecciona una opción y elige Comprobar respuesta.

¿Qué hace la redacción de PII?

Pregunta de Práctica
Cómo responder

Pregunta de opción múltiple con 4 opciones. Selecciona una opción y elige Comprobar respuesta.

¿Con qué frecuencia se deben rotar las API keys?

Pregunta de Práctica
Cómo responder

Pregunta de opción múltiple con 4 opciones. Selecciona una opción y elige Comprobar respuesta.

¿Qué deben rastrear los registros de auditoría?


✅Éxito

Key Takeaways

  • Aplica el principio de menor privilegio a todas las reglas de permisos
  • Almacena API keys en variables de entorno, nunca en código
  • Habilita el registro integral de auditoría para cumplimiento
  • Usa la redacción de PII para proteger datos sensibles en registros
  • Rota API keys mensualmente y revisa permisos trimestralmente
  • Configura límites de tasa y timeouts para prevenir abusos
  • Las auditorías de seguridad regulares detectan problemas antes de que se conviertan en violaciones
Progreso60%