Tajné kódy

Tajný klíč je pár klíč-hodnota, který ukládá tajný materiál s jedinečným názvem klíče v rámci oboru tajného kódu. Každý obor je omezený na 1 000 tajných kódů. Maximální povolená velikost hodnoty tajného kódu je 128 kB.

Viz také rozhraní API pro tajné kódy.

Vytvoření tajného kódu

V názvech tajných kódů se nerozlišují malá a velká písmena.

Metoda vytvoření tajného kódu závisí na tom, jestli používáte obor založený na službě Azure Key Vault nebo obor založený na Databricks.

Vytvoření tajného kódu v oboru založeném na službě Azure Key Vault

K vytvoření tajného kódu ve službě Azure Key Vault použijete rozhraní REST API sady tajných kódů Azure nebo uživatelské rozhraní webu Azure Portal.

Azure Key Vault

Vytvoření tajného kódu v oboru založeném na Databricks

Vytvoření tajného kódu v oboru založeném na Databricks pomocí rozhraní příkazového řádku Databricks (verze 0.205 a vyšší):

databricks secrets put-secret --json '{
  "scope": "<scope-name>",
  "key": "<key-name>",
  "string_value": "<secret>"
}'

Pokud vytváříte víceřádkový tajný klíč, můžete tajný kód předat pomocí standardního vstupu. Příklad:

(cat << EOF
this
is
a
multi
line
secret
EOF
) | databricks secrets put-secret <secret_scope> <secret_key>

Tajný kód můžete zadat také ze souboru. Další informace o zápisu tajných kódů najdete v tématu Co je rozhraní příkazového řádku Databricks?.

Výpis tajných kódů

Výpis tajných kódů v daném oboru:

databricks secrets list-secrets <scope-name>

Odpověď zobrazí informace o metadatech o tajných klíčích, jako jsou názvy klíčů tajných kódů. K výpisu těchto metadat použijete nástroj Tajné kódy (dbutils.secrets) v poznámkovém bloku nebo úloze. Příklad:

dbutils.secrets.list('my-scope')

Čtení tajného kódu

Tajné kódy vytváříte pomocí rozhraní REST API nebo rozhraní příkazového řádku, ale ke čtení tajného kódu musíte použít nástroj Secrets (dbutils.secrets) v poznámkovém bloku nebo úloze.

Odstranění tajného kódu

Odstranění tajného kódu z oboru pomocí rozhraní příkazového řádku Databricks:

databricks secrets delete-secret <scope-name> <key-name>

Můžete také použít rozhraní API pro tajné kódy.

Pokud chcete odstranit tajný klíč z oboru zálohovaného službou Azure Key Vault, použijte rozhraní REST API služby Azure SetSecret nebo uživatelské rozhraní webu Azure Portal.

Použití tajného klíče ve vlastnosti konfigurace Sparku nebo proměnné prostředí

Důležité

Tato funkce je ve verzi Public Preview.

Poznámka:

K dispozici v Databricks Runtime 6.4 Rozšířená podpora a vyšší.

Na tajný kód můžete odkazovat ve vlastnosti konfigurace Sparku nebo proměnné prostředí. Načtené tajné kódy se reaktují z výstupu poznámkového bloku a z protokolů ovladače Sparku a exekutoru.

Důležité

Při odkazování na tajné kódy ve vlastnosti konfigurace Sparku nebo proměnné prostředí mějte na paměti následující bezpečnostní důsledky:

  • Pokud v clusteru není povolené řízení přístupu k tabulce, může každý uživatel s oprávněními Připojit ke clusteru nebo oprávnění Spustit v poznámkovém bloku číst vlastnosti konfigurace Sparku z poznámkového bloku. To zahrnuje uživatele, kteří nemají přímé oprávnění ke čtení tajného kódu. Databricks doporučuje povolit řízení přístupu k tabulce ve všech clusterech nebo spravovat přístup k tajným kódům pomocí oborů tajných kódů.

  • I když je povolené řízení přístupu k tabulce, můžou uživatelé s oprávněními Připojit ke clusteru nebo Oprávnění Spustit v poznámkovém bloku číst proměnné prostředí clusteru z poznámkového bloku. Databricks nedoporučuje ukládat tajné kódy do proměnných prostředí clusteru, pokud nesmí být k dispozici všem uživatelům v clusteru.

  • Tajné kódy nejsou redakčně upraveny z protokolu stdout ovladačů Sparku a stderr datových proudů. Aby bylo možné chránit citlivá data, protokoly ovladačů Sparku se ve výchozím nastavení dají zobrazit jenom uživatelům s oprávněním CAN MANAGE pro úlohu, režim přístupu jednoho uživatele a clustery režimu sdíleného přístupu. Chcete-li uživatelům, kteří mají oprávnění PŘIPOJIT SE K nebo MŮŽE RESTARTOVAT, můžete zobrazit protokoly v těchto clusterech, nastavte v konfiguraci clusteru následující vlastnost konfigurace Sparku: spark.databricks.acl.needAdminPermissionToViewLogs false

    V clusterech s režimem sdíleného přístupu bez izolace můžou uživatelé zobrazit protokoly ovladačů Spark s oprávněním PŘIPOJIT NEBO MOHOU SPRAVOVAT. Chcete-li omezit, kdo může číst protokoly pouze uživatelům s oprávněním CAN MANAGE, nastavte na truehodnotu spark.databricks.acl.needAdminPermissionToViewLogs .

