Dela via


Använda Unity Catalog-tjänsten credentials för att ansluta till externa molntjänster

Viktigt!

Den här funktionen finns som allmänt tillgänglig förhandsversion.

I den här artikeln beskrivs hur du använder en tjänstautentiseringsuppgift i Unity Catalog för att ansluta till externa molntjänster. Ett objekt för tjänstautentiseringsuppgifter i Unity Catalog kapslar in en långsiktig molnautentiseringsuppgift som ger åtkomst till en extern molntjänst som användarna behöver ansluta till från Azure Databricks.

Se även:

Innan du börjar

Innan du kan använda en tjänstautentiseringsuppgift för att ansluta till en extern molntjänst måste du ha:

  • En Azure Databricks-arbetsyta som är aktiverad för Unity Catalog.
  • En beräkningsresurs som finns på Databricks Runtime 15.4 LTS eller senare. SQL-lager stöds inte.
  • En tjänstautentiseringsuppgift som skapats i ditt Unity-Catalog metaarkiv som ger åtkomst till molntjänsten.
  • Behörigheten ACCESS för tjänstens autentiseringsuppgifter eller ägarskap för tjänstens autentiseringsuppgifter.

Använda en tjänstautentiseringsuppgift i koden

Det här avsnittet innehåller ett exempel på hur du använder en tjänstautentiseringsuppgift i en notebook-fil. Endast Python stöds under den offentliga förhandsversionen. Ersätt platshållaren values.

Exempel: Konfigurera en Azure SDK-klient för att använda en specifik tjänstautentiseringsuppgift

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)

Ange en standardtjänstautentiseringsuppgift för en beräkningsresurs

Du kan också ange en standardtjänstautentiseringsuppgift för ett beräkningskluster för alla syften eller jobb genom att ange en miljövariabel. Som standard använder SDK:n tjänstens autentiseringsuppgifter om ingen autentisering tillhandahålls. Användarna behöver ACCESS fortfarande på tjänstens autentiseringsuppgifter för att ansluta till den externa molntjänsten. Databricks rekommenderar inte den här metoden eftersom den gör koden mindre portabel än att namnge tjänstens autentiseringsuppgifter i koden.

Kommentar

Serverlösa beräknings- och SQL-lager har inte stöd för miljövariabler, och därför stöder de inte standardtjänsten credentials.

  1. Öppna redigeringssidan för klustret.

    Se Hantera beräkning.

  2. Klicka på Avancerade alternativ längst ned på sidan och gå till fliken Spark .

  3. Lägg till följande post i Miljövariabler och ersätt <your-service-credential>:

    DATABRICKS_DEFAULT_SERVICE_CREDENTIAL_NAME=<your-service-credential>

Följande kodexempel anger inte någon tjänstautentiseringsuppgift. I stället används tjänstens autentiseringsuppgifter som anges i DATABRICKS_DEFAULT_SERVICE_CREDENTIAL_NAME miljövariabeln:

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)

Jämför med exemplet i Exempel: Konfigurera en Azure SDK-klient för att använda en specifik tjänstautentiseringsuppgift, som inte importerar DefaultAzureCredential och lägger till autentiseringsspecifikationen:

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