Feladat futtatása Microsoft Entra ID szolgáltatásnévvel
A feladatok nem interaktív módon futtathatnak alkalmazásokat egy Azure Databricks-fürtben, például egy ETL-feladatot vagy egy ütemezetten futtatandó adatelemzési feladatot. Ezek a feladatok általában az őket létrehozó felhasználóként futnak, de ennek bizonyos korlátai lehetnek:
- A feladatok létrehozása és futtatása a megfelelő engedélyekkel rendelkező felhasználótól függ.
- Csak a feladatot létrehozó felhasználó rendelkezik hozzáféréssel a feladathoz.
- Előfordulhat, hogy a felhasználó el lesz távolítva az Azure Databricks-munkaterületről.
A korlátozások kezelésére gyakran használt szolgáltatásfiók – egy alkalmazáshoz társított fiók, nem pedig egy adott felhasználó – használata. Az Azure-ban egy Microsoft Entra ID-alkalmazással és szolgáltatásnévvel hozhat létre szolgáltatásfiókot.
Ilyen például, ha a szolgáltatásnevek szabályozzák az Azure Data Lake Storage Gen2-fiókban tárolt adatokhoz való hozzáférést. A feladatok ezen szolgáltatásnevek használatával való futtatásával a feladatok hozzáférhetnek a tárfiók adataihoz, és szabályozhatja az adathozzáférési hatókört.
Ez az oktatóanyag bemutatja, hogyan hozhat létre Microsoft Entra ID-alkalmazást és szolgáltatásnevet, és hogyan teheti a szolgáltatásnevet egy feladat tulajdonosává. Azt is megtudhatja, hogyan adhat feladatfuttatási engedélyeket más olyan csoportoknak, amelyek nem a feladat tulajdonosai. Az alábbiakban az oktatóanyagban ismertetett feladatok magas szintű áttekintését tekintheti át:
- Szolgáltatásnév létrehozása a Microsoft Entra-azonosítóban.
- Hozzon létre egy személyes hozzáférési jogkivonatot (PAT) az Azure Databricksben. A PAT használatával hitelesíthet a Databricks REST API-val.
- Adja hozzá a szolgáltatásnevet nem rendszergazda felhasználóként az Azure Databrickshez a Databricks SCIM API használatával.
- Hozzon létre egy Azure Key Vault által támogatott titkos kulcs hatókört az Azure Databricksben.
- Adjon olvasási hozzáférést a szolgáltatásnévnek a titkos kulcs hatóköréhez.
- Hozzon létre egy feladatot az Azure Databricksben, és konfigurálja a feladatfürtöt, hogy titkos kulcsokat olvasson be a titkos kódok hatóköréből.
- A feladat tulajdonjogának átadása a szolgáltatásnévre.
- Tesztelje a feladatot szolgáltatásnévként futtatva.
Ha nem rendelkezik Azure-előfizetéssel, mindössze néhány perc alatt létrehozhat egy ingyenes fiókot a virtuális gép létrehozásának megkezdése előtt.
Feljegyzés
Nem használhat olyan fürtöt, amelyen engedélyezve van a hitelesítő adatok átadása egy szolgáltatásnév tulajdonában lévő feladat futtatásához. Ha a feladathoz szolgáltatásnév szükséges az Azure Storage eléréséhez, olvassa el a Csatlakozás az Azure Data Lake Storage Gen2-hez vagy a Blob Storage-hoz Azure-hitelesítő adatokkal című témakört.
Követelmények
Ehhez az oktatóanyaghoz a következőkre lesz szüksége:
- Egy olyan felhasználói fiók, amely rendelkezik az alkalmazás Microsoft Entra ID-bérlőben való regisztrálásához szükséges engedélyekkel.
- Rendszergazdai jogosultságok az Azure Databricks-munkaterületen, ahol feladatokat fog futtatni.
- Az Azure Databricksnek küldött API-kérések eszközét. Ez az oktatóanyag cURL-t használ, de bármilyen eszközt használhat, amely lehetővé teszi REST API-kérések küldését.
Szolgáltatásnév létrehozása a Microsoft Entra-azonosítóban
A szolgáltatásnév egy Microsoft Entra ID-alkalmazás identitása. A feladatok futtatásához használt egyszerű szolgáltatás létrehozása:
- Az Azure Portalon válassza a Microsoft Entra ID > Alkalmazásregisztrációk új regisztrációja >lehetőséget. Adja meg az alkalmazás nevét, és kattintson a Regisztráció gombra.
- Lépjen a Tanúsítványok > titkos kódok elemre, kattintson az Új ügyfélkód elemre, és hozzon létre egy új titkos ügyfélkulcsot. Másolja és mentse a titkos kódot egy biztonságos helyre.
- Lépjen az Áttekintés lapra, és jegyezze fel az alkalmazás (ügyfél) azonosítóját és a címtár (bérlő) azonosítóját.
Az Azure Databricks személyes hozzáférési jogkivonatának létrehozása
Egy Azure Databricks személyes hozzáférési jogkivonatot (PAT) fog használni a Databricks REST API-val való hitelesítéshez. API-kérések létrehozásához használható PAT létrehozása:
- Lépjen az Azure Databricks-munkaterületre.
- Kattintson a felhasználónévre a képernyő jobb felső sarkában, és kattintson a Beállítások gombra.
- Kattintson a Fejlesztőeszközök elemre.
- Az Access-jogkivonatok mellett kattintson a Kezelés gombra.
- Kattintson az Új jogkivonat létrehozása gombra.
- Másolja és mentse a jogkivonat értékét.
Tipp.
Ez a példa személyes hozzáférési jogkivonatot használ, de a legtöbb API-hoz használhat Microsoft Entra-azonosító jogkivonatot. Az ajánlott eljárás az, hogy a PAT alkalmas rendszergazdai konfigurációs feladatok elvégzésére, de az éles számítási feladatokhoz a Microsoft Entra ID-jogkivonatokat részesítik előnyben.
A PAT-k létrehozását csak biztonsági okokból korlátozhatja a rendszergazdákra. További részletekért tekintse meg a személyes hozzáférési jogkivonatokhoz való hozzáférés figyelése és kezelése című témakört.
A szolgáltatásnév hozzáadása az Azure Databricks-munkaterülethez
A Szolgáltatásnevek API használatával hozzáadhatja a Microsoft Entra ID szolgáltatásnevet egy munkaterülethez. Emellett engedélyt kell adnia a szolgáltatásnévnek az automatizált feladatfürtök elindításához. Ezt az allow-cluster-create
engedélyen keresztül teheti meg. Nyisson meg egy terminált, és a Databricks parancssori felületével futtassa a következő parancsot a szolgáltatásnév hozzáadásához és a szükséges engedélyek megadásához:
databricks service-principals create --json '{
"schemas":[
"urn:ietf:params:scim:schemas:core:2.0:ServicePrincipal"
],
"applicationId":"<application-id>",
"displayName": "test-sp",
"entitlements":[
{
"value":"allow-cluster-create"
}
]
}'
Cserélje le <application-id>
a Application (client) ID
Microsoft Entra ID-alkalmazásregisztrációra.
Azure Key Vault által támogatott titkos kulcs hatókörének létrehozása az Azure Databricksben
A titkos kulcsok hatókörei biztosítják a titkos kódok biztonságos tárolását és kezelését. A szolgáltatásnévhez társított titkos kulcsot titkos hatókörben fogja tárolni. Titkos kulcsokat egy Azure Databricks-titkos hatókörben vagy egy Azure Key Vault által támogatott titkos hatókörben tárolhat. Ezek az utasítások az Azure Key Vault által támogatott beállítást írják le:
- Hozzon létre egy Azure Key Vault-példányt az Azure Portalon.
- Hozza létre az Azure Key Vault-példány által támogatott Azure Databricks titkos hatókört.
1. lépés: Azure Key Vault-példány létrehozása
Az Azure Portalon válassza a Key Vaultok > + Hozzáadás lehetőséget, és adjon nevet a Key Vaultnak.
Kattintson a Felülvizsgálat + létrehozás elemre.
Az ellenőrzés befejezése után kattintson a Létrehozás gombra.
A Key Vault létrehozása után lépjen az új Key Vault Tulajdonságok lapjára.
Másolja és mentse a tároló URI-ját és erőforrás-azonosítóját.
2. lépés: Azure Key Vault által támogatott titkos kulcs hatókörének létrehozása
Az Azure Databricks-erőforrások egy Key Vault által támogatott titkos kulcs hatókörének létrehozásával hivatkozhatnak az Azure Key Vaultban tárolt titkos kulcsokra. Az Azure Databricks titkos kulcs hatókörének létrehozása:
Lépjen az Azure Databricks Titkos kulcs hatókörének létrehozása lapjára a következő helyen
https://<per-workspace-url>/#secrets/createScope
: . Cserélje leper-workspace-url
az Azure Databricks-munkaterület egyedi munkaterületenkénti URL-címére .Adjon meg egy hatókörnevet.
Adja meg az 1. lépésben létrehozott Azure Key Vault URI- és erőforrás-azonosító értékeit: Azure Key Vault-példány létrehozása.
Kattintson a Létrehozás gombra.
Az ügyfél titkos kódjának mentése az Azure Key Vaultban
Az Azure Portalon nyissa meg a Key Vaults szolgáltatást.
Válassza ki az 1. lépésben létrehozott Key Vaultot: Azure Key Vault-példány létrehozása.
A Beállítások titkos kulcsok >területén kattintson a Létrehozás/Importálás gombra.
Válassza a Manuális feltöltés lehetőséget, és írja be az ügyfélkulcsot az Érték mezőbe.
Kattintson a Létrehozás gombra.
A szolgáltatásnév olvasási hozzáférésének biztosítása a titkos kulcs hatóköréhez
Létrehozott egy titkos hatókört, és ebben a hatókörben tárolta a szolgáltatásnév ügyféltitkát. Most hozzáférést ad a szolgáltatásnévnek a titkos kulcs hatóköréből való olvasásához.
Nyisson meg egy terminált, és a Databricks parancssori felületével futtassa a következő parancsot:
databricks secrets put-acl <scope-name> <application-id> READ
- Cserélje le
<scope-name>
az ügyfélkulcsot tartalmazó Azure Databricks titkos hatókör nevére. - Cserélje le
<application-id>
aApplication (client) ID
Microsoft Entra ID-alkalmazásregisztrációra.
Feladat létrehozása az Azure Databricksben, és a fürt konfigurálása titkos kulcsok titkos kulcsok beolvasására a titkos kódok hatóköréből
Most már készen áll egy olyan feladat létrehozására, amely új szolgáltatásnévként futtatható. Az Azure Databricks felhasználói felületén létrehozott jegyzetfüzetet fog használni, és hozzáadja a konfigurációt, hogy a feladatfürt lekérhesse a szolgáltatásnév titkos kódját.
Nyissa meg az Azure Databricks kezdőlapját, és válassza az Új > jegyzetfüzet lehetőséget. Adjon nevet a jegyzetfüzetnek, és válassza az SQL-t alapértelmezett nyelvként.
Írja be
SELECT 1
a jegyzetfüzet első cellájába. Ez egy egyszerű parancs, amely csak 1-et jelenít meg, ha sikerül. Ha a 2. generációs Azure Data Lake Storage-ban adott fájlokhoz vagy elérési utakhoz biztosított hozzáférést a szolgáltatásnévhez, ezekből az útvonalakból olvashat.Nyissa meg a Munkafolyamatok elemet, és kattintson a Feladat létrehozása gombra. Adjon nevet a feladatnak és a feladatnak, kattintson a Jegyzetfüzet kiválasztása elemre, és válassza ki az imént létrehozott jegyzetfüzetet.
Kattintson a Fürtinformációk melletti Szerkesztés gombra.
A Fürt konfigurálása lapon kattintson a Speciális beállítások elemre.
A Spark lapon adja meg a következő Spark-konfigurációt:
fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id> fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope-name>/<secret-name>}} fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<directory-id>/oauth2/token
- Cserélje le
<storage-account>
az adatokat tartalmazó tárfiók nevére. - Cserélje le
<secret-scope-name>
az ügyfélkulcsot tartalmazó Azure Databricks titkos hatókör nevére. - Cserélje le
<application-id>
aApplication (client) ID
Microsoft Entra ID-alkalmazásregisztrációra. - Cserélje le
<secret-name>
a titkos kulcs hatókörében lévő ügyfél titkos kód értékéhez társított névre. - Cserélje le
<directory-id>
aDirectory (tenant) ID
Microsoft Entra ID-alkalmazásregisztrációra.
- Cserélje le
A feladat tulajdonjogának átadása a szolgáltatásnévre
Egy feladatnak pontosan egy tulajdonosa lehet, ezért a feladat tulajdonjogát át kell ruháznia saját magáról a szolgáltatásnévre. Annak érdekében, hogy más felhasználók felügyelhessék a feladatot, a CAN MANAGE engedélyeket is megadhat egy csoportnak. Ebben a példában az Engedélyek API használatával állítjuk be ezeket az engedélyeket.
Nyisson meg egy terminált, és a Databricks parancssori felületével futtassa a következő parancsot:
databricks permissions set jobs <job-id> --json '{
"access_control_list": [
{
"service_principal_name": "<application-id>",
"permission_level": "IS_OWNER"
},
{
"group_name": "admins",
"permission_level": "CAN_MANAGE"
}
]
}'
- Cserélje le
<job-id>
a feladat egyedi azonosítójára. A feladatazonosító megkereséséhez kattintson a Munkafolyamatok elemre az oldalsávon, és kattintson a feladat nevére. A feladatazonosító a Feladat részletei oldalpanelen található. - Cserélje le
<application-id>
aApplication (client) ID
Microsoft Entra ID-alkalmazásregisztrációra.
A feladatnak olvasási engedélyekre is szüksége lesz a jegyzetfüzethez. A Databricks parancssori felületével futtassa a következő parancsot a szükséges engedélyek megadásához:
databricks permissions set notebooks <notebook-id> --json '{
"access_control_list": [
{
"service_principal_name": "<application-id>",
"permission_level": "CAN_READ"
}
]
}'
- Cserélje le
<notebook-id>
a feladathoz társított jegyzetfüzet azonosítójára. Az azonosító megkereséséhez nyissa meg a jegyzetfüzetet az Azure Databricks-munkaterületen, és keresse meg a jegyzetfüzet URL-címében szereplőnotebook/
numerikus azonosítót. - Cserélje le
<application-id>
aApplication (client) ID
Microsoft Entra ID-alkalmazásregisztrációra.
A feladat tesztelése
A feladatokat ugyanúgy futtathatja szolgáltatásnévvel, mint felhasználóként, akár a felhasználói felületen, az API-val, akár a parancssori felülettel. A feladat tesztelése az Azure Databricks felhasználói felületén:
- Nyissa meg az Azure Databricks felhasználói felületén található munkafolyamatokat , és válassza ki a feladatot.
- Kattintson a Futtatás most parancsra.
Ha minden megfelelően fut, a feladat sikeres állapotú lesz. A kimenet ellenőrzéséhez válassza ki a feladatot a felhasználói felületen:
További információ
A feladatok létrehozásával és futtatásával kapcsolatos további információkért lásd : Munkafolyamatok ütemezése és vezénylése.