Dynamické maskovanie údajov v sklade údajov služby Fabric

Vzťahuje sa na:✅ koncový bod analýzy SQL a sklad v službe Microsoft Fabric

Dynamické maskovanie dát je funkcia ochrany údajov, ktorá obmedzuje vystavenie citlivým údajom tým, že ich maskuje pre neprivilegovaných používateľov. Zjednodušuje návrh a kódovanie bezpečnosti vo vašej aplikácii.

Dynamické maskovanie dát pomáha predchádzať neoprávnenému prezeraniu citlivých údajov. Administrátori určujú, koľko citlivých údajov majú zverejniť, s minimálnym vplyvom na aplikačnú vrstvu. Môžete nastaviť dynamické maskovanie dát na určených databázových poliach tak, aby ste skryli citlivé údaje vo výsledkoch dotazov. Údaje v databáze sa nemenia, takže existujúce aplikácie môžu pokračovať v práci bez úprav, pretože na výsledky dotazov sa aplikujú maskovacie pravidlá. Mnohé aplikácie môžu maskovať citlivé údaje bez toho, aby upravovali existujúce dotazy.

Dynamické maskovanie dát poskytuje tieto schopnosti:

  • Politika centrálneho maskovania údajov funguje priamo na citlivých poliach v databáze.
  • Privilegovaní používatelia alebo úlohy môžu byť určení na prístup k citlivým údajom.
  • Máte na výber možnosti maskovania: plné maskovanie a čiastočné maskovanie, a náhodná maska pre číselné údaje.
  • Jednoduché príkazy Transact-SQL definujú a spravujú masky.

Dynamické maskovanie dát nebráni používateľom databázy pripojiť sa priamo k databáze a vykonávať vyčerpávajúce dotazy, ktoré odhaľujú časti citlivých údajov. Používajte dynamické maskovanie dát spolu s ďalšími bezpečnostnými funkciami Fabric, ako je bezpečnosť na úrovni stĺpca a bezpečnosť na úrovni riadku, na ochranu citlivých údajov v databáze.

Dynamické funkcie maskovania dát

Definujte maskovacie pravidlo na stĺpci v tabuľke na zahmlievanie dát v danom stĺpci. K dispozícii sú štyri typy rúšok.

Function Description Príklady
Predvolené Úplné maskovanie podľa typov údajov určených polí.

Pre typy údajov reťazca použite XXXX (alebo menej), ak je veľkosť poľa menšia ako 4 znaky (char, nchar, varchar, nvarchar, text, ntext).

Pri číselných typoch údajov sa používa nulová hodnota (bigint, bit, decimal, int, money, numeric, smallint, smallmoney, tinyint, float, real).

Pre typy údajov dátumu a času použite 1900-01-01 00:00:00.0000000 hodnotu (dátum, datetime2, datetime, datetimeoffset, smalldatetime, čas).

Pre binárne typy údajov použite jeden bajt hodnoty ASCII 0 (binárny, varbinárny, obrázok).
Príklad syntaxe definície stĺpca: Phone# varchar(12) MASKED WITH (FUNCTION = 'default()') NULL

Príklad alter syntaxe: ALTER COLUMN Gender ADD MASKED WITH (FUNCTION = 'default()')
E-mail Metóda maskovania, ktorá sprístupňuje prvé písmeno e-mailovej adresy a konštantnú príponu ".com", vo forme e-mailovej adresy. aXXX@XXXX.com. Syntax definície príkladu: Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULL

Príklad alter syntaxe: ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()')
Náhodný Náhodná funkcia maskovania určená na použitie s ľubovoľným číselným typom na zamaskovanie pôvodnej hodnoty náhodnou hodnotou v zadanom rozsahu. Syntax definície príkladu: Account_Number bigint MASKED WITH (FUNCTION = 'random([start range], [end range])')

Príklad alter syntaxe: ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)')
Vlastný reťazec Metóda maskovania, ktorá sprístupňuje prvé a posledné písmená a pridá do stredu vlastný odsadený reťazec. prefix,[padding],suffix

