Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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:
- 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.
- Titkos adatok hozzáadása a hatókörhöz
- Engedélyek hozzárendelése a titkos kulcs hatóköréhez.
- 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
Jelentkezzen be az Azure Portalra, keresse meg és válassza ki az Azure Key Vault-példányt.
A Beállítások területen kattintson az Access konfigurációs lapjára.
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.
A Beállításokterületen válassza a Hálózatkezelésilehetőséget.
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
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)scope
createScope
esetén nagybetűt kell használniS
.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.
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.
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.
A Databricks CLI-paranccsal
databricks 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.