Provisionamento de credenciais do Catálogo do Unity para acesso a sistemas externos

Dica

Para obter informações sobre como ler dados Azure Databricks usando Microsoft Fabric, consulte Microsoft Fabric com Azure Databricks.

Esta página descreve como a funcionalidade de provisionamento de credenciais do Unity Catalog dá suporte ao acesso a dados no Azure Databricks por mecanismos de processamento externos.

A venda automática de credenciais dá suporte a sistemas externos que se conectam ao Catálogo do Unity usando a API REST do Unity e o catálogo REST do Apache Iceberg. Consulte tabelas do Access Databricks de clientes Delta e dados do Access Databricks usando sistemas externos.

O que é a venda automática de credenciais do Catálogo do Unity?

O provisionamento de credenciais concede credenciais de curta duração usando a API REST do Catálogo Unity. As credenciais concedidas herdam os privilégios da entidade de Azure Databricks usada para configurar a integração. Existem dois tipos de fornecimento de credenciais:

  • Distribuição de credenciais de tabela fornece acesso aos dados registrados no metastore do Catálogo do Unity.
  • Distribuição de credenciais de caminho fornece acesso a locais externos no metastore do Catálogo do Unity.

Requisitos

  • O acesso externo deve ser configurado no metastore com a concessão de EXTERNAL USE SCHEMA à entidade de segurança solicitante. Consulte Habilitar o acesso a dados externos no metastore.
  • A URL do workspace deve estar acessível ao mecanismo solicitante, incluindo mecanismos por trás de listas de acesso IP ou Link Privado do Azure.
  • As URLs de armazenamento em nuvem devem ser acessíveis por meio de controles de rede e firewall.

Distribuição de credenciais de tabela

As credenciais da tabela incluem uma cadeia de caracteres de token de acesso de curta duração e uma URL de local de armazenamento em nuvem que o mecanismo externo pode usar para acessar dados de tabela e metadados do local de armazenamento em nuvem.

Tipos de acesso com suporte

A venda automática de credenciais de tabela dá suporte aos seguintes tipos de tabela e operações:

Tipo de tabela Leitura Escrever Criar
Delta Gerenciado Sim Sim* Sim*
Delta Externo Sim Sim Sim
Iceberg Gerenciado Sim Sim Sim
Iceberg Estrangeiro Sim No No
Delta com leituras de iceberg (UniForm) Sim Sim** No

* A criação e a gravação em tabelas gerenciadas do Unity Catalog por clientes Delta estão em Visualização Pública.

** Depois de gravar externamente em uma tabela UniForm de um cliente Delta, execute MSCK REPAIR TABLE para gerar metadados do Iceberg.

Observação

Alguns clientes dão suporte ao acesso a tabelas apoiadas pelo Delta Lake, enquanto outros exigem que você habilite leituras de Iceberg (UniForm) em tabelas. Consulte Ler tabelas do Delta Lake com clientes Iceberg usando o UniForm.

Solicitar uma credencial de tabela temporária para acesso a dados externos

O suporte para fornecimento de credenciais varia de acordo com o cliente externo. Quando houver suporte, o cliente deve aproveitar automaticamente as credenciais fornecidas quando uma conexão for configurada.

Esta seção dá um exemplo de como chamar explicitamente o ponto de extremidade da API de provisionamento de credenciais. Alguns clientes externos podem exigir que você defina explicitamente as configurações para acessar dados e metadados no armazenamento de objetos de nuvem que dão suporte às tabelas do Catálogo do Unity. Você pode usar valores retornados pela venda automática de credenciais para configurar o acesso.

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 tabelas marcadas HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORT ou HAS_DIRECT_EXTERNAL_ENGINE_WRITE_SUPPORT são qualificadas para referência na API de credenciais de tabela temporária. Consulte GET /api/2.1/unity-catalog/tables.

O exemplo de curl a seguir solicita explicitamente uma credencial temporária para acesso a dados externos. Essa solicitação deve ser concluída por uma entidade de segurança do workspace suficientemente privilegiado.

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

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

Limitações

