Osvědčené postupy pro katalog Unity
Tento dokument obsahuje doporučení pro používání katalogu Unity a rozdílového sdílení, aby vyhovoval vašim potřebám zásad správného řízení dat.
Unity Catalog je jemně odstupňované řešení zásad správného řízení pro data a AI na platformě Databricks. Pomáhá zjednodušit zabezpečení a zásady správného řízení vašich dat tím, že poskytuje centrální místo pro správu a auditování přístupu k datům. Delta Sharing je zabezpečená platforma pro sdílení dat, která umožňuje sdílet data v Azure Databricks s uživateli mimo vaši organizaci. Používá katalog Unity ke správě a auditování chování sdílení.
Stavební bloky zásad správného řízení a izolace dat
Pokud chcete vytvořit model zásad správného řízení dat a plán izolace dat, který funguje pro vaši organizaci, pomůže vám pochopit primární stavební bloky, které jsou vám k dispozici při vytváření řešení zásad správného řízení dat v Azure Databricks.
Následující diagram znázorňuje primární hierarchii dat v katalogu Unity (některé zabezpečitelné objekty jsou šedě zvýrazněné, aby se zdůraznila hierarchie objektů spravovaných v katalogu).
Objekty v této hierarchii zahrnují následující:
Metastore: Metastore je kontejner objektů nejvyšší úrovně v katalogu Unity. Metastory fungují na úrovni účtu a fungují jako vrchol pyramidy v modelu zásad správného řízení dat Azure Databricks.
Metastory spravují datové prostředky (tabulky, zobrazení a svazky) a oprávnění, která řídí přístup k nim. Správci účtu Azure Databricks můžou vytvořit jeden metastor pro každou oblast, ve které pracují, a přiřadit je k několika pracovním prostorům Azure Databricks ve stejné oblasti. Správci metastoru můžou spravovat všechny objekty v metastoru. Nemají přímý přístup ke čtení a zápisu do tabulek registrovaných v metastoru, ale mají nepřímý přístup prostřednictvím své schopnosti přenášet vlastnictví datového objektu.
Fyzické úložiště pro jakékoli dané metastory je ve výchozím nastavení izolované od úložiště pro jakékoli jiné metastory ve vašem účtu.
Metastory poskytují regionální izolaci, ale nejsou určeny jako jednotky izolace dat. Izolace dat by měla začínat na úrovni katalogu.
Katalogy: Katalogy jsou nejvyšší úrovní v hierarchii dat (tabulka schématu > katalogu>, zobrazení nebo svazek) spravovaná metastorem katalogu Unity. Jsou určené jako primární jednotka izolace dat v typickém modelu zásad správného řízení dat Azure Databricks.
Katalogy představují logické seskupení schémat, obvykle svázané požadavky na přístup k datům. Katalogy často zrcadlí organizační jednotky nebo obory životního cyklu vývoje softwaru. Můžete se například rozhodnout, že budete mít katalog pro produkční data a katalog pro vývojová data nebo katalog pro data, která nejsou zákazníky, a ten pro citlivá zákaznická data.
Katalogy se dají ukládat na úrovni metastoru nebo můžete nakonfigurovat, aby byl katalog uložen odděleně od zbytku nadřazeného metastoru. Pokud byl váš pracovní prostor pro Katalog Unity povolen automaticky, neexistuje žádné úložiště na úrovni metastoru a při vytváření katalogu musíte zadat umístění úložiště.
Pokud je katalog primární jednotkou izolace dat v modelu zásad správného řízení dat Azure Databricks, je pracovní prostor primárním prostředím pro práci s datovými prostředky. Správci metastoru a vlastníci katalogu můžou spravovat přístup k katalogům nezávisle na pracovních prostorech nebo mohou svázat katalogy s konkrétními pracovními prostory, aby se zajistilo, že se určité druhy dat zpracovávají jenom v těchto pracovních prostorech. Můžete například chtít samostatné pracovní prostory pro produkční a vývoj nebo samostatný pracovní prostor pro zpracování osobních údajů.
Ve výchozím nastavení jsou přístupová oprávnění k zabezpečitelnému objektu zděděna podřízenými položkami tohoto objektu s katalogy v horní části hierarchie. To usnadňuje nastavení výchozích pravidel přístupu pro vaše data a určení různých pravidel na každé úrovni hierarchie jenom tam, kde je potřebujete.
Schéma (databáze): Schémata, označovaná také jako databáze, jsou logické seskupení tabulkových dat (tabulek a zobrazení), ne tabulkových dat (svazků), funkcí a modelů strojového učení. Poskytují způsob, jak uspořádat a řídit přístup k datům, která jsou podrobnější než katalogy. Obvykle představují jeden případ použití, projekt nebo týmový sandbox.
Schémata mohou být uložena ve stejném fyzickém úložišti jako nadřazený katalog nebo můžete nakonfigurovat schéma, které se má uložit odděleně od zbytku nadřazeného katalogu.
Správci metastoru, vlastníci nadřazeného katalogu a vlastníci schémat můžou spravovat přístup k schématům.
Tabulky: Tabulky se nacházejí ve třetí vrstvě tříúrovňového oboru názvů katalogu Unity. Obsahují řádky dat.
Katalog Unity umožňuje vytvářet spravované tabulky a externí tabulky.
U spravovaných tabulek katalog Unity plně spravuje životní cyklus a rozložení souborů. Spravované tabulky se ve výchozím nastavení ukládají do kořenového umístění úložiště, které konfigurujete při vytváření metastoru. Místo toho můžete izolovat úložiště pro spravované tabulky na úrovni katalogu nebo schématu.
Externí tabulky jsou tabulky, jejichž životní cyklus dat a rozložení souborů se spravují pomocí poskytovatele cloudu a jiných datových platforem, nikoli pomocí katalogu Unity. K registraci velkých objemů stávajících dat obvykle používáte externí tabulky nebo pokud potřebujete přístup k datům také pomocí nástrojů mimo clustery Azure Databricks a služby Databricks SQL Warehouse. Jakmile je externí tabulka zaregistrovaná v metastore katalogu Unity, můžete k ní spravovat a auditovat přístup Azure Databricks stejně jako u spravovaných tabulek.
Vlastníci nadřazeného katalogu a vlastníci schématu můžou spravovat přístup k tabulkám, stejně jako správci metastoru (nepřímo).
Zobrazení: Zobrazení je objekt jen pro čtení odvozený z jedné nebo více tabulek a zobrazení v metastoru.
Řádky a sloupce: Přístup na úrovni řádků a sloupců spolu s maskováním dat je udělen pomocí dynamických zobrazení nebo filtrů řádků a masek sloupců. Dynamická zobrazení jsou jen pro čtení.
Svazky: Svazky se nacházejí ve třetí vrstvě tříúrovňového oboru názvů katalogu Unity. Spravují ne tabulková data. Svazky můžete použít k ukládání, uspořádání a přístupu k souborům v libovolném formátu, včetně strukturovaných, částečně strukturovaných a nestrukturovaných dat. Soubory ve svazcích nelze zaregistrovat jako tabulky.
Modely a funkce: I když nejsou, přísně řečeno, datové prostředky, registrované modely a uživatelem definované funkce lze také spravovat v Katalogu Unity a nacházejí se na nejnižší úrovni v hierarchii objektů. Viz Správa životního cyklu modelu v Katalogu Unity a uživatelem definovaných funkcích (UDF) v katalogu Unity.
Plánování modelu izolace dat
Pokud organizace používá datovou platformu, jako je Azure Databricks, často je potřeba mít hranice izolace dat mezi prostředími (jako je vývoj a produkční prostředí) nebo mezi organizačními provozními jednotkami.
Standardy izolace se můžou pro vaši organizaci lišit, ale obvykle zahrnují následující očekávání:
- Uživatelé můžou získat přístup pouze k datům na základě zadaných pravidel přístupu.
- Data můžou spravovat jenom určené osoby nebo týmy.
- Data jsou fyzicky oddělená v úložišti.
- K datům je možné přistupovat pouze v určených prostředích.
Potřeba izolace dat může vést k prostředím silo, která můžou zbytečně ztížit zásady správného řízení dat i spolupráci. Azure Databricks tento problém řeší pomocí katalogu Unity, který poskytuje řadu možností izolace dat při zachování jednotné platformy zásad správného řízení dat. Tato část popisuje možnosti izolace dat dostupné v Azure Databricks a jejich použití, ať už preferujete centralizovaný model zásad správného řízení dat nebo distribuovaný model.
Uživatelé můžou získat přístup pouze k datům na základě zadaných pravidel přístupu.
Většina organizací má přísné požadavky na přístup k datům na základě interních nebo regulačních požadavků. Mezi typické příklady dat, která musí být zabezpečená, patří informace o mzdě zaměstnance nebo platební údaje platební karty. Přístup k tomuto typu informací se obvykle pravidelně pečlivě kontroluje a audituje. Katalog Unity poskytuje podrobnou kontrolu nad datovými prostředky v katalogu, aby splňovaly tyto oborové standardy. S ovládacími prvky, které poskytuje Katalog Unity, můžou uživatelé zobrazit a dotazovat pouze data, která mají nárok na zobrazení a dotazování.
Data je možné spravovat pouze určenými lidmi nebo týmy.
Katalog Unity vám umožňuje zvolit si mezi centralizovanými a distribuovanými modely zásad správného řízení.
V centralizovaném modelu zásad správného řízení jsou správci zásad správného řízení vlastníky metastoru a můžou převzít vlastnictví jakéhokoli objektu a udělit a odvolat oprávnění.
V distribuovaném modelu zásad správného řízení je katalog nebo sada katalogů datovou doménou. Vlastník tohoto katalogu může vytvářet a vlastnit všechny prostředky a spravovat zásady správného řízení v rámci této domény. Vlastníci jakékoli dané domény můžou pracovat nezávisle na vlastnících jiných domén.
Bez ohledu na to, jestli jako datovou doménu zvolíte metastor nebo katalogy, databricks důrazně doporučuje nastavit skupinu jako správce metastoru nebo vlastník katalogu.
Vlastníci můžou uživatelům, služebním objektům a skupinám udělit oprávnění MANAGE
, aby mohli udělovat a odvolávat oprávnění k objektům.
Data jsou fyzicky oddělená v úložišti.
Organizace může vyžadovat, aby data určitých typů byla uložena v konkrétních účtech nebo kontejnerech ve svém cloudovém tenantovi.
Katalog Unity umožňuje konfigurovat umístění úložiště na úrovni metastoru, katalogu nebo schématu tak, aby splňovala tyto požadavky.
Řekněme například, že vaše organizace má zásady dodržování předpisů společnosti, které vyžadují produkční data týkající se lidských prostředků, která se nacházejí v kontejneru abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net. V katalogu Unity můžete tohoto požadavku dosáhnout nastavením umístění na úrovni katalogu, vytvořením katalogu volaný například hr_prod
a přiřazením umístění abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog k němu. To znamená, že spravované tabulky nebo svazky vytvořené v hr_prod
katalogu (například pomocí CREATE TABLE hr_prod.default.table …
) ukládají data do abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog. Volitelně můžete zadat umístění na úrovni schématu pro uspořádání dat v rámci hr_prod catalog
podrobnější úrovně.
Pokud taková izolace úložiště není nutná, můžete nastavit umístění úložiště na úrovni metastoru. Výsledkem je, že toto umístění slouží jako výchozí umístění pro ukládání spravovaných tabulek a svazků napříč katalogy a schématy v metastoru.
Systém vyhodnotí hierarchii umístění úložiště ze schématu do katalogu do metastoru.
Pokud je například vytvořena myCatalog.mySchema.myTable
tabulkamy-region-metastore
, umístění úložiště tabulky je určeno podle následujícího pravidla:
- Pokud je k dispozici
mySchema
umístění, uloží se tam. - Pokud ne, a umístění je k dispozici ,
myCatalog
bude uložen tam. - A konečně, pokud není k dispozici
myCatalog
žádné umístění , bude uložen v umístění přidruženém k saděmy-region-metastore
.
Přístup k datům je možné získat pouze v určených prostředích.
Požadavky organizace a dodržování předpisů často určují, že určitá data, jako jsou osobní údaje, jsou přístupná jenom v určitých prostředích. Můžete také chtít zachovat produkční data izolovaná od vývojových prostředí nebo zajistit, aby se určité datové sady a domény nikdy nepřipojily.
V Databricks je pracovní prostor primárním prostředím pro zpracování dat a katalogy jsou primární doménou dat. Katalog Unity umožňuje správcům metastoru, vlastníkům katalogu a uživatelům s přiřazeným oprávněním MANAGE
nebo svázat katalogy ke konkrétním pracovním prostorům. Tyto vazby podporující prostředí umožňují zajistit, aby byly v pracovním prostoru k dispozici pouze určité katalogy bez ohledu na konkrétní oprávnění k datovým objektům uděleným uživateli.
Teď se podrobněji podíváme na proces nastavení katalogu Unity tak, aby vyhovoval vašim potřebám.
Konfigurace metastoru katalogu Unity
Metastore je kontejner objektů nejvyšší úrovně v katalogu Unity. Metastory spravují datové prostředky (tabulky, zobrazení a svazky) a další zabezpečitelné objekty spravované katalogem Unity. Úplný seznam zabezpečitelných objektů naleznete v tématu Zabezpečitelné objekty v katalogu Unity.
Tato část obsahuje tipy pro vytváření a konfiguraci metastorů. Pokud byl váš pracovní prostor automaticky povolený pro katalog Unity, nemusíte vytvářet metastor, ale informace uvedené v této části můžou být stále užitečné. Viz Automatická aktivace katalogu Unity.
Tipy pro konfiguraci metastorů:
Pro každou oblast, ve které máte pracovní prostory Azure Databricks, byste měli nastavit jeden metastor.
Každý pracovní prostor připojený k jednomu regionálnímu metastoru má přístup k datům spravovaným metastorem. Pokud chcete sdílet data mezi metastory, použijte funkci Rozdílové sdílení.
Každý metastor je možné nakonfigurovat se spravovaným umístěním úložiště (označovaným také jako kořenové úložiště) ve vašem cloudovém tenantovi, který se dá použít k ukládání spravovaných tabulek a spravovaných svazků.
Pokud se rozhodnete vytvořit spravované umístění na úrovni metastoru, musíte zajistit, aby k němu žádní uživatelé neměli přímý přístup (to znamená prostřednictvím cloudového účtu, který ho obsahuje). Udělení přístupu k tomuto umístění úložiště může uživateli umožnit obejít řízení přístupu v metastoru katalogu Unity a narušit auditovatelnost. Z těchtodůvodůch Kontejner, který je také vaším kořenovým systémem souborů DBFS, byste neměli opakovaně používat nebo už byl kořenovým systémem souborů DBFS.
Máte také možnost definovat spravované úložiště na úrovni katalogu a schématu a přepisovat umístění kořenového úložiště metastoru. Ve většině scénářů doporučuje Databricks ukládat spravovaná data na úrovni katalogu.
Měli byste porozumět oprávněním správců pracovního prostoru v pracovních prostorech, které jsou povoleny pro katalog Unity, a zkontrolovat stávající přiřazení správců pracovního prostoru.
Správci pracovních prostorů můžou spravovat operace pro svůj pracovní prostor, včetně přidávání uživatelů a instančních objektů, vytváření clusterů a delegování dalších uživatelů jako správců pracovních prostorů. Pokud byl váš pracovní prostor pro Katalog Unity povolen automaticky, správci pracovních prostorů mají ve výchozím nastavení možnost vytvářet katalogy a mnoho dalších objektů katalogu Unity. Zobrazení oprávnění správce pracovního prostoru, pokud jsou pracovní prostory povolené pro katalog Unity automaticky
Správci pracovních prostorů mají také možnost provádět úlohy správy pracovních prostorů, jako je správa vlastnictví úloh a prohlížení poznámkových bloků, které můžou udělit nepřímý přístup k datům registrovaným v katalogu Unity. Správce pracovního prostoru je privilegovaná role, kterou byste měli pečlivě distribuovat.
Pokud k izolaci přístupu k datům uživatelů používáte pracovní prostory, můžete chtít použít vazby katalogu pracovních prostorů. Vazby katalogu pracovních prostorů umožňují omezit přístup k katalogu podle hranic pracovního prostoru. Můžete například zajistit, aby správci a uživatelé pracovního prostoru měli přístup pouze k produkčním datům z
prod_catalog
produkčního prostředíprod_workspace
pracovního prostoru. Výchozí hodnotou je sdílení katalogu se všemi pracovními prostory připojenými k aktuálnímu metastoru. Viz Omezení přístupu katalogu ke konkrétním pracovním prostorům.Pokud byl váš pracovní prostor pro katalog Unity povolen automaticky, je předem zřízený katalog pracovních prostorů ve výchozím nastavení svázán s vaším pracovním prostorem.
Viz Vytvoření metastoru katalogu Unity.
Konfigurace externích umístění a přihlašovacích údajů úložiště
Externí umístění umožňují katalogu Unity číst a zapisovat data v cloudovém tenantovi jménem uživatelů. Externí umístění jsou definována jako cesta ke cloudovému úložišti v kombinaci s přihlašovacími údaji úložiště, které je možné použít pro přístup k danému umístění.
Externí umístění můžete použít k registraci externích tabulek a externích svazků v katalogu Unity. Obsah těchto entit se fyzicky nachází na dílčí cestě v externím umístění, na které se odkazuje, když uživatel vytvoří svazek nebo tabulku.
Přihlašovací údaje úložiště zapouzdřuje dlouhodobé cloudové přihlašovací údaje, které poskytují přístup ke cloudovému úložišti. Může to být spravovaná identita Azure (důrazně doporučeno) nebo instanční objekt. Použití spravované identity Azure má následující výhody při používání instančního objektu:
- Spravované identity nevyžadují údržbu přihlašovacích údajů ani obměna tajných kódů.
- Pokud je váš pracovní prostor Azure Databricks nasazený do vlastní virtuální sítě (označované také jako injektáž virtuální sítě), můžete se připojit k účtu Azure Data Lake Storage Gen2, který je chráněný bránou firewall úložiště.
Pokud chcete zvýšit izolaci dat, můžete vytvořit vazbu přihlašovacích údajů služby, přihlašovacích údajů úložiště a externích umístění k určitým pracovním prostorům. Viz (Volitelné) Přiřazení přihlašovacích údajů služby konkrétním pracovním prostorům (volitelné) Přiřazení externího umístění konkrétním pracovním prostorůma (volitelné) Přiřazení přihlašovacích údajů úložiště konkrétním pracovním prostorům.
Tip
Externí umístění zkombinováním přihlašovacích údajů úložiště a cest úložiště poskytují silnou kontrolu a auditovatelnost přístupu k úložišti. Pokud chcete uživatelům zabránit v obejití řízení přístupu poskytovaného katalogem Unity, měli byste zajistit, abyste omezili počet uživatelů s přímým přístupem k libovolnému kontejneru, který se používá jako externí umístění. Ze stejného důvodu byste neměli připojovat účty úložiště k DBFS, pokud se také používají jako externí umístění. Databricks doporučuje migrovat připojení do umístění cloudového úložiště do externích umístění v katalogu Unity pomocí Průzkumníka katalogu.
Seznam osvědčených postupů pro správu externích umístění najdete v tématu Správa externích umístění, externích tabulek a externích svazků. Viz také Vytvoření externího umístění pro připojení cloudového úložiště k Azure Databricks.
Uspořádání dat
Databricks doporučuje používat katalogy k zajištění oddělení napříč architekturou informací vaší organizace. Často to znamená, že katalogy odpovídají oboru prostředí vývoje softwaru, týmu nebo obchodní jednotce. Pokud pracovní prostory používáte jako nástroj pro izolaci dat – například použití různých pracovních prostorů pro produkční a vývojová prostředí nebo konkrétní pracovní prostor pro práci s vysoce citlivými daty, můžete také vytvořit vazbu katalogu na konkrétní pracovní prostory. Tím zajistíte, že se veškeré zpracování zadaných dat zpracuje v příslušném pracovním prostoru. Viz Omezení přístupu katalogu ke konkrétním pracovním prostorům.
Schéma (označované také jako databáze) je druhá vrstva tříúrovňového oboru názvů katalogu Unity a uspořádá tabulky, zobrazení a svazky. Schémata můžete použít k uspořádání a definování oprávnění pro vaše prostředky.
Objekty, které se řídí katalogem Unity, je možné spravovat nebo externí:
Spravované objekty představují výchozí způsob vytváření datových objektů v katalogu Unity.
Katalog Unity spravuje životní cyklus a rozložení souborů pro tyto zabezpečitelné. Nástroje mimo Azure Databricks byste neměli používat k přímé manipulaci se soubory ve spravovaných tabulkách nebo svazcích.
Spravované tabulky a svazky jsou uložené ve spravovaném úložišti, které mohou existovat na úrovni metastoru, katalogu nebo schématu pro libovolnou danou tabulku nebo svazek. Viz Data jsou fyzicky oddělená v úložišti.
Spravované tabulky a svazky představují praktické řešení, když chcete zřídit spravované umístění pro váš obsah bez režie při vytváření a správě externích umístění a přihlašovacích údajů úložiště.
Spravované tabulky vždy používají formát tabulky Delta .
Externí objekty jsou zabezpečitelné, jejichž životní cyklus dat a rozložení souborů nespravuje katalog Unity.
Externí svazky a tabulky jsou zaregistrované v externím umístění, aby poskytovaly přístup k velkému počtu souborů, které už existují v cloudovém úložišti, aniž by vyžadovaly aktivitu kopírování dat. Externí objekty použijte, pokud máte soubory vytvořené jinými systémy a chcete je připravit pro přístup z Azure Databricks nebo když nástroje mimo Azure Databricks vyžadují přímý přístup k těmto souborům.
Externí tabulky podporují Delta Lake a mnoho dalších datových formátů, včetně Parquet, JSON a CSV. Spravované i externí svazky lze použít pro přístup k souborům libovolných formátů a jejich ukládání: data můžou být strukturovaná, částečně strukturovaná nebo nestrukturovaná.
Další informace o vytváření tabulek a svazků najdete v tématu Co jsou tabulky a zobrazení? a Co jsou svazky katalogu Unity?
Správa externích umístění, externích tabulek a externích svazků
Následující diagram představuje hierarchii systému souborů jednoho kontejneru cloudového úložiště se čtyřmi externími umístěními, která sdílejí jedno přihlašovací údaje úložiště.
Jakmile máte v katalogu Unity nakonfigurovaná externí umístění, můžete vytvořit externí tabulky a svazky v adresářích uvnitř externích umístění. Katalog Unity pak můžete použít ke správě přístupu uživatelů a skupin k těmto tabulkám a svazkům. To vám umožní poskytnout konkrétním uživatelům nebo skupinám přístup ke konkrétním adresářům a souborům v kontejneru cloudového úložiště.
Poznámka:
Při definování externího svazku se přístup ke cloudovým identifikátorům URI k datům v cestě ke svazku řídí oprávněními udělenými na svazku, nikoli oprávněními udělenými na externím umístění, kde je svazek uložený.
Doporučení pro používání externích umístění
Doporučení pro udělení oprávnění k externím umístěním:
Udělte možnost vytvářet externí umístění pouze správci, který má za úkol nastavit připojení mezi katalogem Unity a cloudovým úložištěm nebo důvěryhodným datovým inženýrům.
Externí umístění poskytují přístup z katalogu Unity k široce zahrnujícímu umístění v cloudovém úložišti – například celý kontejner nebo kontejner (abfss://my-container@storage-account.dfs.core.windows.net) nebo širokou podadresář (abfss://my-container@storage-account.dfs.core.windows.net/path/to/podadresář). Záměrem je, že správce cloudu může být zapojen do nastavení několika externích umístění a pak delegovat odpovědnost za správu těchto umístění správci Azure Databricks ve vaší organizaci. Správce Azure Databricks pak může externí umístění dále uspořádat do oblastí s podrobnějšími oprávněními registrací externích svazků nebo externích tabulek v určitých předponách v externím umístění.
Vzhledem k tomu, že externí umístění jsou tak zahrnující, databricks doporučuje poskytnout
CREATE EXTERNAL LOCATION
oprávnění pouze správci, který má za úkol nastavit připojení mezi katalogem Unity a cloudovým úložištěm nebo důvěryhodným datovým inženýrům. Aby mohli ostatní uživatelé získat podrobnější přístup, databricks doporučuje registrovat externí tabulky nebo svazky nad externími umístěními a udělit uživatelům přístup k datům pomocí svazků nebo tabulek. Vzhledem k tomu, že tabulky a svazky jsou podřízené katalogu a schématu, mají správci katalogu nebo schématu nejvyšší kontrolu nad přístupovým oprávněním.Přístup k externímu umístění můžete řídit také tak, že ho provážete s konkrétními pracovními prostory. Viz (Volitelné) Přiřazení externího umístění konkrétním pracovním prostorům.
Koncovým uživatelům neudělujte obecná
READ FILES
aniWRITE FILES
oprávnění k externím umístěním.S dostupností svazků by uživatelé neměli používat externí umístění, ale vytvářet tabulky, svazky nebo spravovaná umístění. Neměly by používat externí umístění pro přístup založený na cestě pro datové vědy nebo jiné případy použití tabulkových dat.
Svazky poskytují podporu pro práci se soubory pomocí příkazů SQL, dbutils, rozhraní SPARK API, rozhraní REST API, Terraformu a uživatelského rozhraní pro procházení, nahrávání a stahování souborů. Svazky navíc nabízejí připojení FUSE, které je přístupné v místním systému souborů v části
/Volumes/<catalog_name>/<schema_name>/<volume_name>/
. Připojení FUSE umožňuje datovým vědcům a technikům STROJOVÉho učení přistupovat k souborům, jako by byli v místním systému souborů, jak to vyžaduje mnoho knihoven strojového učení nebo operačního systému.Pokud musíte udělit přímý přístup k souborům v externím umístění (pro zkoumání souborů v cloudovém úložišti před tím, než uživatel vytvoří externí tabulku nebo svazek, například), můžete udělit
READ FILES
. Případy použití pro uděleníWRITE FILES
jsou vzácné.
K provedení následujících kroků byste měli použít externí umístění:
- Registrace externích tabulek a svazků pomocí
CREATE EXTERNAL VOLUME
příkazůCREATE TABLE
- Než vytvoříte externí tabulku nebo svazek s konkrétní předponou, prozkoumejte existující soubory v cloudovém úložišti. Toto
READ FILES
oprávnění je předběžnou podmínkou. - Místo kořenového kontejneru metastoru zaregistrujte umístění jako spravované úložiště pro katalogy a schémata. Toto
CREATE MANAGED STORAGE
oprávnění je předběžnou podmínkou.
Další doporučení pro používání externích umístění:
Vyhněte se konfliktům překrývání cest: Nikdy nevytvořujte externí svazky nebo tabulky v kořenovém adresáři externího umístění.
Pokud vytváříte externí svazky nebo tabulky v kořenovém adresáři externího umístění, nemůžete v externím umístění vytvořit žádné další externí svazky ani tabulky. Místo toho vytvořte externí svazky nebo tabulky v podadresáři uvnitř externího umístění.
Doporučení pro používání externích svazků
K provedení následujících kroků byste měli použít externí svazky:
- Zaregistrujte cílové oblasti pro nezpracovaná data vytvořená externími systémy, aby bylo možné podporovat jejich zpracování v počátečních fázích kanálů ETL a dalších činností přípravy dat.
- Zaregistrujte přípravná umístění pro příjem dat, například pomocí automatického zavaděče nebo
COPY INTO
příkazů CTAS (CREATE TABLE AS
). - Poskytovat umístění úložiště souborů datovým vědcům, datovým analytikům a technikům strojového učení, aby je mohli používat jako součást jejich průzkumné analýzy dat a dalších úloh datových věd, pokud spravované svazky nejsou volbou.
- Udělte uživatelům Azure Databricks přístup k libovolným souborům vytvořeným a uloženým v cloudovém úložišti jinými systémy, například velkými kolekcemi nestrukturovaných dat (například obrázků, zvuku, videa a souborů PDF) zachycených sledovacími systémy nebo zařízeními IoT nebo soubory knihoven (JAR a soubory kol Pythonu) exportovaných z místních systémů pro správu závislostí nebo kanálů CI/CD.
- Ukládání provozních dat, jako jsou soubory protokolování nebo kontrolních bodů, pokud spravované svazky nejsou volbou.
Další doporučení pro používání externích svazků:
- Databricks doporučuje vytvořit externí svazky z jednoho externího umístění v rámci jednoho schématu.
Tip
Pro případy použití příjmu dat, ve kterých se data kopírují do jiného umístění , například pomocí automatického zavaděče nebo COPY INTO
– použijte externí svazky. Externí tabulky použijte, pokud chcete dotazovat data na místě jako tabulku, bez toho, aby se žádná kopie nezískula.
Doporučení pro používání externích tabulek
Při vytváření spravovaných tabulek byste měli použít externí tabulky k podpoře normálních vzorů dotazování nad daty uloženými v cloudovém úložišti.
Další doporučení pro používání externích tabulek:
- Databricks doporučuje vytvářet externí tabulky pomocí jednoho externího umístění na schéma.
- Databricks důrazně doporučuje, aby se kvůli riziku problémů s konzistencí zaregistrovala tabulka jako externí tabulka ve více než jednom metastoru. Například změna schématu v jednom metastoru se ve druhém metastoru neregistruje. Použití rozdílového sdílení ke sdílení dat mezi metastory Viz Bezpečné sdílení dat pomocí rozdílového sdílení.
Konfigurace řízení přístupu
Každý zabezpečitelný objekt v katalogu Unity má vlastníka. Objekt zabezpečení, který vytvoří objekt, se stane jeho počátečním vlastníkem. Vlastník objektu má všechna oprávnění k objektu, například SELECT
a MODIFY
v tabulce, a také oprávnění k udělení oprávnění k zabezpečitelnému objektu jiným hlavním subjektům. Vlastníci můžou udělit oprávnění k danému objektu jiným uživatelům, včetně oprávnění MANAGE
, které deleguje možnost udělovat oprávnění k objektu. Vlastník, správci metastoru a uživatelé s oprávněním MANAGE
mohou přenést vlastnictví zabezpečitelného objektu do skupiny. Kromě toho, pokud objekt je obsažen v katalogu (jako tabulka nebo zobrazení), katalog a vlastník schématu může změnit vlastnictví objektu.
Zabezpečitelné objekty v katalogu Unity jsou hierarchické a oprávnění se dědí dolů. To znamená, že přidělení oprávnění v katalogu nebo schématu automaticky uděluje toto oprávnění všem současným i budoucím objektům v rámci katalogu nebo schématu. Další informace naleznete v tématu Model dědičnosti.
Aby uživatel mohl číst data z tabulky nebo zobrazení, musí mít následující oprávnění:
-
SELECT
v tabulce nebo zobrazení -
USE SCHEMA
ve schématu, které vlastní tabulku -
USE CATALOG
v katalogu, který vlastní schéma
USE CATALOG
umožňuje správci udělit přístup k katalogu, aby mohl přistupovat ke svým podřízeným objektům a USE SCHEMA
umožňuje udělení procházet schéma, aby bylo možné přistupovat k podřízeným objektům. Pokud například chcete vybrat data z tabulky, musí mít SELECT
uživatelé oprávnění k této tabulce a USE CATALOG
oprávnění nadřazeného katalogu spolu s oprávněními USE SCHEMA
nadřazeného schématu. Toto oprávnění proto můžete použít k omezení přístupu k oddílům vašeho oboru názvů dat na konkrétní skupiny. Běžným scénářem je nastavení schématu pro každý tým, kde ho má USE SCHEMA
CREATE
a ve schématu pouze tento tým. To znamená, že všechny tabulky vytvořené členy týmu je možné sdílet pouze v rámci týmu.
Přístup k tabulce můžete zabezpečit pomocí následující syntaxe SQL:
GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >
TO < group_name >;
GRANT
SELECT
ON < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;
Přístup ke sloupcům můžete zabezpečit pomocí dynamického zobrazení v sekundárním schématu, jak je znázorněno v následující syntaxi SQL:
CREATE VIEW < catalog_name >.< schema_name >.< view_name > as
SELECT
id,
CASE WHEN is_account_group_member(< group_name >) THEN email ELSE 'REDACTED' END AS email,
country,
product,
total
FROM
< catalog_name >.< schema_name >.< table_name >;
GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >.< view_name >;
TO < group_name >;
GRANT
SELECT
ON < catalog_name >.< schema_name >.< view_name >;
TO < group_name >;
Přístup k řádkům můžete zabezpečit pomocí dynamického zobrazení v sekundárním schématu, jak je znázorněno v následující syntaxi SQL:
CREATE VIEW < catalog_name >.< schema_name >.< view_name > as
SELECT
*
FROM
< catalog_name >.< schema_name >.< table_name >
WHERE
CASE WHEN is_account_group_member(managers) THEN TRUE ELSE total <= 1000000 END;
GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;
GRANT
SELECT
ON < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;
Uživatelům můžete také udělit zabezpečený přístup k tabulkám pomocí filtrů řádků a masek sloupců. Další informace najdete v tématu Filtrování citlivých dat tabulky pomocí filtrů řádků a masek sloupců.
Další informace o všech oprávněních v katalogu Unity najdete v tématu Správa oprávnění v katalogu Unity.
Správa konfigurací výpočetních prostředků
Databricks doporučuje používat zásady výpočetních prostředků k omezení schopnosti konfigurovat clustery na základě sady pravidel. Zásady výpočetních prostředků umožňují omezit přístup jenom na vytváření clusterů, které jsou povolené katalogem Unity. Použití výpočetních zásad snižuje dostupné volby, což výrazně zjednoduší proces vytváření clusteru pro uživatele a zajistí, že budou mít bezproblémový přístup k datům. Zásady výpočetních prostředků také umožňují řídit náklady omezením maximálních nákladů na cluster.
Aby se zajistila integrita řízení přístupu a vynucení pevných záruk izolace, katalog Unity ukládá požadavky na zabezpečení výpočetních prostředků. Z tohoto důvodu katalog Unity zavádí koncept režimu přístupu clusteru. Katalog Unity je ve výchozím nastavení zabezpečený; Pokud cluster není nakonfigurovaný s odpovídajícím režimem přístupu, cluster nemá přístup k datům v katalogu Unity. Viz požadavky na výpočetní prostředky.
Databricks doporučuje režim sdíleného přístupu pro všechny úlohy. Režim přístupu jednoho uživatele používejte jenom v případě, že režim sdíleného přístupu nepodporuje požadované funkce. Viz režimy accessu.
Níže uvedený kód JSON poskytuje definici zásad pro cluster s režimem sdíleného přístupu:
{
"spark_version": {
"type": "regex",
"pattern": "1[0-1]\\.[0-9]*\\.x-scala.*",
"defaultValue": "10.4.x-scala2.12"
},
"access_mode": {
"type": "fixed",
"value": "USER_ISOLATION",
"hidden": true
}
}
Níže uvedený kód JSON poskytuje definici zásad pro cluster automatizovaných úloh s režimem přístupu jednoho uživatele:
{
"spark_version": {
"type": "regex",
"pattern": "1[0-1]\\.[0-9].*",
"defaultValue": "10.4.x-scala2.12"
},
"access_mode": {
"type": "fixed",
"value": "SINGLE_USER",
"hidden": true
},
"single_user_name": {
"type": "regex",
"pattern": ".*",
"hidden": true
}
}
Auditovat přístup
Kompletní řešení zásad správného řízení dat vyžaduje auditování přístupu k datům a poskytování možností upozorňování a monitorování. Katalog Unity zaznamenává protokol auditu akcí prováděných s metastorem a tyto protokoly se doručují jako součást protokolů auditu Azure Databricks.
K protokolům auditu účtu můžete přistupovat pomocí systémových tabulek. Další informace o systémové tabulce protokolu auditování naleznete v tématu Referenční informace k systémové tabulce protokolu auditu.
Bezpečné sdílení dat pomocí rozdílového sdílení
Delta Sharing je otevřený protokol vyvinutý Službou Databricks pro zabezpečené sdílení dat s jinými organizacemi nebo jinými odděleními ve vaší organizaci bez ohledu na to, které výpočetní platformy používají. Pokud je na metastoru povolené rozdílové sdílení, spustí katalog Unity server pro rozdílové sdílení.
Ke sdílení dat mezi metastory můžete využít sdílení Databricks-to-Databricks Delta. To vám umožní registrovat tabulky z metastorů v různých oblastech. Tyto tabulky se zobrazí jako objekty jen pro čtení v spotřebě metastoru. Těmto tabulkám lze udělit přístup stejně jako jakýkoli jiný objekt v katalogu Unity.
Pokud ke sdílení mezi metastory používáte Sdílení Databricks-to-Databricks Delta, mějte na paměti, že řízení přístupu je omezené na jeden metastor. Pokud má zabezpečitelný objekt jako tabulka granty a tento prostředek se sdílí s metastorem uvnitř účtu, pak se granty ze zdroje nebudou vztahovat na cílovou sdílenou složku. Cílová sdílená složka bude muset nastavit vlastní granty.