Själlvstudie: Anslut Dataverse till Azure Data Lake Storage Gen2
Kommentar
Den här artikeln beskriver äldre mönster för att konfigurera åtkomst till Azure Data Lake Storage Gen2. Databricks rekommenderar att du använder Unity Catalog. Se Skapa ett Unity Catalog-metaarkiv och Anslut till molnobjektlagring och -tjänster med Unity Catalog.
Den här självstudien vägleder dig genom alla steg som krävs för att ansluta från Azure Databricks till Azure Data Lake Storage Gen2 med hjälp av OAuth 2.0 med tjänstens huvudnamn för Microsoft Entra-ID.
Krav
Slutför de här uppgifterna innan du startar självstudien:
- Skapa en Azure Databricks-arbetsyta. Se Snabbstart: Skapa en Azure Databricks-arbetsyta
- Skapa ett Azure Data Lake Storage Gen2-lagringskonto. Se Snabbstart: Skapa ett Azure Data Lake Storage Gen2-lagringskonto.
- Skapa ett Azure Key Vault. Se Snabbstart: Skapa ett Azure Key Vault
Steg 1: Skapa ett Huvudnamn för Microsoft Entra-ID-tjänsten
Om du vill använda tjänstens huvudnamn för att ansluta till Azure Data Lake Storage Gen2 måste en administratörsanvändare skapa ett nytt Microsoft Entra-ID-program. Om du redan har ett Microsoft Entra ID-tjänsthuvudnamn tillgängligt går du vidare till Steg 2: Skapa en klienthemlighet för tjänstens huvudnamn.
Följ dessa instruktioner för att skapa ett microsoft entra-ID-tjänsthuvudnamn:
Logga in på Azure-portalen.
Kommentar
Portalen som ska användas skiljer sig beroende på om ditt Microsoft Entra-ID-program körs i det offentliga Azure-molnet eller i ett nationellt eller nationellt moln. Mer information finns i Nationella moln.
Om du har åtkomst till flera klienter, prenumerationer eller kataloger klickar du på ikonen Kataloger + prenumerationer (katalog med filter) på den översta menyn för att växla till den katalog där du vill etablera tjänstens huvudnamn.
Sök efter och markera <Microsoft Entra ID.
I Hantera klickar du på Appregistreringar > Ny registrering.
Som Namn anger du ett namn för programmet.
I avsnittet Kontotyper som stöds väljer du Endast konton i den här organisationskatalogen (enskild klient).
Klicka på Registrera.
Steg 2: Skapa en klienthemlighet för tjänstens huvudnamn
I Hantera klickar du på Certifikat och hemligheter.
På fliken Klienthemligheter klickar du på Ny klienthemlighet.
I fönstret Lägg till en klienthemlighet för Beskrivning anger du en beskrivning för klienthemligheten.
För Upphör att gälla väljer du en giltighetstid för klienthemligheten och klickar sedan på Lägg till.
Kopiera och lagra klienthemlighetens värde på en säker plats, eftersom den här klienthemligheten är lösenordet för ditt program.
På programsidans översiktssida i avsnittet Essentials kopierar du följande värden:
- Program-ID (klient)-ID
- Katalog-ID (klientorganisation)
Steg 3: Bevilja tjänstens huvudnamn åtkomst till Azure Data Lake Storage Gen2
Du beviljar åtkomst till lagringsresurser genom att tilldela roller till tjänstens huvudnamn. I den här självstudien tilldelar du Storage Blob Data-deltagaren till tjänstens huvudnamn på ditt Azure Data Lake Storage Gen2-konto. Du kan behöva tilldela andra roller beroende på specifika krav.
- I Azure Portal går du till tjänsten Lagringskonton.
- Välj ett Azure Storage-konto som ska användas.
- Klicka på Åtkomstkontroll (IAM).
- Klicka på + Lägg till och välj Lägg till rolltilldelning på den nedrullningsbara menyn.
- Ange fältet Välj till det Microsoft Entra-ID-programnamn som du skapade i steg 1 och ange Roll till Storage Blob Data Contributor.
- Klicka på Spara.
Steg 4: Lägg till klienthemligheten i Azure Key Vault
Du kan lagra klienthemligheten från steg 1 i Azure Key Vault.
- I Azure Portal går du till Key Vault-tjänsten.
- Välj ett Azure Key Vault som ska användas.
- På sidan Key Vault-inställningar väljer du Hemligheter.
- Klicka på + Generera/importera.
- I Alternativ för uppladdning väljer du Manuell.
- Som Namn anger du ett namn för hemligheten. Det hemliga namnet måste vara unikt i ett nyckelvalv.
- För Värde klistrar du in den klienthemlighet som du lagrade i steg 1.
- Klicka på Skapa.
Steg 5: Konfigurera din Azure Key Vault-instans för Azure Databricks
- Gå till Azure Key Vault-instansen i Azure-portalen.
Under Inställningar väljer du fliken Åtkomstkonfiguration .
Ange Behörighetsmodell till Åtkomstprincip för valv.
Kommentar
Om du skapar en Azure Key Vault-stödd hemlig omfångsroll ger du behörigheten Hämta och lista till program-ID:t för Azure Databricks-tjänsten med hjälp av åtkomstprinciper för nyckelvalv. Den rollbaserade behörighetsmodellen för Azure-åtkomstkontroll stöds inte med Azure Databricks.
Under Inställningar väljer du Nätverk.
I Brandväggar och virtuella nätverk anger du Tillåt åtkomst från: till Tillåt offentlig åtkomst från specifika virtuella nätverk och IP-adresser.
Under Undantag markerar du Tillåt betrodda Microsoft-tjänster att kringgå den här brandväggen.
Kommentar
Du kan också ange Tillåt åtkomst från: till Tillåt offentlig åtkomst från alla nätverk.
Steg 6: Skapa Azure Key Vault-säkerhetskopierat hemlighetsomfång på din Azure Databricks-arbetsyta
Om du vill referera till klienthemligheten som lagras i ett Azure Key Vault kan du skapa ett hemligt omfång som backas upp av Azure Key Vault i Azure Databricks.
Gå till
https://<databricks-instance>#secrets/createScope
. Den här URL:en är skiftlägeskänslig. omfånget icreateScope
måste vara versaler.Ange namnet på det hemliga omfånget. Namn på omfattningar för hemligheter är skiftlägesokänsliga.
Använd listrutan Hantera huvudnamn för att ange om Alla användare har
MANAGE
behörighet för det här hemliga omfånget eller endast skaparen av det hemliga omfånget (det vill säga du).Ange DNS-namnet (till exempel
https://databrickskv.vault.azure.net/
) och resurs-ID:/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKV
De här egenskaperna är tillgängliga på fliken *Inställningaregenskaper > i ett Azure Key Vault i din Azure Portal.
Klicka på knappen Skapa.
Steg 7: Ansluta till Azure Data Lake Storage Gen2 med python
Nu kan du på ett säkert sätt komma åt data i Azure Storage-kontot med hjälp av OAuth 2.0 med ditt Microsoft Entra ID-programtjänsthuvudnamn för autentisering från en Azure Databricks-notebook-fil.
Gå till din Azure Databricks-arbetsyta och skapa en ny python-notebook-fil.
Kör följande Python-kod, med ersättningarna nedan, för att ansluta till Azure Data Lake Storage Gen2.
service_credential = dbutils.secrets.get(scope="<scope>",key="<service-credential-key>") spark.conf.set("fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net", "OAuth") spark.conf.set("fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider") spark.conf.set("fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net", "<application-id>") spark.conf.set("fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net", service_credential) spark.conf.set("fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net", "https://login.microsoftonline.com/<directory-id>/oauth2/token")
Replace
<scope>
med det hemliga omfångsnamnet från steg 5.<service-credential-key>
med namnet på nyckeln som innehåller klienthemligheten.<storage-account>
med namnet på Azure Storage-kontot.<application-id>
med program-ID:t (klient) för Microsoft Entra-ID-programmet.<directory-id>
med katalog-ID:t (klientorganisation) för Microsoft Entra-ID-programmet.
Nu har du anslutit din Azure Databricks-arbetsyta till ditt Azure Data Lake Storage Gen2-konto.
Ge din Azure Databricks-arbetsyta åtkomst till Azure Data Lake Storage Gen2
Om du konfigurerar en brandvägg på Azure Data Lake Storage Gen2 måste du konfigurera nätverksinställningar så att din Azure Databricks-arbetsyta kan ansluta till Azure Data Lake Storage Gen2. Kontrollera först att din Azure Databricks-arbetsyta distribueras i ditt eget virtuella nätverk efter Distribuera Azure Databricks i ditt virtuella Azure-nätverk (VNet-inmatning). Sedan kan du konfigurera privata slutpunkter eller åtkomst från ditt virtuella nätverk för att tillåta anslutningar från dina undernät till ditt Azure Data Lake Storage Gen2-konto.
Om du använder serverlös beräkning som serverlösa SQL-lager måste du bevilja åtkomst från det serverlösa beräkningsplanet till Azure Data Lake Storage Gen2. Se Serverlös beräkningsplanets nätverk.
Bevilja åtkomst med privata slutpunkter
Du kan använda privata slutpunkter för ditt Azure Data Lake Storage Gen2-konto för att tillåta att din Azure Databricks-arbetsyta får säker åtkomst till data via en privat länk.
Information om hur du skapar en privat slutpunkt med hjälp av Azure-portalen finns i Självstudie: Ansluta till ett lagringskonto med en privat Azure-slutpunkt. Se till att skapa den privata slutpunkten i samma virtuella nätverk som din Azure Databricks-arbetsyta distribueras i.
Bevilja åtkomst från ditt virtuella nätverk
Med tjänstslutpunkter för virtuellt nätverk kan du skydda dina kritiska Azure-tjänstresurser till endast dina virtuella nätverk. Du kan aktivera en tjänstslutpunkt för Azure Storage i det virtuella nätverk som du använde för din Azure Databricks-arbetsyta.
Mer information, inklusive Instruktioner för Azure CLI och PowerShell finns i Bevilja åtkomst från ett virtuellt nätverk.
- Logga in på Azure-portalen som en användare med rollen Lagringskontodeltagare på ditt Azure Data Lake Storage Gen2-konto.
- Gå till ditt Azure Storage-konto och gå till fliken Nätverk .
- Kontrollera att du har valt att tillåta åtkomst från valda virtuella nätverk och IP-adresser.
- Under Virtuella nätverk väljer du Lägg till befintligt virtuellt nätverk.
- I sidopanelen, under Prenumeration, väljer du den prenumeration som det virtuella nätverket finns i.
- Under Virtuella nätverk väljer du det virtuella nätverk som din Azure Databricks-arbetsyta distribueras i.
- Under Undernät väljer du Välj alla.
- Klicka på Aktivera.
- Välj Spara för att tillämpa ändringarna.
Felsökning
Fel: IllegalArgumentException: Hemligheten finns inte med omfång: KeyVaultScope och nyckel
Det här felet innebär förmodligen:
- Det Databricks-backade omfång som anges i koden är inte giltigt.
Granska namnet på din hemlighet från steg 4 i den här artikeln.
Fel: com.databricks.common.client.DatabricksServiceHttpClientException: INVALID_STATE: Databricks kunde inte komma åt keyvault
Det här felet innebär förmodligen:
- Det Databricks-backade omfång som refereras till i koden är inte giltigt. eller så har hemligheten som lagras i Key Vault upphört att gälla.
Granska steg 3 för att se till att din Azure Key Vault-hemlighet är giltig. Granska namnet på din hemlighet från steg 4 i den här artikeln.
Fel: ADAuthenticator$HttpException: HTTP-fel 401: token misslyckades för att hämta token från AzureAD-svar
Det här felet innebär förmodligen:
- Tjänstens huvudnamns klienthemlighetsnyckel har upphört att gälla.
Skapa en ny klienthemlighet efter steg 2 i den här artikeln och uppdatera hemligheten i Ditt Azure Key Vault.