Ak je pôvodná hodnota príliš krátka na dokončenie celej masky, časť predpony alebo prípony sa nezobrazuje.
Syntax definície príkladu: FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(prefix,[padding],suffix)') NULL

Príklad alter syntaxe: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)')

Takto sa zmení telefónne číslo na 555.123.12345XXXXXXX.

Ďalší príklad:

ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(5,"XXXXXXX",0)')

Takto sa zmení telefónne číslo na 555.123.1234555.1XXXXXXX.

Ďalšie príklady nájdete v téme Implementácia dynamického maskovania údajov v sklade údajov služby Fabric.

Oprávnenia pre dynamické maskovanie dát

V Fabric Data Warehouse používatelia vidia maskované dáta pri dotazovaní na maskované stĺpce, ak nie sú členmi rolí Administrátor, Člen alebo Prispievateľ v pracovnom priestore, alebo nemajú zvýšené oprávnenia v sklade.

Nasledujúca tabuľka uvádza povolenia potrebné pre každú operáciu dynamického maskovania dát:

Operation Požadované povolenie
Vytvorte tabuľku s maskovanými stĺpcami CREATE TABLE a ALTER o schéme
Pridajte, nahraďte alebo odstráňte masku na stĺpci ALTER ANY MASK a ALTER na stole
Zobraziť maskované dáta SELECT Na stole
Zobraziť nemaskované dáta UNMASK v stĺpci alebo CONTROL v databáze

Udeliť to ALTER ANY MASK bezpečnostnému dôstojníkovi. Udeliť používateľovi UNMASK možnosť získať nemaskované dáta z maskovaných stĺpcov.

Povolenie CONTROL v databáze zahŕňa oba ALTER ANY MASK a UNMASK, takže používatelia, ktorí majú, CONTROL môžu vidieť nemaskované dáta. Administrátorskí používatelia alebo roly, ako Administrátor, Člen alebo Prispievateľ, majú CONTROL oprávnenie na databázu podľa návrhu a môžu predvolene zobrazovať nemaskované dáta. Zvýšené povolenia v sklade obsahujú CONTROL povolenie.

Bezpečnostné úvahy: obísť maskovanie pomocou inferenčných alebo hrubých silových techník

Dynamické maskovanie dát zjednodušuje vývoj aplikácií tým, že obmedzuje vystavenie dát v množine preddefinovaných dotazov, ktoré aplikácia používa. Hoci dynamické maskovanie dát môže tiež pomôcť zabrániť náhodnému odhaleniu citlivých údajov pri priamom prístupe k údajom, neprivilegovaní používatelia s oprávneniami na dotazovanie môžu použiť techniky na odvodenie skutočných dát.

Napríklad používateľ, ktorý má povolenie vykonávať dotazy v sklade, môže odhadnúť hodnoty na odvodenie maskovaných dát. Predpokladajme, že definujete masku na stĺpci [Employee].[Salary] . Používateľ sa priamo pripojí k databáze a začne hádať hodnoty, pričom nakoniec odvodí [Salary] hodnotu v tabuľke Employees . Spúšťajú dotaz na rozsah proti tabuľke Employees :

SELECT ID, Name, Salary FROM Employees
WHERE Salary > 99999 and Salary < 100001;

Dotaz vracia:

ID Meno Plat
62543 Jane Doe 0
91245 Ján Kováč 0

Aj keď Salary je stĺpec maskovaný (hodnoty sa zobrazujú ako 0), klauzula potvrdzuje, WHERE že obaja zamestnanci majú plat medzi 99 999 a 100 001 dolármi. Nepoužívajte len dynamické maskovanie dát na úplné zabezpečenie citlivých údajov pred používateľmi s prístupom k Warehouse alebo SQL analytics endpointu. Dynamické maskovanie dát je vhodné na zabránenie náhodnému odhaleniu citlivých údajov, ale nechráni pred zlomyseľným úmyslom vyvodzovať základné údaje.

Správne spravujte bezpečnosť na úrovni objektu pomocou SQL granulárnych oprávnení a vždy dodržiavajte princíp najmenších privilégií.

Ďalší krok