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árolóhoz 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:
- Azure Databricks-munkaterület létrehozása. Rövid útmutató: Azure Databricks-munkaterület létrehozása
- Hozzon létre egy Azure Data Lake Storage Gen2-tárfiókot. Lásd : Rövid útmutató: Azure Data Lake Storage Gen2-tárfiók létrehozása.
- Hozzon létre egy Azure Key Vaultot. Lásd : Rövid útmutató: Azure Key Vault létrehozása
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ó 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:
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.
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.
Keresse meg és válassza ki a <Microsoft Entra ID-t.
A Kezelés területen kattintson Alkalmazásregisztrációk > Új regisztráció elemre.
A Név mezőbe írja be az alkalmazás nevét.
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.
Kattintson a Regisztrálás parancsra.
2. lépés: Ügyfélkód létrehozása a szolgáltatásnévhez
A Kezelés területen kattintson a Tanúsítványok és titkos kódok elemre.
Az Ügyfél titkos kulcsok lapján kattintson az Új ügyfélkód gombra.
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.
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.
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.
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
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.
- Az Azure Portalon nyissa meg a Storage-fiókok szolgáltatást.
- Válasszon ki egy használni kívánt Azure Storage-fiókot.
- Kattintson a Hozzáférés-vezérlés (IAM) elemre.
- Kattintson a + Szerepkör-hozzárendelés hozzáadása elemre a legördülő menüben.
- Á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.
- 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.
- Az Azure Portalon nyissa meg a Key Vault szolgáltatást.
- Válassza ki a használni kívánt Azure Key Vaultot.
- A Key Vault beállításainak lapján válassza a Titkos kulcsok lehetőséget.
- Kattintson a + Létrehozás/Importálás elemre.
- A Feltöltési beállítások területen válassza a Manuális lehetőséget.
- A Név mezőbe írja be a titkos kód nevét. A titkos kulcs nevének egyedinek kell lennie a Key Vaultban.
- Értékként illessze be az 1. lépésben tárolt ügyféltitkot.
- 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.
Lépjen a következőre:
https://<databricks-instance>#secrets/createScope
. Ez az URL-cím megkülönbözteti a kis- és nagybetűkét; a hatókörnekcreateScope
nagybetűsnek kell lennie.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.
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).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 *Beállítások > tulajdonságai lapján érhetők el az Azure Portalon.
Kattintson a Létrehozás gombra.
6. lépés: Csatlakozás az Azure Data Lake Storage Gen2-hez 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.
Lépjen az Azure Databricks-munkaterületre, és hozzon létre egy új Python-jegyzetfüzetet.
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 a következő oktatóanyagot: Csatlakozás tárfiókhoz azure-beli privát végpont használatával. 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.
- 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.
- Lépjen az Azure Storage-fiókjára, és lépjen a Hálózatkezelés lapra.
- 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.
- A Virtuális hálózatok területen válassza a Meglévő virtuális hálózat hozzáadása lehetőséget.
- 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ó.
- 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.
- Az Alhálózatok területen válassza az Összes kijelölése lehetőséget.
- Kattintson az Engedélyezés gombra.
- 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.