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:
- 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.
- Titkos kulcsok hozzáadása a hatókörhöz
- Engedélyek hozzárendelése a titkos kulcs hatóköréhez.
- 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
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 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
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űtscope
createScope
S
kell használnia).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.
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 gombra.
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 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.
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.