El Problema a Escala

La plataforma de datos de Netflix es masiva. Millones de tablas en el data warehouse, decenas de miles de workloads programados ejecutándose en sistemas de orquestación. Cada activo es propiedad de un ingeniero, un equipo o una iniciativa — y detrás de cada uno hay decisiones sobre quién puede acceder a qué y cómo se ejecutan esos workloads.

Los modelos tradicionales de control de acceso se rompen a esta escala. Cuando cada tabla tiene su propia ACL (Access Control List) y cada workflow se ejecuta bajo una identidad humana, los cambios organizacionales se convierten en una pesadilla. Reorganizaciones, cambios de rol y salidas provocan fallos en cascada en los permisos.

Dos problemas persistentes:

  • Los permisos no se actualizan: Los equipos de soporte se inundan con solicitudes para actualizar permisos en masa. Los equipos a menudo otorgan acceso demasiado amplio solo para evitar la sobrecarga.
  • Workflows atados a identidades humanas: Cuando el ingeniero que creó el workflow se va o cambia de equipo, el workflow se rompe. La única solución es cambiar a otra identidad humana, comenzando un juego de "golpea al topo" de permisos.

La Solución: Data Projects

Netflix introdujo Data Projects para resolver ambos problemas. Un Data Project son dos cosas:

  1. Un contenedor para gestionar un conjunto de activos relacionados (tablas, workflows, etc.) bajo un solo paraguas lógico.
  2. Una identidad sintética, duradera y asumible — que los workloads asíncronos y programados pueden usar, independientemente del ciclo de vida de cualquier humano.

Piensa en ello como elevar la granularidad de la gestión del activo individual a un contenedor significativo: el proyecto. En lugar de gestionar permisos en 500 tablas, gestionas en un proyecto que contiene esas 500 tablas.

Netflix data platform architecture diagram showing Data Projects as central containers for tables and workflows Technical Structure Concept

Cómo Funcionan los Data Projects

Grants y Roles

Cada Data Project tiene un conjunto de grants gestionados por el equipo propietario. Se pueden agregar diferentes tipos de identidad: usuarios, grupos, aplicaciones y jobs de CI. Cada grant tiene un rol que determina lo que el beneficiario puede hacer dentro del proyecto.

# Ejemplo: Gestionando grants del proyecto vía API (simplificado)
# Pseudocódigo en Python para ilustración

class DataProject:
    def __init__(self, project_id, owner_team):
        self.project_id = project_id
        self.owner_team = owner_team
        self.grants = {}  # identidad -> rol
        self.contained_assets = set()

    def add_grant(self, identity, role):
        # role puede ser 'contributor' (lectura/escritura) o 'viewer' (solo lectura)
        self.grants[identity] = role

    def remove_grant(self, identity):
        self.grants.pop(identity, None)

    def assume_identity(self):
        # Retorna el token de identidad duradera del proyecto
        return generate_project_token(self.project_id)

# Uso: cuando un usuario se une al equipo, actualiza un solo grant del proyecto
project = DataProject("analytics_qoe", "streaming_team")
project.add_grant("alice@netflix.com", "contributor")

El Paraguas de Identidad

Cada Data Project se provisiona con una identidad de aplicación Netflix (y opcionalmente un rol IAM de AWS). Este es el "paraguas de identidad" que hace que los workloads sean duraderos:

  • La identidad Netflix del proyecto ejecuta workloads asíncronos (ej: workflows Maestro). Pertenece al proyecto, no a ninguna persona.
  • El rol IAM soporta casos de uso especializados como jobs Spark en Amazon EMR. El rol IAM se puede intercambiar por la identidad Netflix del proyecto de forma criptográficamente segura.

Gravedad: Asociación Automática de Activos

