Dinamikus adatmaszkolás a Fabric-adattárházakban

A következőkre vonatkozik: SQL Analytics-végpont és Warehouse a Microsoft Fabricben

A dinamikus adatmaszkolás korlátozza a bizalmas adatexpozíciót azáltal, hogy maszkolja a nem hátrányos helyzetű felhasználók számára. It can be used to greatly simplify the design and coding of security in your application.

A dinamikus adatmaszkolás segít megelőzni a bizalmas adatok jogosulatlan megtekintését azáltal, hogy lehetővé teszi a rendszergazdák számára, hogy megadják, mennyi bizalmas adatot fedjenek fel, minimális hatással az alkalmazásrétegre. A dinamikus adatmaszkolás konfigurálható a kijelölt adatbázismezőkben, hogy bizalmas adatokat rejtsen el az eredményhalmazokban. Dinamikus adatmaszkolás esetén az adatbázis adatai nem változnak, így meglévő alkalmazásokkal is használhatók, mivel maszkolási szabályok vonatkoznak a lekérdezési eredményekre. Számos alkalmazás elfedheti a bizalmas adatokat a meglévő lekérdezések módosítása nélkül.

  • A központi adatmaszkolási szabályzat közvetlenül az adatbázis bizalmas mezőire hat.
  • Jelölje ki a bizalmas adatokhoz hozzáféréssel rendelkező kiemelt felhasználókat vagy szerepköröket.
  • A dinamikus adatmaszkolás teljes maszkolást és részleges maszkolást, numerikus adatok véletlenszerű maszkolását tartalmazza.
  • Az egyszerű Transact-SQL-parancsok maszkokat definiálnak és kezelnek.

A dinamikus adatmaszkolás célja a bizalmas adatok expozíciójának korlátozása, megakadályozva, hogy azok a felhasználók, akik nem férhetnek hozzá az adatokhoz, ne tekinthessék meg őket. A dinamikus adatmaszkolás nem célja annak megakadályozása, hogy az adatbázis felhasználói közvetlenül csatlakozzanak az adatbázishoz, és olyan kimerítő lekérdezéseket futtasson, amelyek elérhetővé teszik a bizalmas adatok egy részét.

A dinamikus adatmaszkolás kiegészíti a Háló egyéb biztonsági funkcióit, például az oszlopszintű biztonságot és a sorszintű biztonságot. Erősen ajánlott ezeket az adatvédelmi funkciókat együtt használni az adatbázisban lévő bizalmas adatok védelme érdekében.

Dinamikus adatmaszk definiálása

A maszkoló szabály definiálható egy tábla egyik oszlopán az oszlopban lévő adatok elrejtéséhez. Ötféle maszk érhető el.

Function Leírás Példák
Alapértelmezett Teljes maszkolás a kijelölt mezők adattípusainak megfelelően.

Sztring típusú adattípusok esetén használja XXXX (vagy kevesebb) ha a mező mérete kevesebb, mint 4 karakter (karakter, nchar, varchar, nvarchar, szöveg, ntext).

Numerikus adattípusokhoz használjon nulla értéket (bigint, bit, decimális, int, pénz, numerikus, smallint, smallmoney, tinyint, float, real).

A dátum- és időadattípusokhoz használja 1900-01-01 00:00:00.0000000 a következőt: (dátum, datetime2, datetime, datetimeoffset, smalldatetime, time).

Bináris adattípusok esetén használja a 0 ASCII-érték egyetlen bájtját (bináris, varbináris, kép).
Példa oszlopdefiníció szintaxisa: Phone# varchar(12) MASKED WITH (FUNCTION = 'default()') NULL

Példa az alter szintaxisra: ALTER COLUMN Gender ADD MASKED WITH (FUNCTION = 'default()')
E-mail Maszkolásos módszer, amely egy e-mail-cím első betűjét és a ".com" állandó utótagot teszi elérhetővé e-mail-cím formájában. aXXX@XXXX.com. Példadefiníció szintaxisa: Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULL

Példa az alter szintaxisra: ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()')
Véletlenszerű Egy véletlenszerű maszkoló függvény, amely bármilyen numerikus típuson használható az eredeti érték egy megadott tartományon belüli véletlenszerű értékkel való maszkolásához. Példadefiníció szintaxisa: Account_Number bigint MASKED WITH (FUNCTION = 'random([start range], [end range])')

