O Problema em Escala

A plataforma de dados da Netflix é massiva. Milhões de tabelas no data warehouse, dezenas de milhares de workloads agendados rodando em sistemas de orquestração. Cada ativo é de propriedade de um engenheiro, um time ou uma iniciativa — e por trás de cada um estão decisões sobre quem pode acessar o quê e como esses workloads executam.

Modelos tradicionais de controle de acesso quebram nessa escala. Quando cada tabela tem sua própria ACL (Access Control List) e cada workflow roda sob uma identidade humana, mudanças organizacionais se tornam um pesadelo. Reorganizações, mudanças de cargo e saídas causam falhas em cascata nas permissões.

Dois problemas persistentes:

  • Permissões não acompanham: Times de suporte são inundados com solicitações para atualizar permissões em massa. Times frequentemente recorrem a conceder acesso excessivamente amplo só para evitar a sobrecarga.
  • Workflows amarrados a identidades humanas: Quando o engenheiro que criou o workflow sai ou muda de time, o workflow quebra. A única solução é trocar por outra identidade humana, iniciando um jogo de "acerta a toupeira" das permissões.

A Solução: Data Projects

A Netflix introduziu Data Projects para resolver ambos os problemas. Um Data Project é duas coisas:

  1. Um contêiner para gerenciar um conjunto de ativos relacionados (tabelas, workflows, etc.) sob um único guarda-chuva lógico.
  2. Uma identidade sintética, durável e assumível — que workloads assíncronos e agendados podem usar, independente do ciclo de vida de qualquer humano.

Pense como elevar a granularidade do gerenciamento do ativo individual para um contêiner significativo: o projeto. Em vez de gerenciar permissões em 500 tabelas, você gerencia em um projeto que contém essas 500 tabelas.

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

Como os Data Projects Funcionam

Grants e Papéis

Cada Data Project tem um conjunto de grants gerenciados pelo time proprietário. Diferentes tipos de identidade podem ser adicionados: usuários, grupos, aplicações e jobs de CI. Cada grant tem um papel que determina o que o beneficiário pode fazer dentro do projeto.

# Exemplo: Gerenciando grants do projeto via API (simplificado)
# Pseudocódigo em Python para ilustração

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

    def add_grant(self, identity, role):
        # role pode ser 'contributor' (leitura/escrita) ou 'viewer' (somente leitura)
        self.grants[identity] = role

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

    def assume_identity(self):
        # Retorna o token de identidade durável do projeto
        return generate_project_token(self.project_id)

# Uso: quando um usuário entra no time, atualize um único grant do projeto
project = DataProject("analytics_qoe", "streaming_team")
project.add_grant("alice@netflix.com", "contributor")

O Guarda-Chuva de Identidade

Cada Data Project é provisionado com uma identidade de aplicação Netflix (e opcionalmente uma role IAM da AWS). Esse é o "guarda-chuva de identidade" que torna os workloads duráveis:

  • A identidade Netflix do projeto executa workloads assíncronos (ex: workflows Maestro). Ela pertence ao projeto, não a nenhuma pessoa.
  • A role IAM suporta casos de uso especializados como jobs Spark no Amazon EMR. A role IAM pode ser trocada pela identidade Netflix do projeto de forma criptograficamente segura.

Gravidade: Associação Automática de Ativos

Uma propriedade elegante é a gravidade. Quando um workload rodando sob a identidade de um projeto cria um novo ativo — digamos, um workflow Maestro cria três tabelas — esses ativos são automaticamente adicionados ao projeto. O projeto se torna o centro de massa para tudo produzido sob sua identidade. Isso elimina futuros desafios de descobrir ativos relevantes e obter acesso a eles.

Segurança de Workflows com Identidade Durável

Maestro é o orquestrador principal de workflows batch da Netflix. Como os workflows rodam em horários agendados sem a presença do usuário original, o Maestro é um Trusted Workload Manager (TWM) que pode emitir tokens de identidade em nome dos workloads que gerencia.

Com Data Projects, o workflow roda sob a identidade do projeto, não de um humano. Tabelas criadas durante a execução são automaticamente associadas ao projeto via gravidade. Segredos são escopados para as políticas do projeto. O acesso é gerenciado uma vez no nível do projeto.

Esse modelo é estável, auditável e construído para sobreviver a mudanças organizacionais.

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

Limitações e Considerações

Embora os Data Projects resolvam muitos problemas, não são uma bala de prata. Algumas considerações:

  • Custo de migração: Mover workflows existentes para um Data Project exige configurar o projeto com as permissões apropriadas antes de mudar a identidade de execução. A Netflix está construindo infraestrutura para rastrear padrões de acesso e recomendar atualizações precisas de permissão.
  • Trade-off de granularidade: Projetos agrupam ativos logicamente, mas às vezes você precisa de exceções por ativo. Times devem decidir entre criar um novo projeto ou usar um mais amplo.
  • Adoção organizacional: Times precisam mudar de pensar em ativos individuais para pensar em fronteiras de projeto. Isso requer mudança cultural e suporte de ferramentas.

Próximos Passos e Caminho de Aprendizado

Se você se inspirou na abordagem da Netflix, aqui está como começar a aplicar princípios semelhantes:

  1. Audite seu modelo de permissão atual: Identifique onde identidades humanas causam fragilidade em workflows.
  2. Experimente acesso baseado em projeto: Use ferramentas nativas da nuvem como IAM roles da AWS, Managed Identities do Azure ou service accounts do GCP como identidades duráveis.
  3. Explore melhores práticas de orquestração: Veja orquestradores como Apache Airflow ou Prefect que suportam escopo de identidade.

Para mais sobre gerenciamento de ativos de dados em escala, confira este artigo relacionado sobre Building a Multi-Tenant, Sovereign Carbon Footprint Exchange on Catena-X with AWS. E para um mergulho mais profundo em padrões de IA no dispositivo, veja 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 Developer Related Image

Conclusão

Data Projects é a resposta para uma observação simples: na escala da Netflix, a unidade de gerenciamento de identidade e acesso não pode ser o ativo individual ou o humano individual. Tem que ser algo maior, algo durável, algo que combine com a forma como os times realmente pensam sobre o trabalho que possuem.

Um projeto é essa unidade. Ao elevar o gerenciamento de acesso ao nível do projeto e fornecer uma identidade durável, a Netflix eliminou uma grande fonte de dor operacional. O conceito já está sendo generalizado além de dados — para ativos de software, ativos de estúdio e muito mais.

O principal aprendizado: pense em contêineres, não em indivíduos. Esteja você gerenciando algumas tabelas ou milhões, uma abordagem baseada em projetos pode salvá-lo do ciclo interminável de acerta a toupeira das permissões.

Este artigo é baseado em insights do blog de engenharia da Netflix.

Este conteúdo foi elaborado com o auxílio de ferramentas de IA, com base em fontes confiáveis, e revisado pela nossa equipe editorial antes da publicação. Não substitui o aconselhamento de um profissional especializado.