Share via


Oktatóanyag: Csatlakozás az Azure Data Lake Storage Gen2-höz

Feljegyzés

Ez a cikk az Azure Data Lake Storage Gen2-hez való hozzáférés konfigurálásának örökölt mintáit ismerteti. A Databricks a Unity Catalog használatát javasolja. Lásd: Unity Catalog-metaadattár létrehozása és Csatlakozás felhőbeli objektumtárba a Unity Catalog használatával.

Ez az oktatóanyag végigvezeti az Azure Databricksből az Azure Data Lake Storage Gen2-be való csatlakozáshoz szükséges összes lépésen az OAuth 2.0 és a Microsoft Entra ID szolgáltatásnév használatával.

Követelmények

Az oktatóanyag megkezdése előtt végezze el ezeket a feladatokat:

1. lépés: Microsoft Entra ID szolgáltatásnév létrehozása

Ha szolgáltatásnevek használatával szeretne csatlakozni az Azure Data Lake Storage Gen2-hez, a rendszergazda felhasználónak létre kell hoznia egy új Microsoft Entra-azonosítót (korábbi nevén Azure Active Directory-alkalmazást). Ha már rendelkezik Microsoft Entra ID szolgáltatásnévvel, ugorjon a 2. lépésre: Hozzon létre egy ügyfélkulcsot a szolgáltatásnévhez.

Microsoft Entra ID szolgáltatásnév létrehozásához kövesse az alábbi utasításokat:

  1. Jelentkezzen be az Azure Portalra.

    Feljegyzés

    A használni kívánt portál attól függően eltérő, hogy a Microsoft Entra ID-alkalmazása az Azure nyilvános felhőben vagy egy nemzeti vagy szuverén felhőben fut-e. További információ: Nemzeti felhők.

  2. Ha több bérlőhöz, előfizetéshez vagy címtárhoz rendelkezik hozzáféréssel, a felső menü Címtárak + előfizetések (címtár szűrővel) ikonjával válthat arra a könyvtárra, amelyben ki szeretné helyezni a szolgáltatásnevet.

  3. Keresse meg és válassza ki a <Microsoft Entra ID-t.

  4. A Kezelés területen kattintson Alkalmazásregisztrációk > Új regisztráció elemre.

  5. A Név mezőbe írja be az alkalmazás nevét.

  6. A Támogatott fióktípusok szakaszban válassza a Csak ebben a szervezeti címtárban lévő fiókok (egyetlen bérlő) lehetőséget.

  7. Kattintson a Regisztrálás parancsra.

2. lépés: Ügyfélkód létrehozása a szolgáltatásnévhez

  1. A Kezelés területen kattintson a Tanúsítványok és titkos kódok elemre.

  2. Az Ügyfél titkos kulcsok lapján kattintson az Új ügyfélkód gombra.

    Új titkos ügyfélkód

  3. Az Ügyfélkód hozzáadása panel Leírás eleméhez írja be az ügyfél titkos kódjának leírását.

  4. A Lejáratok beállításnál válassza ki az ügyfél titkos kódjának lejárati idejét, majd kattintson a Hozzáadás gombra.

  5. Másolja és tárolja az ügyfél titkos kódjának értékét egy biztonságos helyen, mivel ez az ügyfélkód az alkalmazás jelszava.

  6. Az alkalmazáslap Áttekintés lapján, az Alapvető beállítások szakaszban másolja ki a következő értékeket:

    • Alkalmazás (ügyfél) azonosítója
    • Címtár (bérlő) azonosítója

    Az Azure-ban regisztrált alkalmazások áttekintése

3. lépés: A szolgáltatásnév hozzáférésének biztosítása az Azure Data Lake Storage Gen2-hez

A szolgáltatásnévhez szerepkörök hozzárendelésével hozzáférést adhat a tárerőforrásokhoz. Ebben az oktatóanyagban a Storage Blob Data Közreműködőt rendeli hozzá az Azure Data Lake Storage Gen2-fiók szolgáltatásnévéhez. Előfordulhat, hogy más szerepköröket kell hozzárendelnie adott követelményektől függően.

  1. Az Azure Portalon nyissa meg a Storage-fiókok szolgáltatást.
  2. Válasszon ki egy használni kívánt Azure Storage-fiókot.
  3. Kattintson a Hozzáférés-vezérlés (IAM) elemre.
  4. Kattintson a + Szerepkör-hozzárendelés hozzáadása elemre a legördülő menüben.
  5. Állítsa a Kiválasztás mezőt az 1. lépésben létrehozott Microsoft Entra ID alkalmazásnévre, és állítsa be a szerepkört a Storage Blob-adatszolgáltatóra.
  6. Kattintson a Mentés gombra.

