Distribuzione delle credenziali del catalogo Unity per l'accesso al sistema esterno

Consiglio

Per informazioni su come leggere Azure Databricks dati usando Microsoft Fabric, vedere Microsoft Fabric con Azure Databricks.

Questa pagina descrive il modo in cui la funzionalità di distribuzione delle credenziali di Unity Catalog supporta l'accesso ai dati in Azure Databricks dai motori di elaborazione esterni.

Credential vending supporta sistemi esterni che si connettono al catalogo Unity usando l'API REST unity e il catalogo REST Apache Iceberg. Vedere Accedere alle tabelle di Databricks dai client Delta e accedere ai dati di Databricks usando sistemi esterni.

Che cos'è la distribuzione automatica delle credenziali di Unity Catalog?

distribuzione di credenziali concede credenziali di breve durata usando l'API REST del catalogo Unity. Le credenziali concesse ereditano i privilegi dell'entità di Azure Databricks usata per configurare l'integrazione. Esistono due tipi di distributori automatici di credenziali:

  • Il vending delle credenziali di tabella fornisce l'accesso ai dati registrati nel metastore di Unity Catalog.
  • L'erogazione delle credenziali del percorso consente l'accesso a posizioni esterne nel metastore del catalogo Unity.

Requisiti

  • L'accesso esterno deve essere configurato nel metastore con EXTERNAL USE SCHEMA concesso al soggetto richiedente. Vedere Abilitare l'accesso ai dati esterni nel metastore.
  • L'URL dell'area di lavoro deve essere accessibile al motore richiedente, inclusi i motori dietro gli elenchi di accesso IP o collegamento privato di Azure.
  • Gli URL di archiviazione cloud devono essere accessibili tramite firewall e controlli di rete.

Distribuzione automatica delle credenziali di tabella

Le credenziali della tabella includono una stringa di token di accesso di breve durata e un URL della posizione di archiviazione cloud che il motore esterno può usare per accedere ai dati e ai metadati della tabella dal percorso di archiviazione cloud.

Tipi di accesso supportati

La distribuzione automatica delle credenziali di tabella supporta i tipi e le operazioni di tabella seguenti:

Tipo di tabella Leggi Scrittura Creazione
Delta Controllato Sì* Sì*
Delta esterno
Gestione di Iceberg
Iceberg straniero No No
Delta con le letture Iceberg (UniForm) Yes** No

* La creazione e la scrittura in tabelle gestite del Catalogo Unity dai client Delta sono in versione beta.

** Dopo la scrittura esterna in una tabella UniForm da un client Delta, eseguire MSCK REPAIR TABLE per generare metadati Iceberg.

Nota

Alcuni client supportano l'accesso alle tabelle supportate da Delta Lake, mentre altre richiedono l'abilitazione delle letture Iceberg (UniForm) nelle tabelle. Consulta Leggi le tabelle Delta con i client Iceberg.

Richiedere credenziali di tabella temporanee per l'accesso ai dati esterni

Il supporto per il distributore di credenziali varia in base al client esterno. Se supportato, il client deve sfruttare automaticamente le credenziali vendute quando viene configurata una connessione.

Questa sezione fornisce un esempio di chiamata esplicita dell'endpoint API di distribuzione delle credenziali. Alcuni client esterni potrebbero richiedere di impostare in modo esplicito le configurazioni per accedere ai dati e ai metadati nell'archivio oggetti cloud che esegue il backup delle tabelle di Unity Catalog. È possibile usare i valori restituiti dal distributore di credenziali per configurare l'accesso.

Nota

È possibile recuperare un elenco di tabelle che supportano la distribuzione delle credenziali richiamando l'API ListTables con l'opzione include_manifest_capabilities abilitata. Solo le tabelle contrassegnate HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORT o HAS_DIRECT_EXTERNAL_ENGINE_WRITE_SUPPORT sono idonee per riferimento nell'API temporary-table-credentials. Vedere GET /api/2.1/unity-catalog/tables.

Nell'esempio curl seguente viene richiesta in modo esplicito una credenziale temporanea per l'accesso ai dati esterni. Questa richiesta deve essere completata da un responsabile dell'area di lavoro con privilegi sufficienti.

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>"}'

Per informazioni dettagliate, vedere POST /api/2.1/unity-catalog/temporary-table-credentials nella guida di riferimento all'API REST Azure Databricks.

Limitazioni

