Miroslav Holec
Premium

Dynamic Data Masking v Azure SQL DB

Miroslav Holec   5. prosince 2016

Tento článek byl napsán v roce 2016. Vývojářské technologie se neustále inovují a článek již nemusí popisovat aktuální stav technologie, ideální řešení a můj současný pohled na dané téma.

Pokud v databázi uchováváte citlivá data, která by neměla být čitelná běžným uživatelům (neadministrátorům), můžete použít praktickou funkci Dynamic Data Masking, která dokáže zamaskovat data v databázových tabulkách dle vašich preferencí.

Jak funguje Dynamic Data masking (DDM)

Princip DDM spočívá v tom, že SQL Serveru řeknete, jaké sloupce jakých databázových tabulek nemají být pro běžné uživatele čitelné. Nedochází přitom k žádným fyzickým změnám na datech. Pokud si uživatel o data zažádá, vrátí se mu data zamaskovaná:

Masking in DB

Možnost je použít i partial DDM, v rámci kterého lze zamaskovat jen určitou část informace. V praxi tak lze zamaskovat například jen 12 ze 16 znaků kreditní karty. Pro partial masking se dají používat různé paterny. Vliv na výkonnost je naprosto minimální, protože data jsou uchovávána standardním způsobem a maskování je realizováno až pro vybrané uživatele těsně před vrácením dat.

Využití této funkce je například při skrývání čísel kreditních karet, ověřovacích tokenů nebo hesel. V praxi se jedná o údaje, která není nikde potřeba zobrazovat ale jsou používána pro ověření. Je nutné dávat pozor především v případě použití různých ORM, pomocí kterých lze načíst data zamaskovaná a hrozí tak riziko, že takto zamaskovaná data se do databáze zpět uloží.

Dále je nutné upozornit na samotné zabezpečení dat. Data, která jsou maskovaná nejsou sice viditelná, ale jsou stále čitelná. Především pokud má uživatel možnost sestavovat libovolné SQL dotazy, nic mu nebrání zamaskovaná data hádat. V případě čísla kreditní karty například znak po znaku.

Co potřebuji pro DDM?

Dynamic Data Masking je nově dostupná funkce ve verzi SQL Serveru 2016. Pokud používáte Azure SQL, tuto funkci máte dostupnou automaticky (pro Azure SQL V12). Nejen, že SQL Azure Vám nabízí neustále nové funkce bez nutnosti manuálních aktualizací SQL Serveru, ale řadu funkcí zpřístupňuje skrze Azure portál. Právě v případě DDM není potřeba psát žádné SQL dotazy, ale veškeré nastavení lze provést přímo v Azure portálu.

Nastavení DDM v Azure Portálu

Nastavení v Azure je velmi jednoduché. Stačí vybrat konkrétní databázi a následně je již možné vybírat tabulky a sloupce k zamaskování včetně paternů.

Azure SQL Data Masking

Omezení

Dynamic Data Masking nelze použít v některých specifických případech:

  • šifrované sloupce (Always Encrypted)
  • sloupce typu FILESTREAM
  • sloupce auto-computed
  • sloupce s DDM nemohou být klíčem pro FULLTEXT index

Podrobnější informace o DDM v Microsoft Azure jsou v dokumentaci Microsoft Azure.