Compartilhar via


Controlar o acesso externo aos dados no Catálogo do Unity

Importante

Esse recurso está em uma versão prévia.

Dica

Para obter informações sobre como ler dados do Azure Databricks usando o Microsoft Fabric, consulte Usar o Microsoft Fabric para ler dados registrados no Catálogo do Unity.

Este artigo descreve como controlar o acesso aos dados no Azure Databricks quando os mecanismos de processamento externos usam APIs abertas do Catálogo do Unity ou APIs do Iceberg para acessar esses dados, especificamente quando os mecanismos usam a funcionalidade de venda automática de credenciais do Catálogo do Unity para obter acesso.

Os controles de acesso descritos neste artigo abrangem cenários em que credenciais temporárias são usadas para ler dados de seus catálogos do Catálogo do Unity usando mecanismos e interfaces externos, como:

  • APIs REST do Iceberg
  • Microsoft Fabric
  • DuckDB
  • Apache Spark e Trino

Observação

O Catálogo do Unity implementa APIs REST Iceberg via Delta Lake UniForm, uma maneira alternativa de fornecer aos clientes do Iceberg acesso somente leitura às tabelas Delta no Catálogo do Unity. Confira Usar o UniForm para fazer a leitura das Tabelas do Delta com clientes do Iceberg.

Visão geral da venda de credenciais e da concessão de acesso ao mecanismo externo

Quando você quiser usar um mecanismo externo para acessar dados registrados no metastore do Catálogo do Unity, deverá solicitar uma credencial de curta duração usando a API REST do Catálogo do Unity. O processo pelo qual o Unity Catalog concede essa credencial é chamado de venda de credenciais.

Para receber uma credencial temporária, a entidade de segurança do Azure Databricks (usuário, grupo ou entidade de serviço) que faz a solicitação deve ter o privilégio EXTERNAL USE SCHEMA no esquema que contém a tabela que deseja acessar do mecanismo externo. O metastore do Catálogo do Unity que contém o esquema também deve ser habilitado explicitamente para acesso externo.

Quando a entidade privilegiada recebe a credencial temporária, ela recebe uma cadeia de caracteres de token de acesso de curta duração e uma URL do local de armazenamento em nuvem que os usuários do mecanismo externo podem usar para acessar o objeto de dados (tabela) do local de armazenamento em nuvem. A forma como a credencial e o token são usados pelo mecanismo externo é específica para o mecanismo externo e não é abordada aqui.

O mecanismo externo e a configuração do Catálogo do Azure Databricks Unity também devem atender aos requisitos de rede específicos enumerados nas seções a seguir.

Requisitos

Esta seção lista as configurações de rede, as opções de metastore do Catálogo do Unity, os tipos de tabela e as permissões necessárias para acesso seguro a objetos de dados do Catálogo do Unity de mecanismos externos usando as APIs abertas do Catálogo do Unity ou as APIs REST do Iceberg.

Requisitos de rede

  • Para acessar o workspace do Azure Databricks usando APIs Abertas do Catálogo do Unity ou APIs REST do Iceberg, a URL do workspace deve estar acessível ao mecanismo que executa a solicitação. Isso inclui workspaces que usam listas de acesso IP ou Link Privado do Azure.
  • Para acessar o local de armazenamento em nuvem subjacente para objetos de dados registrados no Catálogo do Unity, as URLs de armazenamento geradas pela API de credenciais temporárias do Catálogo do Unity devem estar acessíveis ao mecanismo que executa a solicitação. Isso significa que o mecanismo deve ser permitido nas listas de firewall e controle de acesso à rede para as contas de armazenamento em nuvem subjacentes.

Requisitos de metastore e objeto de dados do Catálogo do Unity

  • O metastore deve ser habilitado para acesso a dados externos.
  • Somente tabelas são compatíveis durante a visualização pública.
    • As tabelas externas dão suporte à leitura e gravação.
    • As tabelas gerenciadas só podem ser lidas.
  • Não há suporte para os seguintes tipos de dados:
    • Tabelas com filtros de linha ou máscaras de coluna.
    • Tabelas compartilhadas usando o Compartilhamento Delta.
    • Tabelas federadas do Lakehouse (tabelas estrangeiras).
    • Exibições
    • Exibições materializadas
    • Tabelas de streaming do Delta Live Tables
    • Tabelas Online
    • Índices de busca em vetores

Requisitos de permissão

A entidade de segurança que solicita a credencial temporária deve ter:

  • O privilégio EXTERNAL USE SCHEMA no esquema que o contém ou em seu catálogo pai.

    Esse privilégio deve sempre ser concedido explicitamente. Somente o proprietário do catálogo pai pode concedê-lo. Para evitar exfiltração acidental, o ALL PRIVILEGES não inclui o privilégio e os proprietários do esquema EXTERNAL USE SCHEMA não têm esse privilégio por padrão.

  • Permissão SELECT na tabela, USE CATALOG em seu catálogo pai e USE SCHEMA em seu esquema pai.

Habilitar o acesso a dados externos no metastore

Para permitir que mecanismos externos acessem dados em um metastore, um administrador de metastore deve habilitar o acesso a dados externos para o metastore. Essa opção está desabilitada por padrão para impedir o acesso externo não autorizado.

  1. Em um espaço de trabalho do Azure Databricks anexado ao metastore, clique em Ícone do catálogo Catálogo.
  2. Clique no ícone de engrenagem ícone de engrenagem na parte superior do painel Catálogo e selecione Metastore.
  3. Na guia Detalhes, habilite Acesso a dados externos.

Solicitar uma credencial temporária para acesso a dados externos

Para solicitar uma credencial temporária para acesso a dados externos, um usuário do workspace que atenda aos requisitos listados acima deve usar a API /api/2.1/unity-catalog/temporary-table-credentials.

Observação

Você pode recuperar uma lista de tabelas que dão suporte à venda automática de credenciais invocando a API ListTables com a opção include_manifest_capabilities habilitada. Somente as tabelas marcadas HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORT ou HAS_DIRECT_EXTERNAL_ENGINE_WRITE_SUPPORT qualificadas para referência na API temporary-table-credentials. Consulte GET /api/2.1/unity-catalog/tables.

Por exemplo:

curl -X POST -H "Authentication: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-table-credentials \
-d '{"table_id": "<string>", "operation_name": "<READ|READ_WRITE>"}'

Para obter detalhes, consulte POST /api/2.1/unity-catalog/temporary-table-credentials na referência da API REST do Azure Databricks.