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


Titkos kódok kezelése

A külső adatforrások JDBC-n keresztüli elérésekor gyakran szükséges a hitelesítés. Ahelyett, hogy közvetlenül a jegyzetfüzetekbe ad meg hitelesítő adatokat, biztonságosan tárolhatja a hitelesítő adatokat a Databricks titkos kulcsainak használatával, és hivatkozhat rájuk a jegyzetfüzetekben és a feladatokban. Ez a megközelítés növeli a biztonságot, és leegyszerűsíti a hitelesítő adatok kezelését. Ez az oldal áttekintést nyújt a Databricks titkokról.

Feljegyzés

A Databricks azt javasolja, hogy a Unity Catalog használatával konfigurálja az adatokhoz való hozzáférést a felhőbeli tárolókban. Lásd : Csatlakozás a felhőobjektum-tárolóhoz a Unity Catalog használatával.

Titkos kódok áttekintése

A titkok konfigurálása és használata:

  1. Hozzon létre egy titkos hatókört. A titkos kulcsok hatóköre egy név által azonosított titkos kulcsok gyűjteménye.
  2. Titkos adatok hozzáadása a hatókörhöz
  3. Engedélyek hozzárendelése a titkos kulcs hatóköréhez.
  4. Titkok beillesztése a kódba.

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 munkaterület rendszergazdái, a titkos kódok létrehozói és az engedéllyel rendelkező felhasználók hozzáférhetnek a Databricks titkos kulcsaihoz, és elolvashatják őket. Bár a Databricks megpróbálja kitakarni a titkos értékeket a jegyzetfüzet kimeneteiben, nem lehet teljesen megakadályozni, hogy a felhasználók megtekinthessék a titkos tartalmakat. A bizalmas adatok védelme érdekében mindig gondosan rendeljen titkos hozzáférési engedélyeket.

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 hatókör 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 kulcs hatókörének létrehozása után engedélyeket rendelhet hozzá a felhasználók számára a titkos kulcsok 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ánnyal, kövesse a Key Vault létrehozása az Azure portálon című útmutató utasításait.
  • Az Azure kulcstár-példányon, amelyet használni kíván a titkos hatókör biztosításához, rendelkeznie kell a Key Vault Contributor, Contributor vagy Owner szerepkörrel.

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 kulcstár egy másik bérlőben található, mint az Azure Databricks-munkaterület, akkor az Azure AD-felhasználónak, aki a titkos kulcs hatókörét létrehozza, engedéllyel kell rendelkeznie a kulcstár bérlőjében lévő szolgáltatási főképviselők 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 Az ezen tűzfal megkerüléséhez a megbízható Microsoft-szolgáltatások engedélyezése 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. Ugrás ide: https://<databricks-instance>#secrets/createScope. Cserélje le <databricks-instance> az Azure Databricks üzemelő példányának munkaterületi URL-címére. Ez az URL-cím érzékeny a kis- és nagybetűk különbségére. Például a(z) scopecreateScope esetén nagybetűt kell használni S.

    Hatókör létrehozása

  2. Adja meg a titkos kulcs hatókörének nevét. A titkos hatókörnevek esetében nem számítanak 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.

  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 hatókörök nevei nem érzékenyek, é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.

Titkos 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 nevek esetében nem számítanak 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.

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 nevek esetében nem számítanak 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

Ez a szakasz azt ismerteti, hogyan olvashat titkos kulcsokat a Databricks parancssori felületével (0.205-ös vagy újabb verzió), illetve egy titkos kód segédprogrammal (dbutils.secrets) rendelkező jegyzetfüzetben.

Databricks parancssori felület

Egy titkos kód értékének a Databricks parancssori felülettel való olvasásához dekódolnia kell a base64 kódolású értéket. Az érték kinyerésére és jq dekódolására használhatóbase --decode:

databricks secrets get-secret <scope-name> <key-name> | jq -r .value | base64 --decode

Titkos adatok segédprogram (dbutils.secrets)

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>

Egy már meglévő engedéllyel rendelkező szereplőhöz tartozó put 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 hatókör ö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 hatókörre vonatkozó engedélyt egy adott személy számára:

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

Titkos tartalom eltávolí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 kimazsolázza az összes olyan titkos értéket, amely dbutils.secrets.get() segítségével olvasható és hivatkozva van egy Spark-konfigurációs tulajdonságban. Amikor megjelenik, a titkos kódok értékeit a rendszer lecseréli a következőre [REDACTED]: .

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

Az újraműveltség csak a literális titkos értékekre 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.

Titkos kód újrakódosítása az SQL-ben

Az Azure Databricks megpróbálja újradefiniálni a titkos függvényt meghívó ÖSSZES SQL DQL-parancsot (Data Query Language), beleértve a hivatkozott nézeteket és a felhasználó által definiált függvényeket. Ha a secret függvényt használja, a kimenetet lehetőség szerint lecseréli [REDACTED] a rendszer. A jegyzetfüzet szerkesztéséhez hasonlóan ez csak a szó szerinti értékekre vonatkozik, nem az átalakított vagy közvetetten hivatkozott titkokra.

Az SQL DML (Data Manipulation Language) parancsai esetében az Azure Databricks lehetővé teszi a titkos kereséseket, ha a titkos kulcs biztonságosnak minősül – például olyan titkosítási függvénybe burkolva, mint sha() például vagy aes_encrypt(), amely megakadályozza a nyers értékek titkosítás nélküli tárolását.

Titkos kódok érvényesítése az SQL-ben

Az Azure Databricks érvényesítést is alkalmaz az SQL DML-parancsok blokkolására, amelyek titkosítatlan titkos kulcsok táblákba való mentését eredményezhetik. A lekérdezéselemző megpróbálja azonosítani és megelőzni ezeket a forgatókönyveket, ami segít elkerülni a bizalmas információk véletlen tárolását egyszerű szövegben.