Titkos kódok
A titkos kulcs egy kulcs-érték pár, amely titkos anyagokat tárol, és egy titkos hatókörön belül egyedi kulcsnévvel rendelkezik. Minden hatókör legfeljebb 1000 titkos kulcsra korlátozódik. A titkos kódok maximális megengedett mérete 128 KB.
Lásd még a Secrets API-t.
Titkos kulcs létrehozása
A titkos kulcsok nevében nem számítanak különbözőnek a kis- és nagybetűk.
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 Set Secret REST API-t vagy az Azure Portal felhasználói felületét kell használnia.
Titkos kulcs létrehozása a Databricks által támogatott hatókörben
Titkos kód létrehozása a Databricks által támogatott hatókörben a Databricks parancssori felületével (0.205-ös vagy újabb verzió):
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 <secret_scope> <secret_key>
Titkos kulcsot is megadhat egy fájlból. További információ a titkos kódok írásáról: Mi a Databricks parancssori felület?
Titkos kulcsok 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. A titkos kulcsok segédprogramot (dbutils.secrets) egy jegyzetfüzetben vagy feladatban használja a metaadatok listázásához. Példa:
dbutils.secrets.list('my-scope')
Titkos kulcs beolvasása
Titkos kulcsokat a REST API-val vagy a parancssori felülettel hozhat létre, de a titkos kódok olvasásához a titkos kulcsokat a jegyzetfüzetekben vagy feladatokban a Titkos kulcsok segédprogrammal (dbutils.secrets) kell használnia.
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 kód használata Spark-konfigurációs tulajdonságban vagy környezeti változóban
Fontos
Ez a funkció a nyilvános előzetes verzióban érhető el.
Feljegyzés
Elérhető a Databricks Runtime 6.4 kiterjesztett támogatásában és újabb verziókban.
A Spark konfigurációs tulajdonságában vagy környezeti változójában hivatkozhat egy titkos kódra. A lekért titkos kódok a jegyzetfüzet kimenetéből, valamint a Spark-illesztőprogramokból és a végrehajtói naplókból lesznek újra kiolvasva.
Fontos
Tartsa szem előtt a következő biztonsági következményeket, amikor titkos kulcsokra hivatkozik egy Spark-konfigurációs tulajdonságban vagy környezeti változóban:
Ha a táblahozzáférés-vezérlés nincs engedélyezve egy fürtön, minden olyan felhasználó beolvassa a Spark-konfigurációs tulajdonságokat a jegyzetfüzetből, aki rendelkezik csatolási engedéllyel egy fürthöz vagy futtatási engedélyekkel egy jegyzetfüzeten. Ide tartoznak azok a felhasználók, akik nem rendelkeznek közvetlen engedéllyel a titkos kódok olvasására. A Databricks azt javasolja, hogy engedélyezze a táblák hozzáférés-vezérlését az összes fürtön, vagy titkos kulcsokhoz való hozzáférést titkos hatókörök használatával kezelje.
Még akkor is, ha a táblahozzáférés-vezérlés engedélyezve van, a fürthöz csatolható engedélyekkel vagy a jegyzetfüzet futtatási engedélyeivel rendelkező felhasználók a fürtkörnyezet változóit a jegyzetfüzeten belülről is beolvashatják. A Databricks nem javasolja a titkos kulcsok fürtkörnyezeti változókban való tárolását, ha nem lehetnek elérhetők a fürt összes felhasználója számára.
A Titkos kulcsok nem jelennek meg a Spark-illesztőprogram naplójából
stdout
ésstderr
streamjeiből. A bizalmas adatok védelme érdekében a Spark-illesztőprogramok naplói alapértelmezés szerint csak a FELADATKEZELÉS engedéllyel, az egyfelhasználós hozzáférési móddal és a megosztott hozzáférési módú fürtökkel rendelkező felhasználók számára tekinthetők meg. Ha engedélyezni szeretné, hogy a CAN ATTACH TO vagy CAN RESTART engedéllyel rendelkező felhasználók megtekinthetik a fürtök naplóit, állítsa be a következő Spark-konfigurációs tulajdonságot a fürtkonfigurációban:spark.databricks.acl.needAdminPermissionToViewLogs false
Nincs elkülönítési megosztott hozzáférési módú fürt, a Spark-illesztőprogram-naplókat azok a felhasználók tekinthetik meg, aki rendelkezik CSATOLÁSI vagy KEZELÉSI engedéllyel. Ha csak a CAN MANAGE engedéllyel rendelkező felhasználókra szeretné korlátozni a naplók olvasását, állítsa be
spark.databricks.acl.needAdminPermissionToViewLogs
a következőttrue
: .
Követelmények és korlátozások
A Spark konfigurációs tulajdonságaiban és környezeti változóiban a titkos kódokra való hivatkozásra az alábbi követelmények és korlátozások vonatkoznak:
- A fürttulajdonosoknak olvasási engedéllyel kell rendelkezniük a titkos kód hatókörében.
- Csak a fürttulajdonosok adhatnak hozzá egy titkos kódra mutató hivatkozást egy Spark-konfigurációs tulajdonságban vagy környezeti változóban, és szerkeszthetik a meglévő hatókört és nevet. A tulajdonosok a Titkos kódok API használatával módosítanak egy titkos kulcsot. A titkos kód ismételt lekéréséhez újra kell indítania a fürtöt.
- A fürtön a CAN MANAGE engedéllyel rendelkező felhasználók törölhetik a titkos Spark-konfigurációs tulajdonságot vagy környezeti változót.
A Titkos kulcsokra való hivatkozás szintaxisa Spark-konfigurációs tulajdonságban vagy környezeti változóban
Egy titkos kódra bármely érvényes változónév vagy Spark-konfigurációs tulajdonság használatával hivatkozhat. Az Azure Databricks speciális viselkedést tesz lehetővé a titkos kulcsokra hivatkozó változók esetében a beállított érték szintaxisa alapján, nem pedig a változó neve alapján.
A Spark konfigurációs tulajdonságának vagy a környezeti változó értékének szintaxisának meg kell lennie {{secrets/<scope-name>/<secret-name>}}
. Az értéknek a következővel {{secrets/
kell kezdődnie, és azzal kell végződnie }}
.
A Spark konfigurációs tulajdonságának vagy környezeti változójának változó részei a következők:
<scope-name>
: Annak a hatókörnek a neve, amelyben a titkos kód társítva van.<secret-name>
: A hatókörben lévő titkos kód egyedi neve.
Például: {{secrets/scope1/key1}}
.
Feljegyzés
- A kapcsos zárójelek között nem szabad szóközöket elhelyezni. Ha vannak szóközök, a rendszer a hatókör vagy titkos kódnév részeként kezeli őket.
Titkos kód hivatkozása Spark-konfigurációs tulajdonsággal
A Spark konfigurációs tulajdonságában a következő formátumban adhat meg egy titkos kódra mutató hivatkozást:
spark.<property-name> {{secrets/<scope-name>/<secret-name>}}
Bármely Spark-konfiguráció <property-name>
hivatkozhat egy titkos kódra. Minden Spark-konfigurációs tulajdonság csak egy titkos kódra hivatkozhat, de több Spark-tulajdonságot is konfigurálhat titkos kulcsokra való hivatkozáshoz.
Példa:
Beállít egy Spark-konfigurációt egy titkos kódra való hivatkozáshoz:
spark.password {{secrets/scope1/key1}}
A jegyzetfüzet titkos kódjának lekérése és használata:
Python
spark.conf.get("spark.password")
SQL
SELECT ${spark.password};
Titkos kód hivatkozása környezeti változóban
Titkos elérési utat a következő formátumban adhat meg egy környezeti változóban :
<variable-name>={{secrets/<scope-name>/<secret-name>}}
Titkos kódra való hivatkozáskor bármilyen érvényes változónevet használhat. A környezeti változókban hivatkozott titkos kódokhoz való hozzáférést a fürtöt konfiguráló felhasználó engedélyei határozzák meg. A környezeti változókban tárolt titkos kulcsok a fürt minden felhasználója számára elérhetők, de egyszerű szöveges megjelenítésből, például máshol hivatkozott titkos kódokból vannak újrakódoltak.
A titkos kulcsokra hivatkozó környezeti változók fürt hatókörű init-szkriptből érhetők el. Lásd: Környezeti változók beállítása és használata init-szkriptekkel.
Példa:
Beállít egy környezeti változót egy titkos kódra való hivatkozáshoz:
SPARKPASSWORD={{secrets/scope1/key1}}
A titkos kód init szkriptben való lekéréséhez az alábbi minta használatával férhet hozzá $SPARKPASSWORD
:
if [ -n "$SPARKPASSWORD" ]; then
# code to use ${SPARKPASSWORD}
fi
Titkos kódok engedélyeinek kezelése
Ez a szakasz azt ismerteti, hogyan kezelheti a titkos hozzáférés-vezérlést a Mi az a Databricks PARANCSSOR? (0.205-ös vagy újabb verzió) használatával. Használhatja a Secrets API-t vagy a Databricks Terraform-szolgáltatót is. A titkos jogosultsági szintekről lásd: Titkos ACL-ek
Titkos ACL létrehozása
Titkos ACL létrehozása egy adott titkos hatókörhöz a Databricks parancssori felületével (örökölt)
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.
Titkos ACL-ek megtekintése
Az adott titkos kulcs hatóköréhez tartozó titkos ACL-ek megtekintése:
databricks secrets list-acls <scope-name>
A titkos ACL alkalmazásának lekérése egy tagra egy adott titkos kulcs hatóköréhez:
databricks secrets get-acl <scope-name> <principal>
Ha nem létezik ACL az adott taghoz és hatókörhöz, a kérés sikertelen lesz.
Titkos ACL törlése
Egy adott titkos kulcs hatókörére alkalmazott titkos ACL törlése:
databricks secrets delete-acl <scope-name> <principal>
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: