Políticas de retención de datos y automatización: conserve lo que necesita, elimine lo que deba

Cree políticas de retención de datos con requisitos legales, cronogramas de retención, aplicación automatizada y verificación del cumplimiento de GDPR, SOX e HIPAA.

E
ECOSIRE Research and Development Team
|16 de marzo de 20268 min de lectura1.7k Palabras|

Parte de nuestra serie {series}

Leer la guía completa

Políticas de retención de datos y automatización: conserve lo que necesita, elimine lo que debe

Las empresas retienen un promedio de 33 % más datos de los que necesitan legalmente, lo que aumenta tanto los costos de almacenamiento como la exposición a violaciones. La retención de datos es donde convergen el cumplimiento legal, la optimización de costos y la seguridad. Si retienes demasiado, aumentarás tu superficie de ataque. Si retiene muy poco, violará los requisitos legales de retención.

Esta guía cubre el diseño de la política de retención, los requisitos legales por tipo de datos y la aplicación automatizada que mantiene a su organización en cumplimiento sin intervención manual.

Conclusiones clave

  • Los períodos de retención están determinados por la intersección de requisitos legales, necesidades comerciales y obligaciones de privacidad.
  • La aplicación automatizada es esencial: los procesos de eliminación manual tienen una tasa de falla del 40%
  • Diferentes tipos de datos dentro del mismo sistema pueden tener diferentes períodos de retención
  • Las retenciones legales deben anular las políticas de retención estándar cuando se prevé un litigio.

Requisitos del período de retención por reglamento

Requisitos mínimos de retención

Tipo de datosRGPDSOX (Estados Unidos)Ley Tributaria (varía)HIPAAEstándar de la industria
Registros financierosSin mínimo (limitación de finalidad)7 años3-10 años (por país)N/A7 años
Registros de empleadosDuración del empleo + 2-6 añosN/A3-7 años después de la terminaciónN/A7 años después de la terminación
Información personal del clienteMientras sea necesario para su finalidadN/AN/AN/AEliminar cuando termine la relación + 2 años
Registros sanitariosN/AN/AN/A6 años desde la creación/última fecha de vigenciaVaría según el estado (hasta 30 años)
Documentos fiscalesN/A7 años3-10 años (por país)N/A7 años
ContratosN/ADuración + 7 añosN/AN/ADuración + 6 años (prescripción)
Datos de contrataciónMáximo 6 meses (mejores prácticas)N/AN/AN/A6-24 meses
Tickets de soporteMientras sea necesarioN/AN/AN/A3 años después del cierre
Registros de auditoríaMientras sea necesario7 añosN/A6 años7 años
Consentimiento de comercializaciónDuración del consentimientoN/AN/AN/AHasta su retirada + 2 años

Retención de impuestos específicos del país

PaísPeríodo de retenciónNotas
Estados Unidos3-7 añosIRS: 3 años en general, 7 por fraude
Reino Unido6 añosRequisito de HMRC
Alemania10 añosMás estricto en la UE
Francia6 años (10 para algunos)Código de Comercio
Países Bajos7 añosFiscale bewaarplicht
Australia5 añosRequisito de la ATO
Canadá6 añosRequisito de la CRA
India8 añosLey del Impuesto sobre la Renta
Emiratos Árabes Unidos5 añosAutoridad Fiscal Federal

Diseño de un calendario de retención

Paso 1: Categorías de datos de inventario

CategoríaSistemasPropietarioEjemplos de datos
Datos del clienteCRM, comercio electrónico, soporteVentasNombres, correos electrónicos, historial de pedidos
Datos de empleadosHRIS, Nómina, BeneficiosRecursos HumanosSSN, salario, evaluaciones de desempeño
Datos financierosContabilidad, ERP, BancaFinanzasFacturas, recibos, declaraciones de impuestos
Datos de marketingPlataforma de correo electrónico, AnalyticsComercializaciónDatos de campaña, registros de consentimiento
Datos del productoERP, comercio electrónicoOperacionesEspecificaciones de productos, precios, inventario
Registros operativosServidores de aplicaciones, bases de datosTIRegistros de acceso, registros de errores, pistas de auditoría

Paso 2: Asignar períodos de retención

Para cada categoría, determine el período de retención utilizando esta jerarquía:

  1. Mínimo legal: ¿Qué exige la ley que usted conserve?
  2. Máximo legal: ¿Qué exige la ley que usted elimine? (Limitación de finalidad del RGPD)
  3. Necesidad empresarial: ¿Durante cuánto tiempo lo necesita realmente?
  4. Tolerancia al riesgo: ¿Cuál es el coste de conservarlo frente a eliminarlo?

