Kurz: Připojení Dataverse k Azure Data Lake Storage Gen2
Poznámka:
Tento článek popisuje starší vzory konfigurace přístupu ke službě Azure Data Lake Storage Gen2. Databricks doporučuje používat katalog Unity. Viz Vytvoření metastoru katalogu Unity a připojení ke cloudovému úložišti objektů a službám pomocí katalogu Unity.
Tento kurz vás provede všemi kroky potřebnými k připojení z Azure Databricks k Azure Data Lake Storage Gen2 pomocí OAuth 2.0 s instančním objektem Microsoft Entra ID.
Požadavky
Než začnete s tímto kurzem, proveďte tyto úkoly:
- Vytvořte pracovní prostor Azure Databricks. Viz Rychlý start: Vytvoření pracovního prostoru Azure Databricks
- Vytvořte účet úložiště Azure Data Lake Storage Gen2. Viz Rychlý start: Vytvoření účtu úložiště Azure Data Lake Storage Gen2.
- Vytvoření služby Azure Key Vault Viz Rychlý start: Vytvoření služby Azure Key Vault
Krok 1: Vytvoření instančního objektu Microsoft Entra ID
Pokud chcete k připojení k Azure Data Lake Storage Gen2 použít instanční objekty, musí uživatel s oprávněním správce vytvořit novou aplikaci Microsoft Entra ID. Pokud už máte k dispozici instanční objekt Microsoft Entra ID, přeskočte k kroku 2: Vytvoření tajného klíče klienta pro instanční objekt.
Pokud chcete vytvořit instanční objekt Microsoft Entra ID, postupujte podle těchto pokynů:
Přihlaste se k portálu Azure.
Poznámka:
Portál, který se má použít, se liší v závislosti na tom, jestli vaše aplikace Microsoft Entra ID běží ve veřejném cloudu Azure nebo v národním nebo suverénním cloudu. Další informace najdete v tématu Národní cloudy.
Pokud máte přístup k více tenantům, předplatným nebo adresářům, klikněte v horní nabídce na ikonu Adresáře a předplatná (adresář s filtrem) a přepněte do adresáře, ve kterém chcete zřídit instanční objekt.
Vyhledejte a vyberte <Microsoft Entra ID.
Ve správě klikněte na Registrace aplikací > Nová registrace.
Jako Název zadejte název aplikace.
V části Podporované typy účtů vyberte Účty pouze v tomto organizačním adresáři (jeden tenant).
Klikněte na Zaregistrovat.
Krok 2: Vytvoření tajného klíče klienta pro instanční objekt
Ve správě klikněte na Certifikáty a tajné kódy.
Na kartě Tajné kódy klienta klikněte na Nový tajný klíč klienta.
V podokně Přidat tajný klíč klienta zadejte popis tajného klíče klienta.
V případě vypršení platnosti vyberte časové období vypršení platnosti tajného klíče klienta a klikněte na tlačítko Přidat.
Zkopírujte a uložte hodnotu tajného klíče klienta na bezpečném místě, protože tento tajný klíč klienta je heslo pro vaši aplikaci.
Na stránce Přehled stránky aplikace zkopírujte v části Základy následující hodnoty:
- ID aplikace (klienta)
- ID adresáře (tenanta)
Krok 3: Udělení přístupu instančního objektu k Azure Data Lake Storage Gen2
Přístup k prostředkům úložiště udělíte přiřazením rolí k instančnímu objektu. V tomto kurzu přiřadíte přispěvatel dat objektů blob služby Storage instančnímu objektu ve vašem účtu Azure Data Lake Storage Gen2. V závislosti na konkrétních požadavcích možná budete muset přiřadit jiné role.
- Na webu Azure Portal přejděte do služby Účty úložiště.
- Vyberte účet úložiště Azure, který chcete použít.
- Klikněte na Řízení přístupu (IAM).
- V rozevírací nabídce klikněte na + Přidat a vyberte Přidat přiřazení role.
- Nastavte pole Vybrat na název aplikace Microsoft Entra ID, kterou jste vytvořili v kroku 1, a nastavte roli na Přispěvatel dat objektů blob služby Storage.
- Klikněte na Uložit.
Krok 4: Přidání tajného klíče klienta do služby Azure Key Vault
Tajný klíč klienta můžete uložit v kroku 1 ve službě Azure Key Vault.
- Na webu Azure Portal přejděte do služby Key Vault .
- Vyberte službu Azure Key Vault, která se má použít.
- Na stránkách nastavení služby Key Vault vyberte Tajné kódy.
- Klikněte na + Generovat/Importovat.
- V možnostech nahrání vyberte Ručně.
- Do pole Název zadejte název tajného kódu. Název tajného kódu musí být v rámci služby Key Vault jedinečný.
- Jako hodnotu vložte tajný klíč klienta, který jste uložili v kroku 1.
- Klikněte na Vytvořit.
Krok 5: Konfigurace instance služby Azure Key Vault pro Azure Databricks
- Na webu Azure Portal přejděte do instance trezoru klíčů Azure.
V části Nastavení vyberte kartu Konfigurace aplikace Access.
Nastavte model oprávnění na zásady přístupu trezoru.
Poznámka:
Vytvoření role oboru tajných kódů založené na službě Azure Key Vault uděluje oprávnění Get a List k ID aplikace pro službu Azure Databricks pomocí zásad přístupu trezoru klíčů. Model oprávnění řízení přístupu na základě role Azure se v Azure Databricks nepodporuje.
V části Nastavení vyberte Sítě.
V bránách firewall a virtuálních sítích nastavte Povolit přístup z: Povolit veřejný přístup z konkrétních virtuálních sítí a IP adres.
V části Výjimka zaškrtněte políčko Povolit důvěryhodné služby Microsoft obejít tuto bránu firewall.
Poznámka:
Můžete také nastavit Povolit přístup z: na Povolit veřejný přístup ze všech sítí.
Krok 6: Vytvoření oboru tajných kódů založených na službě Azure Key Vault v pracovním prostoru Azure Databricks
Pokud chcete odkazovat na tajný klíč klienta uložený ve službě Azure Key Vault, můžete vytvořit obor tajných kódů založený na službě Azure Key Vault v Azure Databricks.
Přejděte na
https://<databricks-instance>#secrets/createScope
. V této adrese URL se rozlišují malá a velká písmena;createScope
musí být velkými písmeny.Zadejte název oboru tajného kódu. V názvech rozsahů tajných kódů se nerozlišují malá a velká písmena.
Pomocí rozevírací nabídky Spravovat objekt zabezpečení určete, jestli
MANAGE
oprávnění k tomuto oboru tajných kódů, nebo jenom autor oboru tajného kódu (to znamená, že jste).Zadejte název DNS (například
https://databrickskv.vault.azure.net/
) a ID prostředku, například:/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKV
Tyto vlastnosti jsou k dispozici na kartě Vlastnosti> nastavení služby Azure Key Vault na webu Azure Portal.
Klikněte na tlačítko Vytvořit.
Krok 7: Připojení k Azure Data Lake Storage Gen2 pomocí Pythonu
Teď můžete bezpečně přistupovat k datům v účtu úložiště Azure pomocí OAuth 2.0 s instančním objektem aplikace Microsoft Entra ID pro ověřování z poznámkového bloku Azure Databricks.
Přejděte do pracovního prostoru Azure Databricks a vytvořte nový poznámkový blok Pythonu.
Spuštěním následujícího kódu Pythonu s níže náhražkovými náhradami se připojte k 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")
Nahradit
-
<scope>
s názvem oboru tajného kódu z kroku 5. -
<service-credential-key>
s názvem klíče obsahujícího tajný klíč klienta. -
<storage-account>
s názvem účtu úložiště Azure. -
<application-id>
s ID aplikace (klienta) pro aplikaci Microsoft Entra ID. -
<directory-id>
s ID adresáře (tenanta) pro aplikaci Microsoft Entra ID.
Pracovní prostor Azure Databricks jste teď úspěšně připojili ke svému účtu Azure Data Lake Storage Gen2.
-
Udělení přístupu k pracovnímu prostoru Azure Databricks ke službě Azure Data Lake Storage Gen2
Pokud nakonfigurujete bránu firewall ve službě Azure Data Lake Storage Gen2, musíte nakonfigurovat nastavení sítě, aby se váš pracovní prostor Azure Databricks mohl připojit k Azure Data Lake Storage Gen2. Nejprve se ujistěte, že je váš pracovní prostor Azure Databricks nasazený ve vaší vlastní virtuální síti, a to po nasazení Azure Databricks ve virtuální síti Azure (injektáž virtuální sítě). Pak můžete nakonfigurovat privátní koncové body nebo přístup z virtuální sítě , aby umožňovaly připojení z vašich podsítí k vašemu účtu Azure Data Lake Storage Gen2.
Pokud používáte bezserverové výpočetní prostředky, jako jsou bezserverové služby SQL Warehouse, musíte udělit přístup z bezserverové výpočetní roviny do Azure Data Lake Storage Gen2. Viz Sítě bezserverové výpočetní roviny.
Udělení přístupu pomocí privátních koncových bodů
Privátní koncové body pro svůj účet Azure Data Lake Storage Gen2 můžete použít k tomu, aby váš pracovní prostor Azure Databricks mohl bezpečně přistupovat k datům přes privátní propojení.
Pokud chcete vytvořit privátní koncový bod pomocí webu Azure Portal, přečtěte si kurz : Připojení k účtu úložiště pomocí privátního koncového bodu Azure. Ujistěte se, že chcete vytvořit privátní koncový bod ve stejné virtuální síti, ve které je nasazený váš pracovní prostor Azure Databricks.
Udělení přístupu z virtuální sítě
Koncové body služby pro virtuální síť umožňují zabezpečit důležité prostředky služby Azure pouze pro vaše virtuální sítě. Koncový bod služby pro Azure Storage můžete povolit v rámci virtuální sítě, kterou jste použili pro pracovní prostor Azure Databricks.
Další informace, včetně Azure CLI a pokynů k PowerShellu, najdete v tématu Udělení přístupu z virtuální sítě.
- Přihlaste se k webu Azure Portal jako uživatel s rolí Přispěvatel účtu úložiště ve vašem účtu Azure Data Lake Storage Gen2.
- Přejděte ke svému účtu Azure Storage a přejděte na kartu Sítě .
- Zkontrolujte, že jste vybrali možnost povolit přístup z vybraných virtuálních sítí a IP adres.
- V části Virtuální sítě vyberte Přidat existující virtuální síť.
- Na bočním panelu v části Předplatné vyberte předplatné, ve které je vaše virtuální síť.
- V části Virtuální sítě vyberte virtuální síť, ve které je nasazený váš pracovní prostor Azure Databricks.
- V části Podsítě vyberte Vybrat vše.
- Klikněte na Povolit.
- Výběrem možnosti Uložit se vaše změny uplatní.
Řešení problému
Chyba: IllegalArgumentException: Tajný kód neexistuje s oborem: KeyVaultScope a klíč
Tato chyba pravděpodobně znamená:
- Obor založený na Databricks, na který se odkazuje v kódu, není platný.
Zkontrolujte název tajného kódu z kroku 4 v tomto článku.
Chyba: com.databricks.common.client.DatabricksServiceHttpClientException: INVALID_STATE: Databricks nemohl získat přístup ke službě KeyVault
Tato chyba pravděpodobně znamená:
- Obor založený na Databricks, na který se odkazuje v kódu, není platný. nebo vypršela platnost tajného kódu uloženého ve službě Key Vault.
Projděte si krok 3 a ujistěte se, že je tajný klíč služby Azure Key Vault platný. Zkontrolujte název tajného kódu z kroku 4 v tomto článku.
Chyba: ADAuthenticator$HttpException: Chyba HTTP 401: Token selhal pro získání tokenu z odpovědi AzureAD
Tato chyba pravděpodobně znamená:
- Platnost tajného klíče klienta instančního objektu vypršela.
Vytvořte nový tajný klíč klienta podle kroku 2 v tomto článku a aktualizujte tajný kód ve službě Azure Key Vault.