4. lépés: Az ügyfél titkos kódjának hozzáadása az Azure Key Vaulthoz

Az ügyfélkulcsot az 1. lépésben tárolhatja az Azure Key Vaultban.

  1. Az Azure Portalon nyissa meg a Key Vault szolgáltatást.
  2. Válassza ki a használni kívánt Azure Key Vaultot.
  3. A Key Vault beállításainak lapján válassza a Titkos kulcsok lehetőséget.
  4. Kattintson a + Létrehozás/Importálás elemre.
  5. A Feltöltési beállítások területen válassza a Manuális lehetőséget.
  6. A Név mezőbe írja be a titkos kód nevét. A titkos kulcs nevének egyedinek kell lennie a Key Vaultban.
  7. Értékként illessze be az 1. lépésben tárolt ügyféltitkot.
  8. Kattintson a Létrehozás gombra.

5. lépés: Azure Key Vault által támogatott titkos kulcs hatókörének létrehozása az Azure Databricks-munkaterületen

Az Azure Key Vaultban tárolt ügyféltitkokra való hivatkozáshoz létrehozhat egy titkos hatókört az Azure Key Vault által az Azure Databricksben.

  1. Odamegy https://<databricks-instance>#secrets/createScope. Ez az URL-cím megkülönbözteti a kis- és nagybetűkét; a hatókörnek createScope nagybetűsnek kell lennie.

    Hatókör létrehozása

  2. Adja meg a titkos kulcs hatókörének nevét. A titkos kulcsok hatókörei nevében nem számítanak különbözőnek a kis- és nagybetűk.

  3. Az Egyszerű kezelés legördülő menüben megadhatja, hogy minden felhasználó rendelkezik-e MANAGE engedéllyel ehhez a titkos kulcs hatóköréhez, vagy csak a titkos kulcs hatókörének létrehozója (azaz Ön).

  4. Adja meg a DNS-nevet (például https://databrickskv.vault.azure.net/) és az erőforrás-azonosítót, például:

    /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKV
    

    Ezek a tulajdonságok egy Azure Key Vault Tulajdonságok lapján érhetők el az Azure Portalon.

    Az Azure Key Vault Tulajdonságok lapja

  5. Kattintson a Létrehozás gombra.

6. lépés: Csatlakozás az Azure Data Lake Storage Gen2-be Python használatával

Mostantól biztonságosan hozzáférhet az Azure Storage-fiók adataihoz az OAuth 2.0-val a Microsoft Entra ID alkalmazás-szolgáltatásnévvel egy Azure Databricks-jegyzetfüzetből való hitelesítéshez.

  1. Lépjen az Azure Databricks-munkaterületre, és hozzon létre egy új Python-jegyzetfüzetet.

  2. Futtassa az alábbi Python-kódot az alábbi cserékkel az Azure Data Lake Storage Gen2-hez való csatlakozáshoz.

    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> az 5. lépés titkos hatókörének nevével.
    • <service-credential-key> az ügyfélkulcsot tartalmazó kulcs nevével.
    • <storage-account> az Azure Storage-fiók nevével.
    • <application-id> a Microsoft Entra ID alkalmazás (ügyfél) azonosítójával .
    • <directory-id> a Microsoft Entra ID-alkalmazás címtár-(bérlői) azonosítójával .

    Sikeresen csatlakoztatta az Azure Databricks-munkaterületet az Azure Data Lake Storage Gen2-fiókjához.

Azure Databricks-munkaterület hozzáférésének biztosítása az Azure Data Lake Storage Gen2-hez

Ha tűzfalat konfigurál az Azure Data Lake Storage Gen2-ben, hálózati beállításokat kell konfigurálnia, hogy az Azure Databricks-munkaterület csatlakozzon az Azure Data Lake Storage Gen2-hez. Először győződjön meg arról, hogy az Azure Databricks-munkaterület a saját virtuális hálózatában van üzembe helyezve az Azure Databricks Üzembe helyezése az Azure-beli virtuális hálózaton (VNet-injektálás) után. Ezután konfigurálhatja a privát végpontokat vagy a virtuális hálózatból való hozzáférést, hogy lehetővé tegye az alhálózatok és az Azure Data Lake Storage Gen2-fiók közötti kapcsolatokat.

Ha kiszolgáló nélküli számításokat, például kiszolgáló nélküli SQL-raktárakat használ, hozzáférést kell adnia a kiszolgáló nélküli számítási síkról az Azure Data Lake Storage Gen2-hez. Lásd: Kiszolgáló nélküli számításisík-hálózatkezelés.

Hozzáférés biztosítása privát végpontokkal

Privát végpontokat használhat az Azure Data Lake Storage Gen2-fiókjához, hogy az Azure Databricks-munkaterület biztonságosan hozzáférhessen az adatokhoz egy privát kapcsolaton keresztül.

Ha privát végpontot szeretne létrehozni az Azure Portal használatával, tekintse meg az oktatóanyagot: Csatlakozás egy azure-beli privát végpontot használó tárfiókba. Győződjön meg arról, hogy ugyanabban a virtuális hálózaton hozza létre a privát végpontot, amelyben az Azure Databricks-munkaterület telepítve van.

Hozzáférés biztosítása a virtuális hálózatról

A virtuális hálózati szolgáltatásvégpontok lehetővé teszik a kritikus Azure-szolgáltatás erőforrásainak védelmét csak a virtuális hálózatok számára. Az Azure Databricks-munkaterülethez használt virtuális hálózaton belül engedélyezheti az Azure Storage szolgáltatásvégpontját.

További információ, beleértve az Azure CLI-t és a PowerShell-utasításokat, lásd : Hozzáférés biztosítása virtuális hálózatról.

  1. Jelentkezzen be az Azure Portalra a Storage-fiók közreműködői szerepkörrel rendelkező felhasználóként az Azure Data Lake Storage Gen2-fiókjában.
  2. Lépjen az Azure Storage-fiókjára, és lépjen a Hálózatkezelés lapra.
  3. Ellenőrizze, hogy kiválasztotta-e a kiválasztott virtuális hálózatok és IP-címek hozzáférésének engedélyezését.
  4. A Virtuális hálózatok területen válassza a Meglévő virtuális hálózat hozzáadása lehetőséget.
  5. Az oldalpanel Előfizetés területén válassza ki azt az előfizetést, amelyben a virtuális hálózat található.
  6. A Virtuális hálózatok területen válassza ki azt a virtuális hálózatot, amelyben az Azure Databricks-munkaterület telepítve van.
  7. Az Alhálózatok területen válassza az Összes kijelölése lehetőséget.
  8. Kattintson az Engedélyezés gombra.
  9. Válassza a Mentés lehetőséget a módosítások alkalmazásához.

Hibaelhárítás

Hiba: IllegalArgumentException: A titkos kulcs nem létezik a következő hatókörrel: KeyVaultScope és key

Ez a hiba valószínűleg a következőt jelenti:

  • A kódban hivatkozott Databricks-alapú hatókör érvénytelen.

Tekintse át a jelen cikk 4. lépésében szereplő titkos kód nevét.

Hiba: com.databricks.common.client.DatabricksServiceHttpClientException: INVALID_STATE: A Databricks nem tudta elérni a keyvaultot

Ez a hiba valószínűleg a következőt jelenti:

  • A kódban hivatkozott Databricks-alapú hatókör érvénytelen. vagy a Key Vaultban tárolt titkos kód lejárt.

Tekintse át a 3. lépést annak ellenőrzéséhez, hogy az Azure Key Vault titkos kódja érvényes-e. Tekintse át a jelen cikk 4. lépésében szereplő titkos kód nevét.

Hiba: ADAuthenticator$HttpException: HTTP Error 401: token failed getting token from AzureAD response

Ez a hiba valószínűleg a következőt jelenti:

  • A szolgáltatásnév ügyfélkulcsa lejárt.

Hozzon létre egy új ügyfélkulcsot a jelen cikk 2. lépését követően, és frissítse a titkos kulcsot az Azure Key Vaultban.

Források