Una propiedad elegante es la gravedad. Cuando un workload ejecutándose bajo la identidad de un proyecto crea un nuevo activo — digamos, un workflow Maestro crea tres tablas — esos activos se agregan automáticamente al proyecto. El proyecto se convierte en el centro de masa para todo lo producido bajo su identidad. Esto elimina futuros desafíos de descubrir activos relevantes y obtener acceso a ellos.

Seguridad de Workflows con Identidad Duradera

Maestro es el orquestador principal de workflows batch de Netflix. Dado que los workflows se ejecutan en horarios programados sin la presencia del usuario original, Maestro es un Trusted Workload Manager (TWM) que puede emitir tokens de identidad en nombre de los workloads que gestiona.

Con Data Projects, el workflow se ejecuta bajo la identidad del proyecto, no de un humano. Las tablas creadas durante la ejecución se asocian automáticamente al proyecto mediante gravedad. Los secretos se delimitan a las políticas del proyecto. El acceso se gestiona una vez a nivel de proyecto.

Este modelo es estable, auditable y construido para sobrevivir a cambios organizacionales.

Team of engineers managing thousands of data assets and access permissions in a large-scale data warehouse

Limitaciones y Consideraciones

Aunque los Data Projects resuelven muchos problemas, no son una bala de plata. Algunas consideraciones:

  • Costo de migración: Mover workflows existentes a un Data Project requiere configurar el proyecto con los permisos apropiados antes de cambiar la identidad de ejecución. Netflix está construyendo infraestructura para rastrear patrones de acceso y recomendar actualizaciones precisas de permisos.
  • Trade-off de granularidad: Los proyectos agrupan activos lógicamente, pero a veces necesitas excepciones por activo. Los equipos deben decidir entre crear un nuevo proyecto o usar uno más amplio.
  • Adopción organizacional: Los equipos necesitan pasar de pensar en activos individuales a pensar en fronteras de proyecto. Esto requiere cambio cultural y soporte de herramientas.

Próximos Pasos y Ruta de Aprendizaje

Si te inspiró el enfoque de Netflix, aquí te mostramos cómo empezar a aplicar principios similares:

  1. Audita tu modelo de permisos actual: Identifica dónde las identidades humanas causan fragilidad en los workflows.
  2. Experimenta con acceso basado en proyectos: Usa herramientas nativas de la nube como roles IAM de AWS, Managed Identities de Azure o service accounts de GCP como identidades duraderas.
  3. Explora mejores prácticas de orquestación: Mira orquestadores como Apache Airflow o Prefect que soportan alcance de identidad.

Para más sobre gestión de activos de datos a escala, echa un vistazo a este artículo relacionado sobre Building a Multi-Tenant, Sovereign Carbon Footprint Exchange on Catena-X with AWS. Y para una inmersión más profunda en patrones de IA en el dispositivo, mira On-Device Function Calling Goes Cross-Platform Inside Google AI Edge Gallerys Latest Update.

Secure access control and identity management for data workflows with durable project-based identities Coding Session Visual

Conclusión

Data Projects es la respuesta a una observación simple: a la escala de Netflix, la unidad de gestión de identidad y acceso no puede ser el activo individual o el humano individual. Tiene que ser algo más grande, algo duradero, algo que coincida con la forma en que los equipos realmente piensan sobre el trabajo que poseen.

Un proyecto es esa unidad. Al elevar la gestión de acceso al nivel del proyecto y proporcionar una identidad duradera, Netflix eliminó una gran fuente de dolor operativo. El concepto ya se está generalizando más allá de los datos — para activos de software, activos de estudio y mucho más.

La lección principal: piensa en contenedores, no en individuos. Ya sea que estés gestionando unas pocas tablas o millones, un enfoque basado en proyectos puede salvarte del ciclo interminable de golpea al topo de los permisos.

Este artículo está basado en insights del blog de ingeniería de Netflix.

Este contenido fue redactado con la asistencia de herramientas de IA, basándose en fuentes confiables, y fue revisado por nuestro equipo editorial antes de su publicación. No reemplaza el asesoramiento de un profesional especializado.