Megosztás a következőn keresztül:


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:

  1. Szolgáltatásnév létrehozása a Microsoft Entra-azonosítóban.
  2. 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.
  3. Adja hozzá a szolgáltatásnevet nem rendszergazda felhasználóként az Azure Databrickshez a Databricks SCIM API használatával.
  4. Hozzon létre egy Azure Key Vault által támogatott titkos kulcs hatókört az Azure Databricksben.
  5. Adjon olvasási hozzáférést a szolgáltatásnévnek a titkos kulcs hatóköréhez.
  6. 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.
  7. A feladat tulajdonjogának átadása a szolgáltatásnévre.
  8. 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:

  1. 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.
  2. 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.
  3. 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:

  1. Lépjen az Azure Databricks-munkaterületre.
  2. Kattintson a felhasználónévre a képernyő jobb felső sarkában, és kattintson a Beállítások gombra.
  3. Kattintson a Fejlesztőeszközök elemre.
  4. Az Access-jogkivonatok mellett kattintson a Kezelés gombra.
  5. Kattintson az Új jogkivonat létrehozása gombra.
  6. 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:

  1. Hozzon létre egy Azure Key Vault-példányt az Azure Portalon.
  2. 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

  1. Az Azure Portalon válassza a Key Vaultok > + Hozzáadás lehetőséget, és adjon nevet a Key Vaultnak.

  2. Kattintson a Felülvizsgálat + létrehozás elemre.

  3. Az ellenőrzés befejezése után kattintson a Létrehozás gombra.

  4. A Key Vault létrehozása után lépjen az új Key Vault Tulajdonságok lapjára.

  5. Másolja és mentse a tároló URI-ját és erőforrás-azonosítóját.

    Az Azure Key Vault tulajdonságai

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:

  1. 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 le per-workspace-url az Azure Databricks-munkaterület egyedi munkaterületenkénti URL-címére .

  2. Adjon meg egy hatókörnevet.

  3. 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.

  4. Kattintson a Létrehozás gombra.

    Titkos kulcs hatókörének létrehozása

Az ügyfél titkos kódjának mentése az Azure Key Vaultban

  1. Az Azure Portalon nyissa meg a Key Vaults szolgáltatást.

  2. Válassza ki az 1. lépésben létrehozott Key Vaultot: Azure Key Vault-példány létrehozása.

  3. A Beállítások titkos kulcsok >területén kattintson a Létrehozás/Importálás gombra.

  4. Válassza a Manuális feltöltés lehetőséget, és írja be az ügyfélkulcsot az Érték mezőbe.

    Az  titkos kód létrehozása

  5. 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> a Application (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.

  1. 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.

  2. Í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.

  3. 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.

  4. Kattintson a Fürtinformációk melletti Szerkesztés gombra.

  5. A Fürt konfigurálása lapon kattintson a Speciális beállítások elemre.

  6. 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> a Application (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> a Directory (tenant) ID Microsoft Entra ID-alkalmazásregisztrációra.

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> a Application (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> a Application (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:

  1. Nyissa meg az Azure Databricks felhasználói felületén található munkafolyamatokat , és válassza ki a feladatot.
  2. 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:

Feladat kimenete

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.