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


Titkos kódok kezelése

Az adatokhoz való hozzáféréshez egyes esetekben szükség van JDBC-n keresztüli, külső adatforrásokon történő hitelesítésre. Ahelyett, hogy közvetlenül beírja a hitelesítő adatait egy jegyzetfüzetbe, az Azure Databricks titkos kulcsainak használatával tárolhatja a hitelesítő adatait, és hivatkozhat rájuk jegyzetfüzetekben és feladatokban. Ez a cikk áttekintést nyújt az Azure Databricks titkos kulcsokról.

Titkos kódok áttekintése

Titkos kulcsok konfigurálása és használata:

  1. Hozzon létre egy hatókört a titkos kulcs számára. A titkos kulcsok hatóköre egy név által azonosított titkos kulcsok gyűjteménye.
  2. Titkos kulcsok hozzáadása a hatókörhöz
  3. Engedélyek hozzárendelése a titkos kulcs hatóköréhez.
  4. Titkos kulcsok elérése a Databricks Utilities használatával, lásd: Titkos kulcsok segédprogram (dbutils.secrets).

A titkos kulcsok munkafolyamatokban való használatára vonatkozó átfogó példa: Oktatóanyag: Databricks-titkos kulcs létrehozása és használata. Ha titkos kulcsot szeretne használni Egy Spark-konfigurációs tulajdonságban vagy környezeti változóban, olvassa el a Titkos kulcs használata Spark-konfigurációs tulajdonságban vagy környezeti változóban című témakört.

Figyelmeztetés

A rendszergazdák, a titkos kódok létrehozói és az engedéllyel rendelkező felhasználók elolvashatják az Azure Databricks titkos kulcsait. Bár a Databricks erőfeszítéseket tesz a jegyzetfüzetekben esetleg megjelenő titkos értékek újrakódosítására, nem lehet megakadályozni, hogy az ilyen felhasználók titkos kulcsokat olvasnak. Lásd: Titkos kód újraválasztása.

Titkos kulcsok hatóköreinek kezelése

A titkos kulcsok hatóköre egy név által azonosított titkos kulcsok gyűjteménye. A Databricks azt javasolja, hogy a titkos kulcsok hatóköreit az egyének helyett szerepkörökhöz vagy alkalmazásokhoz igazítsa.

A titkos kulcsok hatókörének két típusa létezik:

  • Azure Key Vault-alapú: Az Azure Key Vaultban tárolt titkos kulcsokra hivatkozhat az Azure Key Vault által támogatott titkos kulcsok hatóköreinek használatával. Az Azure Key Vault által támogatott titkos kulcs hatóköre a Key Vault írásvédett felülete. A titkos kulcsokat az Azure Key Vault által támogatott titkos kulcstartományokban kell kezelnie az Azure-ban.
  • Databricks által támogatott: A Databricks által támogatott titkos kulcsok hatóköre az Azure Databricks tulajdonában és kezelésében lévő titkosított adatbázisban van tárolva.

A titkos hatókör létrehozása után engedélyeket rendelhet hozzá, hogy hozzáférést biztosítson a felhasználóknak a scret-hatókörök olvasásához, írásához és kezeléséhez.

Azure Key Vault által támogatott titkos kulcs hatókörének létrehozása

Ez a szakasz azt ismerteti, hogyan hozhat létre Azure Key Vault-alapú titkos kulcs hatókört az Azure Portal és az Azure Databricks-munkaterület felhasználói felülete használatával. Az Azure Key Vault által támogatott titkos kulcs hatókörét a Databricks parancssori felületével is létrehozhatja.

Követelmények

  • Rendelkeznie kell egy Azure Key Vault-példánnyal. Ha nem rendelkezik Key Vault-példánysal, kövesse a Kulcstartó létrehozása az Azure Portalon című témakör utasításait.
  • A kulcstartó közreműködői, közreműködői vagy tulajdonosi szerepkörével kell rendelkeznie azon az Azure Key Vault-példányon, amelyet a titkos kulcstartó hatókörének biztonsági mentéséhez szeretne használni.

Feljegyzés

