Partilhar via


Bibliotecas de lista de permissões e scripts de inicialização na computação 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 quais bibliotecas e scripts de inicialização podem ser executados em computação em modo de acesso padrão. Isso permite que os usuários aproveitem esses artefatos em computação configurada com o modo de acesso padrão.

Por defeito, a lista de permissões está vazia. Não pode desativar esta funcionalidade. Para modificar a lista de permissões, deve ser administrador da metastore ou ter esse MANAGE ALLOWLIST privilégio. Consulte GERIR LISTA DE PERMISSÕES.

Podes adicionar um diretório ou ficheiro à lista de permissões mesmo que ainda não tenha sido criado. Consulte Carregar ficheiros para um volume do Catálogo Unity.

Importante

As bibliotecas utilizadas como drivers JDBC ou fontes de dados personalizadas do Spark na computação padrão com Unity Catalog ativado exigem permissões ANY FILE.

Algumas bibliotecas instaladas armazenam 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ão é fundamental para manter o isolamento do cluster e proteger os seus dados em modo de acesso padrão. O uso correto de listas de permissões impede que os utilizadores adicionem bibliotecas e scripts de entrada arbitrários. Isto reduz a probabilidade de problemas de segurança, instabilidade de clusters e outros comportamentos imprevisíveis.

Seja deliberado sobre quem recebe MANAGE ALLOWLIST privilégios. Os utilizadores com MANAGE ALLOWLIST privilégios podem permitir qualquer caminho ou coordenada Maven, controlando efetivamente que código pode correr em modo de acesso padrão.

Como administrador da metastore, revisa periodicamente os itens da lista de permissões e verifica se vêm de fontes confiáveis. Artefactos aprovados podem aceder a recursos de cluster e dados de utilizadores, por isso devem estar sujeitos aos mesmos controlos de segurança e governança que outros componentes sensíveis.

A Databricks recomenda estas melhores práticas para gerir a lista de permissões:

  • Conceda o MANAGE ALLOWLIST privilégio apenas a administradores da metastore e administradores de plataforma de confiança. Para outros utilizadores, conceda MANAGE ALLOWLIST apenas de forma temporária, conforme necessário.
  • Revise e audite regularmente as adições à lista de permissões.
  • Usa caminhos específicos e coordenadas Maven em vez de padrões amplos.
  • Configure locais de armazenamento para artefactos permitidos com permissões de apenas leitura.
  • Implementar um processo formal de aprovação para adições de listas de permissões em ambientes de produção.
  • Teste bibliotecas permitidas e scripts de init em ambientes não de produção antes de os adicionar às listas de permissões de produção.

Como adicionar itens à lista de permissões

Você pode adicionar itens ao allowlist com o Catalog Explorer ou à API REST.

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

  1. No seu espaço de trabalho do Azure Databricks, clique no ícone Dados.Catálogo.
  2. Clique no ícone de engrenagem..
  3. Clique no nome do metastore para abrir a interface de detalhes e permissões do metastore.
  4. Selecione JARs/Init Scripts permitidos.
  5. Clique em Adicionar.

Importante

Esta opção só é apresentada para utilizadores suficientemente privilegiados. Se não conseguires aceder à interface de utilizador da lista de permissões, contacta o administrador do metastore para obter assistência na inclusão de bibliotecas na lista de permissões e nos scripts de inicialização.

Adicionar um script init à lista de permissões

Conclua as seguintes etapas na caixa de diálogo allowlist para adicionar um script init à allowlist:

  1. Em Tipo, selecione Script de inicialização.
  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 em caminhos são aplicadas na lista de permissões?.

Adicionar um JAR à lista de permissões

Complete as seguintes etapas na caixa de diálogo da lista de permissões para adicionar um JAR à lista de permissões:

  1. Em Tipo, 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 em caminhos são aplicadas na lista de permissões?.

Adicionar coordenadas Maven à lista de permissões

Importante

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

Conclua os seguintes passos na caixa de diálogo da lista de permissão para adicionar coordenadas Maven à lista de permissão:

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

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

Você pode usar a lista de permissões para conceder acesso a JARs ou scripts de inicialização armazenados em volumes e no armazenamento de objetos do Unity Catalog. Se tu adicionares um caminho para um diretório em vez de um ficheiro, as permissões da lista de permissões permitidas são aplicadas a ficheiros e diretórios contidos.

A compatibilidade de prefixos é usada para todos os artefatos armazenados em volumes do Catálogo Unity ou armazenamento de objetos. Para evitar a correspondência de prefixos a um determinado nível de diretório, inclua uma barra final (/). Por exemplo, /Volumes/prod-libraries/ não executará a correspondência de prefixo para arquivos prefixados com prod-libraries. Em alternativa, todos os arquivos e diretórios dentro de /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 ficheiro.

Adicionar um caminho à lista de permissões significa apenas que o caminho pode ser usado para scripts init ou instalação JAR. O Azure Databricks ainda verifica se há permissões para acessar dados no local especificado.

A entidade de segurança usada deve ter permissões READ VOLUME no volume especificado. Consulte o volume de leitura .

No modo de acesso dedicado (anteriormente modo de acesso de utilizador único), a identidade da entidade atribuída (um utilizador ou grupo) é usada.

No modo de acesso padrão:

  • As bibliotecas usam a identidade do instalador da biblioteca.
  • Os scripts de inicialização usam a identidade do proprietário do cluster.

Nota

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

O Databricks recomenda configurar todos os privilégios de armazenamento de objetos relacionados a scripts de inicialização e bibliotecas com permissões somente leitura. Os usuários com permissões de gravação nesses locais podem potencialmente modificar o código em arquivos de biblioteca ou scripts de inicialização.

O Databricks recomenda o uso de entidades de serviço do Microsoft Entra ID para gerenciar o acesso a JARs ou scripts de inicialização armazenados no Armazenamento do Azure Data Lake. Use a seguinte documentação vinculada para concluir essa configuração:

  1. Crie um principal de serviço com permissões de leitura e listar nos blobs desejados. Consulte como aceder ao armazenamento usando uma identidade de serviço & Microsoft Entra ID (Azure Active Directory).

  2. Salve suas credenciais usando segredos. Veja Gerir segredos.

  3. Defina as propriedades na configuração do Spark e as variáveis ambientais ao criar um cluster, como no exemplo a seguir:

    Configuração do Spark:

    spark.hadoop.fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth
    spark.hadoop.fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
    spark.hadoop.fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id>
    spark.hadoop.fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope>/<service-credential-key>}}
    spark.hadoop.fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<tenant-id>/oauth2/token
    

    Variáveis ambientais:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Opcional) Refatore scripts de inicialização usando azcopy ou a CLI do Azure.

    Você pode fazer referência a variáveis ambientais definidas durante a configuração do cluster em seus scripts de inicialização para passar credenciais armazenadas como segredos para validação.

Nota

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