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 údajov obmedzuje expozíciu citlivých údajov tým, že ich maskuje znevýhodneným používateľom. Možno ho použiť na výrazné zjednodušenie návrhu a kódovania zabezpečenia vo vašej aplikácii.
Dynamické maskovanie údajov pomáha zabrániť neoprávnenému zobrazeniu citlivých údajov tým, že správcom umožňuje určiť, koľko citlivých údajov sa má zobraziť, s minimálnym vplyvom na vrstvu aplikácie. Dynamické maskovanie údajov je možné nakonfigurovať v určených databázových poliach na skrytie citlivých údajov vo výsledných množinách dotazov. Pri dynamickom maskovaní údajov sa údaje v databáze nezmenia, takže sa môžu použiť v existujúcich aplikáciách, pretože na výsledky dotazu sa použijú pravidlá maskovania. Mnohé aplikácie môžu maskovať citlivé údaje bez toho, aby upravovali existujúce dotazy.
- Politika centrálneho maskovania údajov funguje priamo na citlivých poliach v databáze.
- Môžete určiť privilegovaných používateľov alebo roly, ktoré majú prístup k citlivým údajom.
- Dynamické maskovanie údajov je vybavené úplnými maskovaním a funkciami čiastočného maskovania a náhodnou maskou číselných údajov.
- Jednoduché príkazy Transact-SQL definujú a spravujú masky.
Účelom dynamického maskovania údajov je obmedziť vystavenie citlivých údajov, čím sa zabráni používateľom, ktorí by nemali mať prístup k údajom v ich zobrazení. Dynamické maskovanie údajov nemá za cieľ zabrániť používateľom databázy pripojiť sa priamo k databáze a spúšťať vyčerpávajúce dotazy, ktoré odhaľujú časti citlivých údajov.
Dynamické maskovanie údajov je doplnkom k ďalším funkciám zabezpečenia služby Fabric, ako je napríklad zabezpečenie na úrovni stĺpca a zabezpečenie na úrovni riadkov. Na ochranu citlivých údajov v databáze sa dôrazne odporúča používať tieto funkcie ochrany údajov.
Definovanie dynamickej masky údajov
Pre stĺpec v tabuľke možno definovať pravidlo pre maskovanie, aby sa údaje v danom stĺpci zakryli. K dispozícii sú štyri typy mask.
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()') |
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.1234 5XXXXXXX . Ďalší príklad: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(5,"XXXXXXX",0)') Takto sa zmení telefónne číslo na 555.123.1234 555.1XXXXXXX . |
Ďalšie príklady nájdete v téme Implementácia dynamického maskovania údajov v službe Synapse Data Warehouse.
Povolenia
Používateľom bez práv správca, člen alebo prispievateľ v pracovnom priestore a bez zvýšených povolení v sklade sa zobrazia maskované údaje.
Ak chcete vytvoriť tabuľku s dynamickou maskou údajov, len štandardnú hodnotu CREATE TABLE
a ALTER
povolenia schémy, nepotrebujete žiadne špeciálne povolenie.
Pridanie, nahradenie alebo odstránenie masky stĺpca vyžaduje ALTER ANY MASK
povolenie a ALTER
povolenie v tabuľke. Je vhodné poskytnúť ALTER ANY MASK
to bezpečnostnému dôstojníkovi.
Používatelia s SELECT
povolením pre tabuľku môžu zobraziť údaje tabuľky. Stĺpce, ktoré sú definované ako maskované, budú zobrazovať maskované údaje. UNMASK
Udeľte povolenie používateľovi, aby mohol načítať nezoradené údaje zo stĺpcov, pre ktoré je definované maskovanie.
Povolenie CONTROL
v databáze zahŕňa ALTER ANY MASK
povolenie a UNMASK
, ktoré používateľovi umožňuje zobraziť nezoskryné údaje. Správcovia používatelia alebo roly, ako napríklad správca, člen alebo prispievateľ, majú v databáze predvolene povolenie na ovládanie a predvolene môžu zobrazovať nezoradené údaje. Zvýšené povolenia v sklade obsahujú CONTROL
povolenie.
Bezpečnostné hľadisko: obchádzanie maskovania pomocou metód inferencie alebo brute-force
Dynamické maskovanie údajov je navrhnuté tak, aby zjednodušili vývoj aplikácií obmedzením expozície údajov v množine preddefinovaných dotazov používaných aplikáciou. Hoci dynamické maskovanie údajov môže byť užitočné aj na to, aby sa zabránilo náhodnému vystaveniu citlivých údajov pri priamom prístupe k údajom, je dôležité poznamenať, že znevýhodnený používatelia s povoleniami na dotazovanie môžu použiť techniky na získanie prístupu k skutočným údajom.
Predstavte si napríklad používateľa, ktorý má dostatočné oprávnenia na spúšťanie dotazov v sklade, a snaží sa "odhadnúť" základné údaje a nakoniec odvodiť skutočné hodnoty. Predpokladajme, že v stĺpci je definovaná [Employee].[Salary]
maska a tento používateľ sa pripojí priamo k databáze a začne odhadovať hodnoty a nakoniec odvodí [Salary]
hodnotu v tabuľke Employees
:
SELECT ID, Name, Salary FROM Employees
WHERE Salary > 99999 and Salary < 100001;
Výsledkom je:
ID | Meno | Plat |
---|---|---|
62543 | Jane Doe | 0 |
91245 | Ján Kováč | 0 |
To ukazuje, že dynamické maskovanie údajov by sa nemalo používať samostatne na úplné zabezpečenie citlivých údajov od používateľov s prístupom dotazov k koncovému bodu analýzy Warehouse alebo SQL. Je vhodné, ak chcete predísť vystaveniu citlivým údajom, ale neochráni sa pred škodlivým zámerom odvodiť základné údaje.
Je dôležité správne spravovať zabezpečenie na úrovni objektu s podrobnými povoleniami SQL a vždy dodržiavať minimálnu zásadu požadovaných povolení.
Súvisiaci obsah
- Roly pracovného priestoru v sklade údajov v službe Fabric
- Zabezpečenie na úrovni stĺpcov v sklade údajov v službe Fabric
- Zabezpečenie na úrovni riadkov v sklade údajov služby Fabric
- Zabezpečenie skladu údajov v službe Microsoft Fabric