Požadavky a omezení

Následující požadavky a omezení platí pro odkazování na tajné kódy ve vlastnostech konfigurace Sparku a proměnných prostředí:

  • Vlastníci clusteru musí mít oprávnění KE ČTENÍ v oboru tajných kódů.
  • Pouze vlastníci clusteru můžou přidat odkaz na tajný klíč ve vlastnosti konfigurace Sparku nebo proměnné prostředí a upravit existující obor a název. Vlastníci mění tajný kód pomocí rozhraní API tajných kódů. Aby se tajný kód znovu načítá, musíte cluster restartovat.
  • Uživatelé s oprávněníM CAN MANAGE v clusteru mohou odstranit tajnou vlastnost konfigurace Sparku nebo proměnnou prostředí.

Syntaxe pro odkazování na tajné kódy ve vlastnosti konfigurace Sparku nebo proměnné prostředí

Tajný klíč můžete odkazovat pomocí libovolného platného názvu proměnné nebo vlastnosti konfigurace Sparku. Azure Databricks umožňuje speciální chování proměnných odkazujících na tajné kódy na základě syntaxe nastavené hodnoty, nikoli názvu proměnné.

Syntaxe vlastnosti konfigurace Sparku nebo hodnoty proměnné prostředí musí být {{secrets/<scope-name>/<secret-name>}}. Hodnota musí začínat {{secrets/ a končit .}}

Části proměnné vlastnosti konfigurace Sparku nebo proměnné prostředí jsou:

  • <scope-name>: Název oboru, ve kterém je tajný klíč přidružený.
  • <secret-name>: Jedinečný název tajného klíče v oboru.

Například {{secrets/scope1/key1}}.

Poznámka:

  • Mezi složenou závorkami by neměly být mezery. Pokud existují mezery, považují se za součást oboru nebo názvu tajného kódu.

Odkazování na tajný klíč s vlastností konfigurace Sparku

Odkaz na tajný kód zadáte ve vlastnosti konfigurace Sparku v následujícím formátu:

spark.<property-name> {{secrets/<scope-name>/<secret-name>}}

Jakákoli konfigurace <property-name> Sparku může odkazovat na tajný kód. Každá vlastnost konfigurace Sparku může odkazovat pouze na jeden tajný klíč, ale můžete nakonfigurovat více vlastností Sparku tak, aby odkazovali na tajné kódy.

Příklad:

Nastavíte konfiguraci Sparku tak, aby odkazovat na tajný klíč:

spark.password {{secrets/scope1/key1}}

Pokud chcete načíst tajný kód v poznámkovém bloku a použít ho:

Python

spark.conf.get("spark.password")

SQL

SELECT ${spark.password};

Odkaz na tajný klíč v proměnné prostředí

Cestu tajného kódu zadáte v proměnné prostředí v následujícím formátu:

<variable-name>={{secrets/<scope-name>/<secret-name>}}

Pokud odkazujete na tajný klíč, můžete použít libovolný platný název proměnné. Přístup k tajným kódům odkazovaným v proměnných prostředí je určen oprávněními uživatele, který cluster nakonfiguroval. Tajné kódy uložené v proměnných prostředí jsou přístupné všem uživatelům clusteru, ale jsou redactovány z prostého textu, jako jsou tajné kódy odkazované jinde.

Proměnné prostředí, které odkazují na tajné kódy, jsou přístupné z inicializačního skriptu s oborem clusteru. Viz Nastavení a použití proměnných prostředí s inicializačními skripty.

Příklad:

Proměnnou prostředí nastavíte tak, aby odkazovat na tajný klíč:

SPARKPASSWORD={{secrets/scope1/key1}}

Pokud chcete načíst tajný kód v inicializačním skriptu, získejte přístup $SPARKPASSWORD pomocí následujícího vzoru:

if [ -n "$SPARKPASSWORD" ]; then
  # code to use ${SPARKPASSWORD}
fi

Správa oprávnění k tajným kódům

Tato část popisuje, jak spravovat řízení přístupu k tajným kódům pomocí rozhraní příkazového řádku Databricks? (verze 0.205 a vyšší). Můžete také použít rozhraní API pro tajné kódy nebo zprostředkovatele Databricks Terraform. Úrovně oprávnění tajných kódů najdete v tématu Seznamy ACL tajných kódů.

Vytvoření tajného seznamu ACL

Vytvoření seznamu ACL tajného kódu pro daný obor tajných kódů pomocí rozhraní příkazového řádku Databricks (starší verze)

databricks secrets put-acl <scope-name> <principal> <permission>

Vytvoření žádosti o vložení objektu zabezpečení, který už má použité oprávnění, přepíše stávající úroveň oprávnění.

Pole principal určuje existující objekt zabezpečení Azure Databricks. Uživatel se zadává pomocí své e-mailové adresy, instančního objektu s použitím jeho applicationId hodnoty a skupiny s názvem skupiny.

Zobrazení tajných seznamů ACL

Zobrazení všech seznamů ACL tajných kódů pro daný obor tajných kódů:

databricks secrets list-acls <scope-name>

Získání tajného seznamu ACL použitého u objektu zabezpečení pro daný obor tajného kódu:

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

Pokud pro daný objekt zabezpečení a obor neexistuje žádný seznam ACL, tento požadavek selže.

Odstranění tajného seznamu ACL

Odstranění tajného seznamu ACL použitého na objekt zabezpečení pro daný obor tajného kódu:

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