Usare le credenziali del servizio Catalogo Unity per connettersi ai servizi cloud esterni

Importante

Questa funzionalità è disponibile in anteprima pubblica.

Questo articolo descrive come usare le credenziali del servizio nel catalogo unity per connettersi a servizi cloud esterni. Un oggetto credenziale del servizio in Unity Catalog incapsula una credenziale cloud a lungo termine che fornisce l'accesso a un servizio cloud esterno a cui gli utenti devono connettersi da Azure Databricks.

Vedere anche:

Operazioni preliminari

Prima di poter usare le credenziali di un servizio per connettersi a un servizio cloud esterno, è necessario disporre di:

  • Un'area di lavoro di Azure Databricks abilitata per Unity Catalog.
  • Risorsa di calcolo in Databricks Runtime 15.4 LTS o versione successiva. I warehouse SQL non sono supportati.
  • Credenziali del servizio create nel metastore del catalogo Unity che consente l'accesso al servizio cloud.
  • Privilegio ACCESS per le credenziali del servizio o la proprietà della credenziale del servizio.

Usare le credenziali del servizio nel codice

Questa sezione fornisce un esempio di uso di credenziali del servizio in un notebook. Durante l'anteprima pubblica è supportato solo Python. Sostituire i valori segnaposto.

Esempio: configurare un client di Azure SDK per l'uso di credenziali del servizio specifiche

from azure.keyvault.secrets import SecretClient # example Azure SDK client

credential = dbutils.credentials.getServiceCredentialsProvider('your-service-credential')
vault_url = "https://your-keyvault-name.vault.azure.net/"
client = SecretClient(vault_url=vault_url, credential=credential)

Specificare una credenziale del servizio predefinita per una risorsa di calcolo

Facoltativamente, è possibile specificare una credenziale del servizio predefinita per un cluster di calcolo di tutti gli scopi o processi impostando una variabile di ambiente. Per impostazione predefinita, l'SDK usa tale credenziale del servizio se non viene fornita alcuna autenticazione. Gli utenti richiedono ACCESS comunque che le credenziali del servizio si connettano al servizio cloud esterno. Databricks non consiglia questo approccio, perché rende il codice meno portabile rispetto alla denominazione delle credenziali del servizio nel codice.

Nota

Le risorse di calcolo serverless e SQL Warehouse non supportano le variabili di ambiente e pertanto non supportano le credenziali del servizio predefinite.

  1. Aprire la pagina di modifica per il cluster.

    Vedere Gestire le risorse di calcolo.

  2. Fare clic su Opzioni avanzate nella parte inferiore della pagina e passare alla scheda Spark .

  3. Aggiungere la voce seguente in Variabili di ambiente, sostituendo <your-service-credential>:

    DATABRICKS_DEFAULT_SERVICE_CREDENTIAL_NAME=<your-service-credential>

L'esempio di codice seguente non specifica le credenziali del servizio. Usa invece le credenziali del servizio specificate nella DATABRICKS_DEFAULT_SERVICE_CREDENTIAL_NAME variabile di ambiente:

from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient

vault_url = "https://your-keyvault-name.vault.azure.net/"
client = SecretClient(vault_url=vault_url, credential=credential)

Confrontare l'esempio in Esempio: configurare un client Azure SDK per l'uso di credenziali del servizio specifiche, che non importa DefaultAzureCredential e aggiunge la specifica delle credenziali:

credential = dbutils.credentials.getServiceCredentialsProvider('your-service-credential')