As seguintes limitações existem:

  • Nem todos os clientes externos dão suporte à venda automática de credenciais e o suporte pode variar dependendo do armazenamento de objetos de nuvem subjacente.
  • Os clientes leitores do Delta Lake só podem ler tabelas suportadas pelo Delta Lake e devem dar suporte a todos os protocolos de leitor ou gravador habilitados na tabela. Consulte a compatibilidade de recursos e protocolos do Delta Lake.
  • Tabelas externas que não usam o Delta Lake não fornecem garantias transacionais.
  • Não há suporte para os seguintes tipos de tabela ou tabelas com recursos habilitados:
    • Tabelas com filtros de linha ou máscaras de coluna.
    • Tabelas compartilhadas usando o OpenSharing.
    • Exibições.
    • Exibições materializadas.
    • Tabelas de streaming do Lakeflow Spark Declarative Pipelines.
    • Tabelas online.
    • Índices de Pesquisa de IA.
  • Não há suporte para atualização de credenciais no Iceberg 1.9.0. Use a versão mais recente do Iceberg para atualização de credenciais.

Distribuição de Credenciais de Caminho autêntico

As credenciais emitidas permitem acesso direto ao local do armazenamento em nuvem, abrangendo especificamente o caminho relevante. Eles são válidos por um tempo limitado e não concedem acesso mais amplo além do local ou tabela definido.

Solicitar uma credencial de caminho temporário para acesso a dados externos

O suporte para fornecimento de credenciais varia de acordo com o cliente externo. Quando houver suporte, o cliente deve aproveitar automaticamente as credenciais fornecidas quando uma conexão for configurada.

Esta seção dá um exemplo de como chamar explicitamente o ponto de extremidade da API de provisionamento de credenciais. Alguns clientes externos podem exigir que você defina explicitamente as configurações para acessar dados e metadados no armazenamento de objetos de nuvem que dão suporte às tabelas do Catálogo do Unity. Você pode usar valores retornados pela venda automática de credenciais para configurar o acesso.

O exemplo de curl a seguir solicita explicitamente uma credencial temporária para acesso a dados externos. Essa solicitação deve ser concluída por uma entidade de segurança do workspace suficientemente privilegiado.

curl -X POST -H "Authorization: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-path-credentials \
-d '{"url": "<string>", "operation": "<PATH_READ|PATH_READ_WRITE|PATH_CREATE_TABLE>"}'

Para obter detalhes, consulte Generate a temporary path credential na referência da API REST do Azure Databricks.

Provisionamento de credenciais em volume

Importante

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

O fornecimento de credenciais para volumes permite que mecanismos externos acessem arquivos armazenados em volumes do Unity Catalog com credenciais temporárias e de escopo limitado. O principal solicitante deve ter EXTERNAL USE SCHEMA no esquema que contém o volume, além de READ VOLUME para acesso de leitura ou READ VOLUME e WRITE VOLUME para acesso de escrita. Confira O que são os volumes do Unity Catalog?.

O Catálogo do Unity valida as permissões e retorna credenciais de armazenamento em nuvem com escopo de curta duração vinculadas ao caminho de armazenamento do volume. As credenciais expiram automaticamente e não concedem acesso além do volume especificado.

Requisitos

  • O acesso externo deve ser habilitado no metastore. Consulte Habilitar o acesso a dados externos no metastore.
  • O principal solicitante deve ter EXTERNAL USE SCHEMA no esquema que contém o volume, além de READ VOLUME para acesso de leitura ou READ VOLUME e WRITE VOLUME para acesso de escrita.
  • O mecanismo externo deve conseguir acessar a URL do workspace.
  • As URLs de armazenamento em nuvem devem ser acessíveis por meio de controles de rede e firewall.

Solicitar uma credencial de volume temporária para acesso a dados externos

O exemplo de curl a seguir solicita explicitamente uma credencial temporária para acesso a dados externos.

curl -X POST -H "Authorization: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.0/unity-catalog/temporary-volume-credentials \
-d '{"volume_id": "<volume-id>", "operation": "<READ_VOLUME|WRITE_VOLUME>"}'

Ou use o SDK do Azure Databricks Python:

from databricks.sdk.service.catalog import VolumeOperation

creds = w.temporary_volume_credentials.generate_temporary_volume_credentials(
    volume_id=volume_id,
    operation=VolumeOperation.READ_VOLUME,
)

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

Limitações

  • Há suporte para volumes gerenciados somente para acesso de leitura. Volumes externos suportam acesso de leitura e escrita.