Sdílet prostřednictvím


Správa tajných kódů

Někdy je pro přístup k datům nutné, abyste se v externích zdrojích ověřili prostřednictvím JDBC. Místo přímého zadávání přihlašovacích údajů do poznámkového bloku můžete pomocí tajných kódů Azure Databricks ukládat přihlašovací údaje a odkazovat na ně v poznámkových blocích a úlohách. Tento článek obsahuje přehled tajných kódů Azure Databricks.

Přehled tajných kódů

Konfigurace a používání tajných kódů:

  1. Vytvořte rozsah tajných kódů. Obor tajného kódu je kolekce tajných kódů identifikovaných názvem.
  2. Přidání tajných kódů do rozsahu
  3. Přiřaďte oprávnění k oboru tajného kódu.
  4. Přístup k tajným kódům pomocí nástrojů Databricks, viz nástroj Tajné kódy (dbutils.secrets).

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í.

Upozorňující

Správci, tvůrci tajných kódů a uživatelé s uděleným oprávněním mohou číst tajné kódy Azure Databricks. Databricks se snaží redigovat tajné hodnoty, které se můžou zobrazovat v poznámkových blocích, ale není možné těmto uživatelům zabránit v čtení těchto hodnot. Podívejte se na tajnou redakci.

Správa oborů tajných kódů

Obor tajného kódu je kolekce tajných kódů identifikovaných názvem. Databricks doporučuje sladit rozsahy tajných kódů s rolemi nebo aplikacemi, nikoli s jednotlivci.

Obor tajných kódů má dva typy:

  • Založené na službě Azure Key Vault: Tajné kódy uložené ve službě Azure Key Vault můžete odkazovat pomocí oborů tajných kódů založených na službě Azure Key Vault. Obor tajných kódů založený na službě Azure Key Vault je rozhraní jen pro čtení se službou Key Vault. Tajné kódy musíte spravovat v oborech tajných kódů založených na službě Azure Key Vault v Azure.
  • Databricks: Obor tajných kódů založený na Databricks je uložený v šifrované databázi vlastněné a spravované službou Azure Databricks.

Po vytvoření oboru tajného kódu můžete uživatelům přiřadit oprávnění k udělení přístupu ke čtení, zápisu a správě oborů scret.

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í rozhraní příkazového řádku Databricks můžete také vytvořit obor tajných kódů založený na službě 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 služby Azure Key Vault, kterou chcete použít k zálohování oboru tajných kódů, musíte mít roli Přispěvatel, Přispěvatel nebo Vlastník služby Key Vault.

Poznámka:

Vytvoření oboru tajných kódů založeného na službě Azure Key Vault vyžaduje roli přispěvatele nebo vlastníka v instanci trezoru klíčů Azure, i když byla dříve službě Azure Databricks udělen přístup k trezoru klíčů.

Pokud trezor klíčů existuje v jiném tenantovi než pracovní prostor Azure Databricks, musí mít uživatel Azure AD, který vytváří obor tajných kódů, oprávnění k vytváření instančních objektů 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

  1. Přihlaste se k webu Azure Portal, vyhledejte a vyberte instanci trezoru klíčů Azure.

  2. V části Nastavení klikněte na kartu Konfigurace aplikace Access.

  3. 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.

  4. V části Nastavenívyberte Síťové.

  5. V bránách firewall a virtuálních sítích nastavit Povolit přístup z: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í rozsahu tajných kódů ve službě Azure Key Vault

  1. Přejděte na https://<databricks-instance>#secrets/createScope . Nahraďte <databricks-instance> adresou URL pracovního prostoru vašeho nasazení Azure Databricks. V této adrese URL se rozlišují malá a velká písmena. Například scopecreateScope musí používat velká písmena S).

    Vytvoření oboru

  2. Zadejte název oboru tajného kódu. V názvech rozsahů tajných kódů se nerozlišují malá a velká písmena.

  3. 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 mohl váš účet zvolit Tvůrce, musí mít plán Premium.

  4. Zadejte název DNS (napříkladhttps://databrickskv.vault.azure.net/) a ID prostředku, například:

    /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/databricks-rg/providers/Microsoft.KeyVault/vaults/databricksKV
    

    Tyto vlastnosti jsou k dispozici na > nastavení služby Azure Key Vault na webu Azure Portal.

  5. Klikněte na Vytvořit.

  6. Pomocí příkazu Rozhraní příkazového řádkudatabricks secrets list-scopes Databricks ověřte, že se obor úspěšně vytvořil.

Vytvoření oboru tajných kódů založených na Databricks

Tato část popisuje, jak vytvořit obor tajných kódů pomocí rozhraní příkazového řádku Databricks (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 oborů tajných kódů se považují za nerozlišené a jsou čitelné všemi uživateli v pracovním prostoru.

Vytvoření oboru 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.

Odstranění rozsahu tajných kódů

Odstraněním oboru tajných kódů odstraníte všechny tajné kódy a seznamy ACL použité v oboru. Pokud chcete odstranit obor pomocí rozhraní příkazového řádku, spusťte následující příkaz:

databricks secrets delete-scope <scope-name>

Rozsah tajných kódů můžete také odstranit pomocí rozhraní API pro tajné kódy.

Správa tajných kódů

Tajný klíč je pár klíč-hodnota, který ukládá citlivý materiál pomocí názvu klíče, který je jedinečný v rámci oboru tajného kódu.

Tato část popisuje, jak vytvořit obor tajností pomocí Databricks rozhraní příkazového řádku (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ření tajného kódu

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í 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.

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

Ke čtení tajného kódu v poznámkovém bloku nebo úloze musíte použít nástroj Secrets (dbutils.secrets). Příklad:

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 o tajných klíčích, jako jsou názvy klíčů tajných kódů. 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')

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.

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

Ve výchozím nastavení má uživatel, který vytváří obory tajných kódů, udělené 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. Úrovně oprávnění tajných kódů najdete v tématu Seznamy ACL tajných kódů.

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>

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. Další informace naleznete v tématu Objekt zabezpečení.

Zobrazení oprávnění oboru tajných kódů

Zobrazení všech oprávnění oboru tajných kódů pro daný obor tajných kódů:

databricks secrets list-acls <scope-name>

Získání oprávnění oboru tajných kódů použitých 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í oprávnění k oboru tajných kódů

Odstranění oprávnění oboru tajného kódu použitého na objekt zabezpečení pro daný obor tajného kódu:

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

Redaction tajného kódu

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 bylo zabráněno, Azure Databricks rediguje všechny tajné hodnoty, které jsou čteny pomocí dbutils.secrets.get(). Při zobrazení ve výstupu buňky poznámkového bloku se tajné hodnoty nahradí [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].

Upozorňující

Redakce tajného kódu pro výstup buňky poznámkového bloku platí jenom pro literály. 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.