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
Sistema de Permisos
Principio de Menor Privilegio
{
"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
{
"logging": {
"enabled": true,
"level": "info",
"file": "opencode-audit.log",
"rotate": {
"maxSize": "10MB",
"maxFiles": 30
}
}
}Formato de Registro
{
"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
# 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
# .env (nunca commitear)
OPENAI_API_KEY=sk-your-key
ANTHROPIC_API_KEY=sk-ant-your-key
DATABASE_URL=postgresql://...Referencia en Configuración
{
"providers": {
"openai": {
"apiKey": "${OPENAI_API_KEY}"
}
}
}.gitignore
.env
.env.*
*.key
*.pem
secrets/Seguridad de Red
Rotación de API Keys
# Generar nueva key
# Actualizar .env
# Reiniciar OpenCode
# Verificar que la key antigua está invalidadaLimitación de Tasa
{
"providers": {
"openai": {
"apiKey": "${OPENAI_API_KEY}",
"rateLimit": {
"requests": 60,
"window": "1m"
}
}
}
}Configuración de Timeout
{
"providers": {
"openai": {
"timeout": 30000
}
}
}Patrones de Cumplimiento
Residencia de Datos
{
"providers": {
"openai": {
"apiKey": "${OPENAI_API_KEY}",
"region": "us-east-1"
}
}
}Retención de Datos
{
"logging": {
"retention": {
"days": 90,
"autoDelete": true
}
}
}Redacción de PII
{
"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)
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?
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?
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?
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?
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?
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