Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Esta página explica como o Azure Databricks usa o Lakeguard para impor o isolamento do usuário em ambientes de computação compartilhados e o controle de acesso refinado na computação dedicada.
O que é Lakeguard?
O Lakeguard é um conjunto de tecnologias em Databricks que impõem isolamento de código e filtragem de dados para que vários usuários possam compartilhar o mesmo recurso de computação de forma segura e econômica, e acessar dados com controles de acesso refinados em vigor na computação oferecendo acesso privilegiado à máquina.
Como funciona o Lakeguard?
Em ambientes de computação compartilhados, como computação clássica padrão, computação sem servidor e armazéns SQL, o Lakeguard isola o código do usuário do mecanismo Spark e de outros usuários. Esse design permite que muitos usuários compartilhem os mesmos recursos de computação, mantendo limites rígidos entre usuários, o driver Spark e os executores.
Arquitetura clássica Spark
A imagem a seguir mostra como, na arquitetura tradicional do Spark, os aplicativos do usuário compartilham uma JVM com acesso privilegiado à máquina subjacente.
Arquitetura Lakeguard
O Lakeguard isola todo o código do usuário usando contêineres seguros. Isso permite que várias cargas de trabalho sejam executadas no mesmo recurso de computação, mantendo um isolamento estrito entre os usuários.
Isolamento do cliente Spark
O Lakeguard isola os aplicativos cliente do driver Spark e uns dos outros usando dois componentes principais:
Spark Connect: O Lakeguard usa o Spark Connect (introduzido com o Apache Spark 3.4) para separar aplicativos cliente do driver. Os aplicativos cliente e os drivers não compartilham mais a mesma JVM ou classpath. Esta separação impede o acesso não autorizado aos dados. Esse design também impede que os usuários acessem dados resultantes de superbusca quando as consultas incluem filtros no nível de linha ou coluna.
Observação
O Spark Connect adia a análise e a resolução de nomes para o tempo de execução, o que pode alterar o comportamento do seu código. Consulte Comparar o Spark Connect com o Spark Classic.
Área restrita de contêiner: cada aplicativo cliente é executado em seu próprio ambiente de contêiner isolado. Isso impede que o código do usuário acesse os dados de outros usuários ou a máquina subjacente. O sandboxing usa técnicas de isolamento baseadas em contêiner para criar limites seguros entre os usuários.
Isolamento UDF
Por padrão, os executores do Spark não isolam UDFs. Essa falta de isolamento pode permitir que UDFs gravem arquivos ou acessem a máquina subjacente.
O Lakeguard isola o código definido pelo usuário, incluindo UDFs, nos executores do Spark por:
- Sandboxing do ambiente de execução em executores Spark.
- Isolando o tráfego de rede de saída de UDFs para impedir o acesso externo não autorizado.
- Replicar o ambiente do cliente na área restrita UDF para que os usuários possam acessar as bibliotecas necessárias.
Esse isolamento se aplica a UDFs em computação padrão e a UDFs Python em computação sem servidor e armazéns SQL.