Az Azure Key Vault által támogatott titkos kulcs hatókörének létrehozásához az Azure Key Vault-példány közreműködői vagy tulajdonosi szerepköre szükséges akkor is, ha az Azure Databricks szolgáltatás korábban hozzáférést kapott a kulcstartóhoz.

Ha a kulcstartó egy másik bérlőben található, mint az Azure Databricks-munkaterület, a titkos kulcs hatókörét létrehozó Azure AD-felhasználónak engedéllyel kell rendelkeznie a kulcstartó bérlőjében lévő szolgáltatásnevek létrehozásához. Ellenkező esetben a következő hiba történik:

Unable to grant read/list permission to Databricks service principal to KeyVault 'https://xxxxx.vault.azure.net/': Status code 403, {"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient privileges to complete the operation."},"requestId":"XXXXX","date":"YYYY-MM-DDTHH:MM:SS"}}

Azure Key Vault-példány konfigurálása az Azure Databrickshez

  1. Jelentkezzen be az Azure Portalra, keresse meg és válassza ki az Azure Key Vault-példányt.

  2. A Beállítások területen kattintson az Access konfigurációs lapjára.

  3. A(z) engedélymodellt állítsa be a tároló hozzáférési szabályzatához .

    Feljegyzés

    Az Azure Key Vault által támogatott titkos kulcstartomány-szerepkör létrehozása a Lekérése és a Listázás engedélyeket biztosítja az Azure Databricks szolgáltatás alkalmazásazonosítójának a Key Vault hozzáférési szabályzatainak használatával. Az Azure Databricks nem támogatja az Azure szerepköralapú hozzáférés-vezérlési engedélymodellt.

  4. A Beállításokterületen válassza a Hálózatkezelésilehetőséget.

  5. A tűzfalakban és virtuális hálózatokbanHozzáférés engedélyezése:Nyilvános hozzáférés engedélyezése adott virtuális hálózatokról és IP-címekről.

    A Kivétel csoportban jelölje be A megbízható Microsoft-szolgáltatások engedélyezése a tűzfal megkerüléséhez jelölőnégyzetet.

    Feljegyzés

    Beállíthatja Engedélyezze a hozzáférést a következőről:Nyilvános hozzáférés engedélyezése az összes hálózatról.

Azure Key Vault-alapú titkoskód-hatókör létrehozása

  1. Lépjen a következőre: https://<databricks-instance>#secrets/createScope . Cserélje le <databricks-instance> az Azure Databricks-üzemelő példány munkaterületi URL-címét . Ez az URL-cím megkülönbözteti a kis- és nagybetűkét. Például nagybetűt scopecreateScopeSkell használnia).

    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. A Principal kezelése menüpontban válassza a Létrehozó vagy a Minden munkaterület-felhasználó lehetőséget annak megadásához, hogy mely felhasználók rendelkezzenek a titkos hatókörön belül MANAGE engedéllyel.

    A MANAGE engedély lehetővé teszi a felhasználók számára a hatókör olvasását, írását és engedélyeinek megadását. A fióknak rendelkeznie kell a Prémium csomaggal a Létrehozó kiválasztásához.

  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 Beállítások > tulajdonságai lapján érhetők el az Azure Portalon.

  5. Kattintson a Létrehozás gombra.

  6. A Databricks CLI-paranccsaldatabricks secrets list-scopes ellenőrizze, hogy a hatókör sikeresen létrejött-e.

Databricks által támogatott titkos kulcs hatókörének létrehozása

Ez a szakasz azt ismerteti, hogyan hozhat létre titkos hatókört a Databricks CLI (0.205-ös vagy újabb verzió) használatával. A Titkos kódok API-t is használhatja.

Titkos kulcs hatókörének nevei:

  • A munkaterületen belül egyedinek kell lennie.
  • Alfanumerikus karakterekből, kötőjelekből, aláhúzásjelekből @és pontokból kell állnia, és nem haladhatja meg a 128 karaktert.
  • A kis- és nagybetűk érzéketlenek.

A titkos kulcstartományok nevei nem bizalmasak, és a munkaterület összes felhasználója számára olvashatók.

