Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Mnoho pracovních postupů vyžaduje citlivé informace, jako jsou přihlašovací údaje, klíče rozhraní API a tokeny. Místo přímého zadávání těchto hodnot do poznámkových bloků nebo jejich ukládání ve formátu prostého textu je můžete bezpečně uložit pomocí tajných kódů Databricks a odkazovat na ně v poznámkových blocích a úlohách. Tento přístup vylepšuje zabezpečení a zjednodušuje správu přihlašovacích údajů. Tato stránka obsahuje přehled tajných kódů Databricks.
Poznámka:
Databricks doporučuje nakonfigurovat přístup k datům v cloudovém úložišti pomocí katalogu Unity. Viz Připojení ke cloudovému úložišti objektů pomocí katalogu Unity.
Přehled tajemství
Konfigurace a používání tajných kódů:
- Vytvořte tajný rozsah. Tajný prostor je kolekce tajemství identifikovaná názvem.
- Přidat tajemství do rozsahu
- Přiřaďte oprávnění k tajnému oboru.
- Vkládejte tajnosti do svého kódu.
Kompletní příklad použití tajných kódů v pracovních postupech najdete v tématu Kurz: Vytvoření a použití tajného kódu Databricks. Pokud chcete tajný kód použít ve vlastnosti konfigurace Sparku nebo proměnné prostředí, přečtěte si téma Použití tajného kódu ve vlastnosti konfigurace Sparku nebo proměnné prostředí.
Varování
Správci pracovních prostorů, tvůrci tajných kódů a uživatelé, kteří mají udělená oprávnění, můžou přistupovat k tajným kódům Databricks a číst je. I když se Databricks pokouší v výstupech poznámkového bloku redactovat hodnoty tajných kódů, není možné těmto uživatelům úplně zabránit v prohlížení tajného obsahu. Vždy pečlivě přiřazujte tajná přístupová oprávnění, abyste ochránili citlivé informace.
Správa oborů tajných kódů
Tajný prostor je kolekce tajemství identifikovaná názvem. Databricks doporučuje sladit rozsahy tajných kódů s rolemi nebo aplikacemi, nikoli s jednotlivci.
Existují dva typy tajného rozsahu:
- Podporováno službou Azure Key Vault: Můžete odkazovat na tajemství uložená v Azure Key Vault pomocí oborů tajemství podporovaných službou Azure Key Vault. Obor tajných kódů podporovaný službou Azure Key Vault je rozhraní pouze pro čtení k Key Vault. Musíte spravovat tajnosti v oborech tajemství podporovaných službou Azure Key Vault v Azure.
- Podporováno Databricks: Úložiště tajemství podporované službou Databricks je uložené v šifrované databázi vlastněné a spravované službou Azure Databricks.
Po vytvoření oboru tajných kódů můžete uživatelům přiřadit oprávnění k udělení přístupu ke čtení, zápisu a správě oborů tajných kódů.
Vytvoření oboru tajných kódů založených na službě Azure Key Vault
Tato část popisuje, jak vytvořit obor tajných kódů založený na službě Azure Key Vault pomocí webu Azure Portal a uživatelského rozhraní pracovního prostoru Azure Databricks. Pomocí příkazového řádku Databricks můžete také vytvořit tajnou oblast s podporou Azure Key Vault.
Požadavky
- Musíte mít instanci služby Azure Key Vault. Pokud nemáte instanci trezoru klíčů, postupujte podle pokynů v tématu Vytvoření služby Key Vault pomocí webu Azure Portal.
- V instanci Azure Key Vault, kterou chcete použít k zabezpečení oboru tajných údajů, musíte mít roli Key Vault Contributor, Přispěvatel nebo Vlastník.
Poznámka:
Vytvoření oblasti tajných kódů podporované Azure Key Vaultem vyžaduje roli Contributor nebo vlastníka v instanci trezoru klíčů Azure, i přesto, že služba Azure Databricks již měla k trezoru klíčů přístup.
Pokud trezor klíčů existuje v jiném tenantovi než pracovní prostory Azure Databricks, musí mít uživatel Azure AD, který vytváří obor tajných kódů, oprávnění k vytváření služebních identit v tenantovi trezoru klíčů. V opačném případě dojde k následující chybě:
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"}}
Konfigurace instance služby Azure Key Vault pro Azure Databricks
Přihlaste se k webu Azure Portal, vyhledejte a vyberte instanci trezoru klíčů Azure.
V části Nastavení klikněte na kartu Konfigurace přístupu.
Nastavte model oprávnění na zásada přístupu k trezoru.
Poznámka:
Vytvoření role pro utajenou oblast, která je založená na Azure Key Vault, uděluje oprávnění Get a List pro ID aplikace služby Azure Databricks pomocí přístupových zásad do trezoru klíčů. Model oprávnění řízení přístupu na základě role Azure se v Azure Databricks nepodporuje.
V části Nastavenívyberte Síťové.
V bránách firewall a virtuálních sítích nastavte Povolit přístup z: na Povolit veřejný přístup z konkrétních virtuálních sítí a IP adres.
V části Výjimka zaškrtněte políčko Povolit důvěryhodné služby Microsoft obejít tuto bránu firewall.
Poznámka:
Můžete také nastavit Povolit přístup z: na Povolit veřejný přístup ze všech sítí.
Vytvoření tajného rozsahu s podporou Azure Key Vault
Přejděte na
https://<databricks-instance>#secrets/createScope. Nahraďte<databricks-instance>URL adresou pracovního prostoru pro vaše nasazení Azure Databricks. V této adrese URL se rozlišují malá a velká písmena. NapříkladscopecreateScopemusí používat velká písmenaS).
Zadejte název tajného rozsahu. V názvech rozsahů tajných kódů se nerozlišují malá a velká písmena.
V Spravovat hlavní objekt vyberte Creator nebo Všichni uživatelé pracovního prostoru, chcete určit, kteří uživatelé mají oprávnění SPRAVOVAT v oboru tajných kódů.
Oprávnění MANAGE umožňuje uživatelům číst, zapisovat a udělovat oprávnění k rozsahu. Aby váš účet mohl zvolit Tvůrce, musí mít Plán Premium.
Zadejte název DNS (například
https://databrickskv.vault.azure.net/) a ID prostředku, například:/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKVTyto vlastnosti jsou k dispozici na kartě > služby Azure Key Vault ve vašem Azure portálu.
Klikněte na Vytvořit.
Pomocí příkazu Databricks CLI
databricks secrets list-scopesověřte, že obor byl úspěšně vytvořen.
Vytvoření tajného oboru podporovaného Databricks
Tato část popisuje, jak vytvořit rozsah tajností pomocí Databricks CLI (verze 0.205 a vyšší). Můžete také použít rozhraní API pro tajné kódy.
Názvy oborů tajných kódů:
- Musí být v rámci pracovního prostoru jedinečný.
- Musí obsahovat alfanumerické znaky, pomlčky,
@podtržítka a tečky a nesmí být delší než 128 znaků. - Nerozlišují se malá a velká písmena.
Názvy neveřejných rozsahů se považují za necitlivé a jsou viditelné všem uživatelům v pracovním prostoru.
Chcete-li vytvořit obor pomocí rozhraní příkazového řádku Databricks:
databricks secrets create-scope <scope-name>
Ve výchozím nastavení se obory vytvářejí s oprávněním MANAGE pro uživatele, který obor vytvořil. Jakmile vytvoříte obor tajných kódů založený na Databricks, můžete do něj přidat tajné kódy.
Seznam tajných rozsahů
Zobrazení seznamu existujících oborů v pracovním prostoru pomocí rozhraní příkazového řádku:
databricks secrets list-scopes
Můžete také vypsat tajné rozsahy pomocí rozhraní API Secrets.
Smazat tajnou oblast
Odstraněním rozsahu tajných informací odstraníte všechny tajné informace a ACL (seznamy řízení přístupu) použité v tomto rozsahu. Pokud chcete odstranit obor pomocí rozhraní příkazového řádku, spusťte následující příkaz:
databricks secrets delete-scope <scope-name>
Můžete také odstranit tajný okruh pomocí API pro tajnosti.
Správa tajných kódů
Tajemství je pár klíč-hodnota, který ukládá citlivý materiál pomocí názvu klíče, který je jedinečný v rámci rozsahu tajemství.
Tato část popisuje, jak vytvořit rozsah tajností pomocí Databricks CLI (verze 0.205 a vyšší). Můžete také použít rozhraní API pro tajné kódy. V názvech tajných kódů se nerozlišují malá a velká písmena.
Vytvořit tajemství
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í tajemství v rozsahu, který je založen na službě Azure Key Vault
K vytvoření tajemství ve službě Azure Key Vault použijete Azure Portal nebo Azure Set Secret rozhraní REST API. Příklad najdete v kroku 4: Přidání tajného klíče klienta do služby Azure Key Vault.
Vytvoření tajného kódu v oboru založeném na Databricks
Tato část popisuje, jak vytvořit tajný kód pomocí rozhraní příkazového řádku Databricks (verze 0.205 a novější) nebo v poznámkovém bloku pomocí sady Databricks SDK pro Python. Můžete také použít rozhraní API pro tajné kódy. V názvech tajných kódů se nerozlišují malá a velká písmena.
Rozhraní příkazového řádku Databricks
Když vytvoříte tajný klíč v oboru založeném na Databricks, můžete hodnotu tajného kódu zadat jedním ze tří způsobů:
- Zadejte hodnotu jako řetězec pomocí příznaku -string-value.
- Po zobrazení výzvy zadejte tajný kód interaktivně (jednořádkové tajné kódy).
- Předejte tajný klíč pomocí standardního vstupu (víceřádkové tajné kódy).
Příklad:
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 <scope-name> <key-name>
Databricks SDK pro Python
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
w.secrets.put_secret("<secret_scope>","<key-name>",string_value ="<secret>")
Čtení tajného kódu
Tato část popisuje, jak číst tajný kód pomocí rozhraní příkazového řádku Databricks (verze 0.205 a vyšší) nebo v poznámkovém bloku pomocí nástroje Tajné kódy (dbutils.secrets).
Rozhraní příkazového řádku Databricks
Abyste mohli číst hodnotu tajného kódu pomocí rozhraní příkazového řádku Databricks, musíte dekódovat zakódovanou hodnotu base64. Tuto hodnotu můžete jq extrahovat a base --decode dekódovat:
databricks secrets get-secret <scope-name> <key-name> | jq -r .value | base64 --decode
Nástroj pro správu tajných informací (dbutils.secrets)
password = dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")
Vypsat tajemství
Výpis tajemství v daném rozsahu:
databricks secrets list-secrets <scope-name>
Odpověď zobrazí informace o metadatech týkajících se tajemství, jako jsou názvy klíčů těchto tajemství. K výpisu těchto metadat použijete nástroj Secrets (dbutils.secrets) v poznámkovém bloku nebo úloze. Příklad:
dbutils.secrets.list('my-scope')
Odstranit tajemství
Odstranění tajemství z rozsahu 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.
Správa oprávnění rozsahu tajemství
Ve výchozím nastavení je uživateli, který vytváří tajné rozsahy, uděleno oprávnění SPRAVOVAT. To umožňuje tvůrci oboru číst tajné kódy v oboru, zapisovat tajné kódy do oboru a spravovat oprávnění k oboru.
Poznámka:
Seznamy ACL tajných kódů jsou na úrovni oboru. Pokud používáte obory založené na službě Azure Key Vault, mají uživatelé s uděleným přístupem k oboru přístup ke všem tajným kódům ve službě Azure Key Vault. Pokud chcete omezit přístup, použijte samostatné instance služby Azure Key Vault.
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. Pro úrovně tajného oprávnění viz tajné seznamy ACL.
Udělte uživatelská oprávnění k tajnému rozsahu
Udělení uživatelských oprávnění k tajnému prostoru pomocí příkazového řádku Databricks CLI:
databricks secrets put-acl <scope-name> <principal> <permission>
Vložení žádosti pro principála, 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 je určen pomocí své e-mailové adresy, služební principál pomocí jeho applicationId hodnoty a skupina podle názvu. Další informace naleznete v tématu Principál.
Zobrazit oprávnění oblasti tajemství
Zobrazení všech oprávnění tajného oboru pro daný tajný obor:
databricks secrets list-acls <scope-name>
Chcete-li získat oprávnění pro práci s tajným oborem přiděleným určitému subjektu:
databricks secrets get-acl <scope-name> <principal>
Pokud pro daný objekt zabezpečení a obor neexistuje žádný ACL, tento požadavek selže.
Odstranit oprávnění k tajnému oboru
Pro odstranění oprávnění k oboru tajemství, které bylo aplikováno na subjekt pro daný obor tajemství:
databricks secrets delete-acl <scope-name> <principal>
Redakce tajných informací
Ukládání přihlašovacích údajů jako tajných kódů Azure Databricks usnadňuje ochranu přihlašovacích údajů při spouštění poznámkových bloků a úloh. Je ale snadné omylem vytisknout tajný kód do standardních výstupních vyrovnávacích pamětí nebo zobrazit hodnotu během přiřazení proměnné.
Aby tomu zabránila, Azure Databricks rediguje všechny tajné hodnoty, které se čtou pomocí dbutils.secrets.get() a jsou uvedeny v konfigurační vlastnosti Sparku. Při zobrazení jsou tajné hodnoty nahrazeny znakem [REDACTED].
Pokud například nastavíte proměnnou na hodnotu tajného kódu pomocí dbutils.secrets.get() a pak tuto proměnnou vytisknete, nahradí se tato proměnná [REDACTED].
Varování
Redakce se vztahuje pouze na doslovné tajné hodnoty. Funkce redakce tajných kódů nebrání záměrným a libovolným transformacím tajného literálu. Pokud chcete zajistit správnou kontrolu nad tajnými kódy, měli byste použít seznamy řízení přístupu k omezení oprávnění ke spouštění příkazů. Tím se zabrání neoprávněnému přístupu ke sdíleným kontextům poznámkového bloku.
Redaction tajného kódu v SQL
Azure Databricks se pokouší redigovat všechny příkazy JAZYKa SQL DQL (Data Query Language), které vyvolávají tajnou funkci, včetně odkazovaných zobrazení a uživatelem definovaných funkcí.
secret Při použití funkce se výstup nahradí tam, kde [REDACTED] je to možné. Podobně jako u redigování poznámkového bloku se to týká pouze literálních hodnot, nikoli transformovaných nebo nepřímo odkazovaných tajných informací.
Pro příkazy SQL DML (Data Manipulation Language) umožňuje Azure Databricks tajné vyhledávání, pokud je tajemství považováno za bezpečné – například když je zabalené do kryptografické funkce, jako je sha() nebo aes_encrypt(), které brání uložení nezpracovaných hodnot v nešifrované podobě.
Ověřování tajných kódů v SQL
Azure Databricks také používá ověřování pro blokování příkazů SQL DML, které by mohly vést k ukládání nešifrovaných tajných kódů do tabulek. Analyzátor dotazů se pokusí identifikovat a zabránit těmto scénářům, což pomáhá vyhnout se náhodnému uložení citlivých informací ve formátu prostého textu.