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.

Azure Key Vault

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 és stderr 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őt true: .

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>