Hatókör létrehozása a Databricks parancssori felületével:

databricks secrets create-scope <scope-name>

A hatókörök alapértelmezés szerint MANAGE engedéllyel jönnek létre a hatókört létrehozó felhasználó számára. Miután létrehozott egy Databricks által támogatott titkos kulcs hatókört, titkos kulcsokat adhat hozzá.

Titkos hatókörök listázása

A munkaterület meglévő hatóköreinek listázása a parancssori felület használatával:

databricks secrets list-scopes

A titkos kulcsok hatóköreit a titkos kulcsok APIhasználatával is listázhatja.

Titkoskulcs-hatókör törlése

A titkos kulcs hatókörének törlése törli a hatókörre alkalmazott összes titkos kulcsot és ACL-t. Ha törölni szeretne egy hatókört a parancssori felülettel, futtassa a következőket:

databricks secrets delete-scope <scope-name>

Titkos kulcs hatókörét a Titkos kódok API használatával is törölheti.

Titkos kódok kezelése

A titkos kulcsok olyan kulcs-érték párok, amelyek bizalmas anyagokat tárolnak egy titkos hatókörön belül egyedi kulcsnév használatával.

Ez a szakasz azt ismerteti, hogyan hozhat létre titkos hatókört a Databricks CLI (0.205-ös vagy újabb verzió) használatával. A Titkos kódok API-t is használhatja. A titkos kulcsok nevében nem számítanak különbözőnek a kis- és nagybetűk.

Titkos kulcs létrehozása

A titkos kódok létrehozásának módja attól függ, hogy Azure Key Vault-alapú hatókört vagy Databricks-alapú hatókört használ-e.

Titkos kulcs létrehozása egy Azure Key Vault által támogatott hatókörben

Titkos kulcs létrehozásához az Azure Key Vaultban az Azure Portalt vagy az Azure Titkos kulcs beállítása REST API-t kell használnia. Példa: 4. lépés: Az ügyfél titkos kódjának hozzáadása az Azure Key Vaulthoz.

Azure Key Vault

Titkos kulcs létrehozása a Databricks által támogatott hatókörben

Ez a szakasz azt ismerteti, hogyan hozhat létre titkos kulcsokat a Databricks CLI (0.205-ös vagy újabb verzió) vagy jegyzetfüzetben a Databricks SDK for Pythonhasználatával. A Titkos kódok API-t is használhatja. A titkos kulcsok nevében nem számítanak különbözőnek a kis- és nagybetűk.

Databricks parancssori felület

Ha egy Databricks által támogatott hatókörben hoz létre titkos kulcsot, a titkos kulcs értékét háromféleképpen adhatja meg:

  • Adja meg az értéket sztringként a –string-value jelölővel.
  • Írja be a titkos kódot, amikor a rendszer interaktívan kéri (egysoros titkos kulcsok).
  • Adja át a titkos kódot standard bemenettel (többsoros titkos kódok).

Példa:

databricks secrets put-secret --json '{
  "scope": "<scope-name>",
  "key": "<key-name>",
  "string_value": "<secret>"
}'

Ha többsoros titkos kulcsot hoz létre, standard bemenettel továbbíthatja a titkos kódot. Példa:

(cat << EOF
this
is
a
multi
line
secret
EOF
) | databricks secrets put-secret <scope-name> <key-name>

Databricks SDK for Python

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

w.secrets.put_secret("<secret_scope>","<key-name>",string_value ="<secret>")

Titkos kulcs beolvasása

A titkos kódok jegyzetfüzetben vagy feladatban való olvasásához a Titkos kulcsok segédprogramot (dbutils.secrets)kell használnia. Példa:

password = dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")

Titkok listázása

Titkos kódok listázása egy adott hatókörben:

databricks secrets list-secrets <scope-name>

A válasz metaadatokat jelenít meg a titkos kódokról, például a titkos kulcsok neveiről. Az Titkok segédprogramját (dbutils.secrets) egy jegyzetfüzetben vagy feladatban használja a metaadatok listázásához. Példa:

dbutils.secrets.list('my-scope')

Titkos kulcs törlése

Titkos kulcs törlése egy hatókörből a Databricks parancssori felületével:

databricks secrets delete-secret <scope-name> <key-name>

A Titkos kódok API-t is használhatja.

Ha törölni szeretne egy titkos kulcsot az Azure Key Vault által támogatott hatókörből, használja az Azure SetSecret REST API-t vagy az Azure Portal felhasználói felületét.

Titkos kulcs hatókörének engedélyeinek kezelése

Alapértelmezés szerint a titkos kulcs hatóköreit létrehozó felhasználó megkapja a MANAGE engedélyt. Ez lehetővé teszi, hogy a hatókör létrehozója beolvassa a hatókör titkos kulcsait, titkos kulcsokat írjon a hatókörbe, és kezelje a hatókörre vonatkozó engedélyeket.

Feljegyzés

A titkos ACL-ek a hatókör szintjén vannak. Ha Azure Key Vault által támogatott hatóköröket használ, a hatókörhöz hozzáférést kapó felhasználók hozzáférhetnek az Azure Key Vault összes titkos kulcsához. A hozzáférés korlátozásához használjon külön Azure Key Vault-példányokat.

Ez a szakasz azt ismerteti, hogyan kezelheti a titkos hozzáférés-vezérlést a Databricks CLI (0.205-ös vagy újabb verzió) használatával. A Titkos kódok API-t is használhatja. A titkos jogosultsági szintekről lásd: Titkos ACL-ek

Felhasználói engedélyek megadása titkos hatókörre

Ha felhasználói engedélyeket szeretne adni egy titkos hatókörhöz a Databricks parancssori felületével:

databricks secrets put-acl <scope-name> <principal> <permission>

A már alkalmazott engedéllyel rendelkező egyszerű felhasználóra vonatkozó eltitkosítási kérés felülírja a meglévő engedélyszintet.

A principal mező egy meglévő Azure Databricks-tagot határoz meg. A felhasználó az e-mail-címével, egy szolgáltatásnévvel applicationId és egy csoport nevével van megadva. További információ: Principal.

Titkos kulcs hatókörének engedélyeinek megtekintése

Az adott titkos kulcs hatókörének összes engedélyének megtekintése:

databricks secrets list-acls <scope-name>

Egy adott titkos hatókörhöz tartozó engedélyek megszerzése egy főfelhasználó számára:

databricks secrets get-acl <scope-name> <principal>

Ha nem létezik ACL az adott taghoz és hatókörhöz, a kérés meghiúsul.

Titkos kulcs hatókörére vonatkozó engedély törlése

Ha törölni szeretne egy titkos kulcs hatókörére vonatkozó engedélyt egy adott titkos kulcs hatókörére vonatkozóan:

databricks secrets delete-acl <scope-name> <principal>

Titkos kód újrakódosítása

A hitelesítő adatok Azure Databricks-titkos kulcsként való tárolása megkönnyíti a hitelesítő adatok védelmét jegyzetfüzetek és feladatok futtatásakor. A titkos kódokat azonban könnyen kinyomtathatja a szabványos kimeneti pufferekbe, vagy megjelenítheti az értéket a változók hozzárendelése során.

Ennek megakadályozása érdekében az Azure Databricks a dbutils.secrets.get()használatával beolvasott titkos értékeket újrakódozza. Ha a jegyzetfüzet cellakimenetében jelenik meg, a titkos értékek [REDACTED]-nal lesznek helyettesítve.

Ha például egy változót titkos értékre állít be dbutils.secrets.get() használatával, majd kinyomtatja a változót, a változó helyébe [REDACTED]kerül.

Figyelmeztetés

A jegyzetfüzetcellák kimenetének titkos újrakódosítása csak a literálokra vonatkozik. A titkos kód újrakódolt funkciója nem akadályozza meg a titkos literál szándékos és önkényes átalakítását. A titkos kódok megfelelő szabályozásának biztosításához hozzáférés-vezérlési listákat kell használnia, a parancsok futtatásához szükséges engedélyek korlátozásához. Ez megakadályozza a megosztott jegyzetfüzet-környezetekhez való jogosulatlan hozzáférést.