Pular para o conteúdo principal

Biblioteca Allowlist e script de inicialização em compute com modo de acesso padrão (anteriormente modo de acesso compartilhado)

No Databricks Runtime 13.3 LTS e versões superiores, o allowlist no Unity Catalog controla qual biblioteca e script de inicialização podem ser compute no modo de acesso padrão. Isso permite que os usuários aproveitem esses artefatos em compute configurados com o modo de acesso padrão.

Por default, a lista de permissões está vazia. Você não pode desativar este recurso. Para modificar a lista de permissões, você deve ser um administrador do metastore ou ter o privilégio MANAGE ALLOWLIST . Veja gerenciar LISTA DE PERMITIDOS.

Você pode adicionar um diretório ou arquivo à lista de permissões mesmo que ele ainda não tenha sido criado. Consulte a seção sobre como carregar arquivos para um volume Unity Catalog.

importante

As bibliotecas usadas como drivers JDBC ou fontes de dados personalizadas Spark no padrão habilitado para o Unity Catalog compute exigem permissões ANY FILE.

Algumas bibliotecas instaladas armazenam os dados de todos os usuários em um diretório temporário comum. Essas bibliotecas podem comprometer o isolamento do usuário.

Riscos de segurança e operacionais

Compreender as implicações de segurança das listas de permissões é fundamental para manter o isolamento cluster e proteger seus dados em compute no modo de acesso padrão. O uso correto da lista de permissões impede que os usuários adicionem bibliotecas e scripts de inicialização arbitrários. Isso reduz a probabilidade de problemas de segurança, instabilidade do cluster e outros comportamentos imprevisíveis.

Seja criterioso sobre quem recebe privilégios MANAGE ALLOWLIST . Usuários com privilégios MANAGE ALLOWLIST podem adicionar qualquer caminho ou coordenada Maven à compute de permissões, controlando efetivamente qual código pode ser executado no modo de acesso padrão.

Como administrador do metastore, revise periodicamente os itens da lista de permissões e verifique se eles provêm de fontes confiáveis. Os artefatos incluídos na lista de permissões podem acessar recursos cluster e dados do usuário, portanto, devem estar sujeitos aos mesmos controles de segurança e governança que outros componentes sensíveis.

A Databricks recomenda estas boas práticas para gerenciar a lista de permissões:

  • Conceda o privilégio MANAGE ALLOWLIST somente aos administradores do metastore e aos administradores de plataforma confiáveis. Para outros usuários, conceda MANAGE ALLOWLIST apenas temporariamente, conforme necessário.
  • Analise e audite regularmente as adições à lista de permissões.
  • Use caminhos específicos e coordenadas Maven em vez de padrões genéricos.
  • Configure locais de armazenamento para artefatos permitidos com permissões somente de leitura.
  • Implemente um processo formal de aprovação para inclusões na lista de permissões em ambientes de produção.
  • Teste a biblioteca e o script de inicialização da lista de permissões em ambientes que não sejam de produção antes de adicioná-los às listas de permissões de produção.

Como adicionar itens à lista de permissões

O senhor pode adicionar itens ao site allowlist com o Catalog Explorer ou com a API REST.

Para abrir a caixa de diálogo para adicionar itens à lista de permissões no Catalog Explorer, faça o seguinte:

  1. Em seu site Databricks workspace, clique em Ícone de dados. Catalog .
  2. Clique no ícone de engrenagem Ícone de engrenagem..
  3. Clique no nome da metastore para abrir a interface de usuário de detalhes e permissões da metastore.
  4. Selecione Allowed JARs/init script .
  5. Clique em Adicionar .
importante

Essa opção só é exibida para usuários suficientemente privilegiados. Se não for possível acessar a interface do usuário da lista de permissões, entre em contato com o administrador da metastore para obter assistência na lista de permissões da biblioteca e no script de inicialização.

Adicionar um init script à lista de permissões

Conclua as etapas a seguir na caixa de diálogo da lista de permissões para adicionar um init script à lista de permissões:

  1. Em Type , selecione init script .
  2. Em Tipo de origem , selecione Volume ou o protocolo de armazenamento de objetos.
  3. Especifique o caminho de origem a ser adicionado à lista de permissões. Consulte Como as permissões nos caminhos são aplicadas na lista de permissões? .

