Řízení externího přístupu k datům v katalogu Unity

Důležité

Tato funkce je ve verzi Public Preview.

Tip

Informace o tom, jak číst data Azure Databricks pomocí Microsoft Fabric, najdete v tématu Použití Microsoft Fabric ke čtení dat registrovaných v Katalogu Unity.

Tento článek popisuje, jak řídit přístup k datům v Azure Databricks, když moduly externího zpracování používají otevřená rozhraní API katalogu Unity nebo rozhraní ICEBERG API pro přístup k datům, konkrétně když moduly používají funkci předávání přihlašovacích údajů katalogu Unity k získání přístupu.

Řízení přístupu popsané v tomto článku se zabývá scénáři, kdy se dočasné přihlašovací údaje používají ke čtení dat z katalogů Unity pomocí externích modulů a rozhraní, jako jsou:

  • Rozhraní REST API icebergu
  • Microsoft Fabric
  • duckDB
  • Apache Spark a Trino

Poznámka:

Katalog Unity implementuje rozhraní ICEBERG REST API prostřednictvím Delta Lake UniForm. Je to alternativní způsob, jak klientům Icebergu poskytnout přístup jen pro čtení k tabulkám Delta v katalogu Unity. Viz Použití uniformu ke čtení tabulek Delta s klienty Iceberg.

Přehled prodejních přihlašovacích údajů a udělení přístupu k externímu modulu

Pokud chcete použít externí modul pro přístup k datům registrovaným v metastore katalogu Unity, musíte požádat o krátkodobé přihlašovací údaje pomocí rozhraní REST API katalogu Unity. Proces, podle kterého katalog Unity uděluje toto přihlašovací údaje, se nazývá ověření přihlašovacích údajů.

Aby bylo možné udělit dočasné přihlašovací údaje, musí mít objekt zabezpečení Azure Databricks (uživatel, skupina nebo instanční objekt), který požadavek EXTERNAL USE SCHEMA provede, oprávnění ke schématu obsahujícímu tabulku, ke které chce získat přístup z externího modulu. Metastor katalogu Unity, který obsahuje schéma, musí být také explicitně povolen pro externí přístup.

Když se privilegovanému objektu udělí dočasné přihlašovací údaje, obdrží řetězec tokenu krátkodobého přístupu a adresu URL cloudového úložiště, kterou můžou uživatelé externího modulu použít pro přístup k datovému objektu (tabulce) z umístění cloudového úložiště. Způsob použití přihlašovacích údajů a tokenu externím modulem je specifický pro externí modul a není zde popsaný.

Externí modul a konfigurace katalogu Unity Azure Databricks musí splňovat také specifické požadavky na síť, které jsou uvedeny v následujících částech.

Požadavky

Tato část obsahuje seznam síťových konfigurací, možností metastoru katalogu Unity, typů tabulek a oprávnění vyžadovaných pro zabezpečený přístup k datovým objektům katalogu Unity z externích modulů pomocí otevřených rozhraní API katalogu Unity nebo rozhraní ICEBERG REST API.

Požadavky na síť

  • Pokud chcete získat přístup k pracovnímu prostoru Azure Databricks pomocí rozhraní Open API katalogu Unity nebo rozhraní ICEBERG REST API, musí být adresa URL pracovního prostoru přístupná modulu provádějícímu požadavek. To zahrnuje pracovní prostory, které používají přístupové seznamy IP adres nebo Azure Private Link.
  • Pokud chcete získat přístup k základnímu cloudovému úložišti pro datové objekty zaregistrované v katalogu Unity, musí být adresy URL úložiště generované dočasnými přihlašovacími údaji katalogu Unity přístupné pro modul provádějící požadavek. To znamená, že modul musí být povolený v seznamech firewallu a řízení přístupu k síti pro podkladové účty cloudového úložiště.

Požadavky na metastore katalogu Unity a datové objekty

  • Metastor musí být povolený pro přístup k externím datům.
  • Ve verzi Public Preview se podporují jenom tabulky.
    • Externí tabulky podporují čtení a zápis.
    • Spravované tabulky je možné jen číst.
  • Následující typy tabulek se nepodporují:
    • Tabulky s filtry řádků nebo maskami sloupců
    • Tabulky sdílené pomocí rozdílového sdílení
    • Federované tabulky Lakehouse (cizí tabulky)
    • Zobrazení
    • Materializovaná zobrazení
    • Streamované tabulky Delta Live Tables
    • Online tabulky
    • Indexy vektorových vyhledávání

Požadavky na oprávnění

Objekt zabezpečení, který požaduje dočasné přihlašovací údaje, musí mít:

  • Oprávnění EXTERNAL USE SCHEMA k obsahu schématu nebo nadřazeného katalogu.

    Toto oprávnění musí být vždy uděleno explicitně. Pouze vlastník nadřazeného katalogu ho může udělit. Aby nedošlo k náhodnému exfiltraci, ALL PRIVILEGES nezahrnuje EXTERNAL USE SCHEMA oprávnění a vlastníci schématu ve výchozím nastavení toto oprávnění nemají.

  • SELECT oprávnění pro tabulku, USE CATALOG nadřazený katalog a USE SCHEMA nadřazené schéma.

Povolení přístupu k externím datům v metastoru

Aby externí moduly mohly přistupovat k datům v metastoru, musí správce metastoru povolit přístup k externím datům pro metastor. Tato možnost je ve výchozím nastavení zakázaná, aby se zabránilo neoprávněnému externímu přístupu.

  1. V pracovním prostoru Azure Databricks připojeném k metastoru klikněte na Ikona katalogu Katalog.
  2. Ikona ozubeného kolečka Klikněte na ikonu ozubeného kola v horní části podokna Katalog a vyberte Metastore.
  3. Na kartě Podrobnosti povolte přístup k externím datům.

Vyžádání dočasných přihlašovacích údajů pro přístup k externím datům

Pokud chcete požádat o dočasné přihlašovací údaje pro přístup k externím datům, musí uživatel pracovního prostoru, který splňuje výše uvedené požadavky, použít /api/2.1/unity-catalog/temporary-table-credentials rozhraní API.

Poznámka:

Seznam tabulek, které podporují ověření přihlašovacích údajů, můžete načíst vyvoláním rozhraní LISTTables API s povolenou include_manifest_capabilities možností. Pouze tabulky označené HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORT nebo HAS_DIRECT_EXTERNAL_ENGINE_WRITE_SUPPORT mají nárok na referenci v rozhraní API pro dočasné přihlašovací údaje tabulky. Viz GET /api/2.1/unity-catalog/tables.

Příklad:

curl -X POST -H "Authentication: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-table-credentials \
-d '{"table_id": "<string>", "operation_name": "<READ|READ_WRITE>"}'

Podrobnosti najdete v tématu POST /api/2.1/unity-catalog/temporary-table-credentials v referenčních informacích k rozhraní REST API služby Azure Databricks.