El período de retención es: MÁXIMO (mínimo legal, necesidad comercial) pero NO SUPERIOR al máximo legal (si corresponde).

Paso 3: Definir acciones de eliminación

AcciónDescripciónCuándo utilizar
EliminarEliminar permanentemente todas las copiasPredeterminado para datos caducados
AnonimizarEliminar elementos identificativos, mantener agregadosAnálisis, investigación
ArchivoPasar a almacenamiento restringido y cifradoRetención legal, archivo de cumplimiento
AgregadoReemplazar registros individuales con resúmenesInformes financieros

Aplicación de la retención automatizada

Implementación de PostgreSQL

-- Retention policy table
CREATE TABLE retention_policies (
    id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
    table_name VARCHAR(100) NOT NULL,
    date_column VARCHAR(100) NOT NULL,
    retention_days INTEGER NOT NULL,
    action VARCHAR(20) NOT NULL, -- 'DELETE', 'ANONYMIZE', 'ARCHIVE'
    condition TEXT, -- Optional WHERE clause
    enabled BOOLEAN DEFAULT TRUE,
    last_run TIMESTAMP,
    records_affected INTEGER DEFAULT 0
);

-- Insert policies
INSERT INTO retention_policies (table_name, date_column, retention_days, action, condition) VALUES
('support_tickets', 'closed_at', 1095, 'ANONYMIZE', 'status = ''closed'''),
('recruitment_candidates', 'applied_at', 730, 'DELETE', 'status != ''hired'''),
('session_logs', 'created_at', 90, 'DELETE', NULL),
('newsletter_unsubscribed', 'unsubscribed_at', 365, 'DELETE', NULL),
('audit_logs', 'created_at', 2555, 'ARCHIVE', NULL);

-- Enforcement function
CREATE OR REPLACE FUNCTION enforce_retention_policies()
RETURNS TABLE(policy_id UUID, table_name TEXT, records_affected BIGINT) AS $$
DECLARE
    policy RECORD;
    affected BIGINT;
    query TEXT;
BEGIN
    FOR policy IN
        SELECT * FROM retention_policies WHERE enabled = TRUE
    LOOP
        IF policy.action = 'DELETE' THEN
            query := format(
                'DELETE FROM %I WHERE %I < NOW() - INTERVAL ''%s days''',
                policy.table_name, policy.date_column, policy.retention_days
            );
            IF policy.condition IS NOT NULL THEN
                query := query || ' AND ' || policy.condition;
            END IF;
        ELSIF policy.action = 'ANONYMIZE' THEN
            -- Anonymization requires table-specific logic
            -- This is a simplified example
            query := format(
                'UPDATE %I SET email = ''[email protected]'', name = ''Anonymized'' WHERE %I < NOW() - INTERVAL ''%s days''',
                policy.table_name, policy.date_column, policy.retention_days
            );
            IF policy.condition IS NOT NULL THEN
                query := query || ' AND ' || policy.condition;
            END IF;
        END IF;

        EXECUTE query;
        GET DIAGNOSTICS affected = ROW_COUNT;

        UPDATE retention_policies
        SET last_run = NOW(), records_affected = affected
        WHERE id = policy.id;

        RETURN QUERY SELECT policy.id, policy.table_name::TEXT, affected;
    END LOOP;
END;
$$ LANGUAGE plpgsql;

Programación

# Run retention enforcement daily at 3 AM
# /etc/cron.d/retention-enforcement
0 3 * * * postgres psql -d ecosire -c "SELECT * FROM enforce_retention_policies();" >> /var/log/retention-enforcement.log 2>&1

Retenciones legales

Una retención legal suspende las políticas de retención normales cuando se anticipa, está pendiente o está en curso un litigio. Todos los datos potencialmente relevantes deben conservarse independientemente de los calendarios de retención.

Implementación

-- Legal hold table
CREATE TABLE legal_holds (
    id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
    matter_name VARCHAR(255) NOT NULL,
    description TEXT,
    custodians TEXT[], -- Users whose data is held
    tables_affected TEXT[], -- Tables where retention is suspended
    created_at TIMESTAMP DEFAULT NOW(),
    released_at TIMESTAMP,
    created_by UUID REFERENCES users(id)
);

-- Modified retention enforcement respects legal holds
CREATE OR REPLACE FUNCTION enforce_retention_with_holds()
RETURNS void AS $$
BEGIN
    -- Skip tables under active legal hold
    DELETE FROM session_logs
    WHERE created_at < NOW() - INTERVAL '90 days'
    AND 'session_logs' NOT IN (
        SELECT UNNEST(tables_affected)
        FROM legal_holds
        WHERE released_at IS NULL
    );