Esistono le limitazioni seguenti:

  • Non tutti i client esterni supportano la distribuzione automatica delle credenziali e il supporto può variare a seconda dell'archiviazione di oggetti cloud sottostante.
  • I client di lettura Delta Lake possono leggere solo le tabelle supportate da Delta Lake e devono supportare tutti i protocolli di lettura o scrittura abilitati sulla tabella. Vedere Compatibilità e protocolli delle funzionalità delta Lake.
  • Le tabelle esterne che non usano Delta Lake non forniscono garanzie transazionali.
  • I tipi di tabella o le tabelle seguenti con funzionalità abilitate non sono supportati:
    • Tabelle con filtri di riga o maschere di colonna.
    • Tabelle condivise tramite la condivisione Delta.
    • Visualizzazioni.
    • Viste materializzate.
    • Tabelle di streaming delle pipeline dichiarative di Lakeflow Spark.
    • Tabelle online.
    • Indici di ricerca vettoriale.
  • L'aggiornamento delle credenziali non è supportato in Iceberg 1.9.0. Usare la versione più recente di Iceberg per l'aggiornamento delle credenziali.

Erogazione automatica delle credenziali del percorso

Le credenziali rilasciate consentono l'accesso diretto alla posizione di archiviazione nel cloud, limitato al percorso pertinente. Sono validi per un periodo di tempo limitato e non concedono un accesso più ampio oltre la posizione o la tabella definita.

Richiedere credenziali di percorso temporaneo per l'accesso ai dati esterni

Il supporto per il distributore di credenziali varia in base al client esterno. Se supportato, il client deve sfruttare automaticamente le credenziali vendute quando viene configurata una connessione.

Questa sezione fornisce un esempio di chiamata esplicita dell'endpoint API di distribuzione delle credenziali. Alcuni client esterni potrebbero richiedere di impostare in modo esplicito le configurazioni per accedere ai dati e ai metadati nell'archivio oggetti cloud che esegue il backup delle tabelle di Unity Catalog. È possibile usare i valori restituiti dal distributore di credenziali per configurare l'accesso.

Nell'esempio curl seguente viene richiesta in modo esplicito una credenziale temporanea per l'accesso ai dati esterni. Questa richiesta deve essere completata da un responsabile dell'area di lavoro con privilegi sufficienti.

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>"}'

Per informazioni dettagliate, vedere Generare una credenziale di percorso temporaneo nella guida di riferimento all'API REST Azure Databricks.

Distribuzione di credenziali in volume

Importante

Questa funzionalità si trova in anteprima pubblica.

La distribuzione di credenziali per i volumi consente ai motori esterni di accedere ai file archiviati nei volumi di Unity Catalog con credenziali temporanee con ambito definito. L'entità richiedente deve disporre di EXTERNAL USE SCHEMA nello schema che contiene il volume, più READ VOLUME per l'accesso in lettura oppure READ VOLUME e WRITE VOLUME per l'accesso in scrittura. Consulta Che cosa sono i volumi di Unity Catalog?.

Il catalogo unity convalida le autorizzazioni e restituisce le credenziali di archiviazione cloud con ambito breve associate al percorso di archiviazione del volume. Le credenziali scadono automaticamente e non concedono l'accesso oltre il volume specificato.

Requisiti

  • L'accesso esterno deve essere abilitato nel metastore. Vedere Abilitare l'accesso ai dati esterni nel metastore.
  • Il soggetto richiedente deve disporre di EXTERNAL USE SCHEMA sullo schema che contiene il volume, nonché di READ VOLUME per l'accesso in lettura oppure di READ VOLUME e WRITE VOLUME per l'accesso in scrittura.
  • Il motore esterno deve essere in grado di raggiungere l'URL dell'area di lavoro.
  • Gli URL di archiviazione cloud devono essere accessibili tramite firewall e controlli di rete.

Richiedere una credenziale del volume temporaneo per l'accesso ai dati esterni

Nell'esempio curl seguente viene richiesta in modo esplicito una credenziale temporanea per l'accesso ai dati esterni.

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>"}'

In alternativa, usare Azure Databricks Python SDK:

from databricks.sdk.service.catalog import VolumeOperation

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

Per informazioni dettagliate, vedere POST /api/2.0/unity-catalog/temporary-volume-credentials nella guida di riferimento all'API REST Azure Databricks.

Limitazioni

  • I volumi gestiti sono supportati solo per l'accesso in lettura. I volumi esterni supportano sia l'accesso in lettura che in scrittura.