Adicionar um JAR à lista de permissões

Conclua as etapas a seguir na caixa de diálogo da lista de permissões para adicionar um JAR à lista de permissões:

  1. Para Type , selecione JAR .
  2. Em Tipo de origem , selecione Volume ou o protocolo de armazenamento de objetos.
  3. Especifique o caminho de origem a ser adicionado à lista de permissões. Consulte Como as permissões nos caminhos são aplicadas na lista de permissões? .

Adicionar coordenadas do Maven à lista de permissões

importante

Antes de adicionar as coordenadas Maven à lista de permissões, o senhor deve ter as permissões CAN ATTACH TO e CAN MANAGE definidas no compute onde deseja instalar a biblioteca. Consulte permissões de computação.

Conclua as etapas a seguir na caixa de diálogo da lista de permissões para adicionar as coordenadas do Maven à lista de permissões:

  1. Para Type , selecione Maven .
  2. Em Tipo de origem , selecione Coordenadas .
  3. Insira as coordenadas no seguinte formato: groudId:artifactId:version.
    • O senhor pode incluir todas as versões de uma biblioteca, permitindo o seguinte formato: groudId:artifactId.
    • Você pode incluir todos os artefatos em um grupo listando o seguinte formato: groupId.

Como as permissões nos caminhos são aplicadas na lista de permissões?

O senhor pode usar a lista de permissões para conceder acesso a JARs ou scripts de inicialização armazenados nos volumes Unity Catalog e no armazenamento de objetos. Se você adicionar um caminho para um diretório em vez de um arquivo, as permissões da lista de permissões se propagarão para os arquivos e diretórios contidos.

A correspondência de prefixos é usada para todos os artefatos armazenados nos volumes do Unity Catalog ou no armazenamento de objetos. Para evitar a correspondência de prefixos em um determinado nível de diretório, inclua uma barra final (/). Por exemplo, /Volumes/prod-libraries/ não realizará a correspondência de prefixo para arquivos com prefixo prod-libraries. Em vez disso, todos os arquivos e diretórios em /Volumes/prod-libraries/ são adicionados à lista de permissões.

Você pode definir permissões nos seguintes níveis:

  1. O caminho base para o volume ou contêiner de armazenamento.
  2. Um diretório aninhado em qualquer profundidade do caminho base.
  3. Um único arquivo.

Adicionar um caminho à lista de permissões significa apenas que o caminho pode ser usado para o script de inicialização ou para a instalação do JAR. O Databricks ainda verifica as permissões de acesso aos dados no local especificado.

O principal usado deve ter permissões READ VOLUME no volume especificado. Consulte VOLUME DE LEITURA.

No modo de acesso dedicado (antigo modo de acesso de usuário único), a identidade do principal atribuído (um usuário ou grupo) é usada.

No modo de acesso padrão ou no modo de acesso compartilhado sem isolamento, é usada a identidade do instalador da biblioteca.

nota

O modo de acesso compartilhado sem isolamento não suporta volumes, mas usa a mesma atribuição de identidade do modo de acesso padrão.

Databricks recomenda a configuração de todos os privilégios de armazenamento de objetos relacionados ao script de inicialização e à biblioteca com permissões somente leitura. Os usuários com permissões de gravação nesses locais podem potencialmente modificar o código nos arquivos do biblioteca ou no script de inicialização.

Databricks Recomenda-se usar uma conta de serviço do Google Cloud para gerenciar o acesso a JARs ou scripts de inicialização armazenados em GCS. Crie um serviço do Google Cloud account com a função Storage Object Viewer para o bucket desejado e anexe-o a um cluster. Consulte Acessar GCS buckets usando a conta de serviço do Google Cloud no clustering.

nota

As permissões de lista de permissão para JARs e script de inicialização são gerenciadas separadamente. Se você usar o mesmo local para armazenar os dois tipos de objetos, deverá adicionar o local à lista de permissões de cada um.