END;
$$ LANGUAGE plpgsql;

Verificación y Cumplimiento

Auditoría de retención mensual

  • [] Todas las políticas de retención están documentadas y actualizadas.
  • [] La aplicación automatizada se ejecutó correctamente (verifique los registros)
  • [] No existen datos más allá del período de retención (verificación de muestra)
  • [] Las retenciones legales están activas para todos los litigios pendientes.
  • [] A nuevas categorías de datos se les han asignado períodos de retención
  • Los procesadores de terceros cumplen con los requisitos de retención

Preguntas frecuentes

¿Qué sucede si conservamos los datos más tiempo del necesario según el RGPD?

Retener datos personales más allá del período de retención necesario viola el principio de limitación de almacenamiento del RGPD (Artículo 5(1)(e)). Las autoridades de supervisión pueden imponer multas de hasta 20 millones de euros o el 4% del volumen de negocios anual global. En términos más prácticos, el exceso de datos aumenta su exposición a una infracción: usted es responsable de los datos que no debería haber tenido.

¿Cómo manejamos la retención de copias de seguridad?

Las copias de seguridad complican la retención porque contienen instantáneas de datos en momentos específicos. Opciones: (1) rotar las copias de seguridad según un cronograma alineado con su período de retención más largo, (2) cifrar las copias de seguridad y destruir la clave de cifrado cuando expire la retención ("cripto-trituración"), (3) aceptar que las copias de seguridad puedan contener datos vencidos, pero documentar esto como una limitación técnica con controles de compensación.

¿Cómo implementamos la retención en Odoo?

Odoo no tiene automatización de retención incorporada. Implementarlo usando: (1) acciones programadas (trabajos cron) que archivan o anonimizan registros antiguos, (2) módulos personalizados que aplican reglas de retención en modelos específicos, (3) funciones a nivel de base de datos para operaciones masivas. ECOSIRE proporciona personalización de Odoo para la gestión automatizada del ciclo de vida de los datos.


¿Qué viene después?

La retención de datos es un componente de un programa de gobernanza completo. Combínelo con privacidad por diseño para nuevos sistemas, privacidad de datos de los empleados para datos de recursos humanos y gestión de contratos de proveedores para procesadores externos.

Comuníquese con ECOSIRE para obtener consultoría sobre el diseño y la implementación de políticas de retención de datos.


Publicado por ECOSIRE: ayuda a las empresas a gestionar datos durante todo su ciclo de vida.

E

Escrito por

ECOSIRE Research and Development Team

Construyendo productos digitales de nivel empresarial en ECOSIRE. Compartiendo perspectivas sobre integraciones Odoo, automatización de eCommerce y soluciones empresariales impulsadas por IA.

Más de {series}

Lista de verificación de preparación para auditorías: cómo su ERP hace que las auditorías sean un 60 por ciento más rápidas

Lista de verificación completa de preparación de auditoría utilizando sistemas ERP. Reduzca el tiempo de auditoría en un 60 por ciento con documentación, controles y recopilación de evidencia automatizada adecuados.

Guía de implementación del consentimiento de cookies: gestión del consentimiento conforme a la ley

Implemente un consentimiento de cookies que cumpla con GDPR, ePrivacy, CCPA y regulaciones globales. Cubre banners de consentimiento, categorización de cookies e integración de CMP.

Regulaciones de transferencia de datos transfronteriza: navegando por los flujos de datos internacionales

Explore las regulaciones de transferencia de datos transfronterizas con SCC, decisiones de adecuación, BCR y evaluaciones de impacto de transferencia para el cumplimiento del RGPD, el Reino Unido y APAC.

Requisitos reglamentarios de ciberseguridad por región: un mapa de cumplimiento para empresas globales

Explore las regulaciones de ciberseguridad en EE. UU., la UE, el Reino Unido, APAC y Medio Oriente. Cubre NIS2, DORA, reglas SEC, requisitos de infraestructura crítica y cronogramas de cumplimiento.

Gobernanza y cumplimiento de datos: la guía completa para empresas de tecnología

Guía completa de gobernanza de datos que cubre marcos de cumplimiento, clasificación de datos, políticas de retención, regulaciones de privacidad y hojas de ruta de implementación para empresas de tecnología.

Gestión de la privacidad de los datos de los empleados: equilibrar las necesidades de recursos humanos con los derechos de privacidad

Administre la privacidad de los datos de los empleados con los requisitos del RGPD, los motivos de procesamiento de datos de recursos humanos, las políticas de monitoreo, las transferencias transfronterizas y las mejores prácticas de retención.

Chatea en whatsapp