Példa az alter szintaxisra: ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)')
Egyéni sztring Maszkolásos módszer, amely az első és az utolsó betűt teszi elérhetővé, és középen hozzáad egy egyéni kitöltési sztringet. prefix,[padding],suffix

Ha az eredeti érték túl rövid a teljes maszk befejezéséhez, az előtag vagy utótag egy része nem lesz közzétéve.
Példadefiníció szintaxisa: FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(prefix,[padding],suffix)') NULL

Példa az alter szintaxisra: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)')

Így egy telefonszámot a 555.123.1234 következőképpen alakít át 5XXXXXXX: .

További példa:

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

Így egy telefonszámot a 555.123.1234 következőképpen alakít át 555.1XXXXXXX: .

További példákért lásd : Dinamikus adatmaszkolás implementálása a Synapse Data Warehouse-ban.

Permissions

A munkaterületen Rendszergazda istrator,tag- vagy közreműködői jogosultsággal nem rendelkező felhasználók, valamint a Raktár emelt szintű engedélyei nélkül maszkolt adatok jelennek meg.

Nincs szükség külön engedélyre a dinamikus adatmaszkot tartalmazó táblák létrehozásához, csak a standard CREATE TABLE és ALTER a sémaengedélyek alapján.

Egy oszlop maszkjának hozzáadásához, cseréjéhez vagy eltávolításához engedélyre ALTER ANY MASK és ALTER engedélyre van szükség a táblában. Célszerű megadni ALTER ANY MASK egy biztonsági tisztnek.

A táblán engedéllyel rendelkező SELECT felhasználók megtekinthetik a tábla adatait. A maszkoltként definiált oszlopok maszkolt adatokat fognak megjeleníteni. Adjon engedélyt egy UNMASK felhasználónak, hogy engedélyezze számukra a maszkolatlan adatok lekérését azokból az oszlopokból, amelyekhez maszkolás van definiálva.

Az CONTROL adatbázis engedélye tartalmazza azokat az ALTER ANY MASK engedélyeket is UNMASK , amelyek lehetővé teszik a felhasználó számára a maszkolt adatok megtekintését. Rendszergazda felhasználók vagy szerepkörök( például Rendszergazda, tag vagy közreműködő) rendelkeznek CONTROL engedéllyel az adatbázison tervezés alapján, és alapértelmezés szerint megtekinthetik a maszkolt adatokat. A Warehouse emelt szintű engedélyei közé tartozik CONTROL az engedély.

Biztonsági szempontok: a maszkolás megkerülése következtetési vagy találgatásos technikákkal

A dinamikus adatmaszkolás úgy lett kialakítva, hogy egyszerűsítse az alkalmazásfejlesztést azáltal, hogy korlátozza az adatexpozíciót az alkalmazás által használt előre definiált lekérdezések halmazában. Bár a dinamikus adatmaszkolás hasznos lehet arra is, hogy megakadályozza a bizalmas adatok véletlen expozícióját az adatok közvetlen elérésekor, fontos megjegyezni, hogy a lekérdezési engedélyekkel nem rendelkező felhasználók technikákat alkalmazhatnak a tényleges adatokhoz való hozzáféréshez.

Vegyük például azt a felhasználót, aki rendelkezik megfelelő jogosultságokkal a lekérdezések warehouse-on való futtatásához, és megpróbálja "kitalálni" a mögöttes adatokat, és végső soron a tényleges értékeket következtetni. Tegyük fel, hogy egy maszk van definiálva az oszlopban, és ez a [Employee].[Salary] felhasználó közvetlenül csatlakozik az adatbázishoz, és elkezdi kitalálni az értékeket, végül pedig a táblában lévő Employees értékre [Salary] következtet:

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

Találatok:

Azonosító Name Salary
62543 Jane Doe 0
91245 John Smith 0

Ez azt mutatja, hogy a dinamikus adatmaszkolást nem szabad egyedül használni a bizalmas adatok teljes körű védelmére a Warehouse- vagy SQL Analytics-végponthoz lekérdezési hozzáféréssel rendelkező felhasználók számára. Alkalmas a bizalmas adatexpozíció megelőzésére, de nem véd a mögöttes adatok következtetésére irányuló rosszindulatú szándékkal szemben.

Fontos, hogy az sql részletes engedélyekkel megfelelően kezelje az objektumszintű biztonságot, és mindig kövesse a minimálisan szükséges engedélyek elvét.

Következő lépés