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:
- Hantera åtkomst till externa molntjänster med hjälp av tjänsten credentials.
- Hantera tjänst credentials
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.
Öppna redigeringssidan för klustret.
Klicka på Avancerade alternativ längst ned på sidan och gå till fliken Spark .
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')