Ochrana vašich dat
Po nakonfigurování a zabezpečení identit a přístupu k síti se budeme věnovat ochraně dat. Data můžou být neaktivní uložená, aktivní přenášená nebo prohlížená uživateli a správci.
Šifrování dat
Služba Azure SQL Database vynucuje šifrovaná připojení s možností dalšího určení požadované minimální verze protokolu TLS (Transport Layer Security) (>1.0, >1.1 nebo >1.2). Doporučujeme vynucovat šifrování na klientovi, aby se zabránilo vyjednávání serveru a nedůvěřoval certifikátu serveru jako osvědčeným postupem.
Transparentní šifrování dat
transparentní šifrování dat (TDE) poskytuje šifrování neaktivních uložených dat a je ve výchozím nastavení zapnuté pro všechny nové databáze ve službě Azure SQL Database. Můžete ho nakonfigurovat pro všechny možnosti nasazení s přepínačem na webu Azure Portal, jak je znázorněno tady:
Na úrovni serveru můžete také použít klíč spravovaný službou nebo použít funkci Přineste si vlastní klíč (BYOK) pomocí možnosti Klíč spravovaný zákazníkem. Výchozím nastavením je nechat službu Azure spravovat váš klíč. Azure automaticky vygeneruje klíč pro šifrování databází a spravuje obměny klíčů. Naučili jste se to pomocí webu Azure Portal, ale můžete také použít Azure PowerShell, Azure CLI, Transact-SQL (T-SQL) nebo rozhraní REST API.
Klíče spravované zákazníkem s transparentním šifrováním dat
Můžete alternativně použít BYOK a využít výhod trezoru klíčů Azure. Výhody používání klíčů spravovaných zákazníkem jsou:
- Úplná a podrobná kontrola nad používáním a správou ochrany transparentním šifrováním dat
- Transparentnost použití ochrany transparentním šifrováním dat
- Schopnost implementovat oddělení povinností při správě klíčů a dat v organizaci
- Správce trezoru klíčů může odvolat přístupová oprávnění ke klíči, aby byla zašifrovaná databáze nepřístupná.
- Centrální správa klíčů v AKV
- Větší důvěryhodnost od koncových zákazníků, protože služba AKV je navržená tak, aby Microsoft neviděl nebo extrahovala šifrovací klíče
Můžete také využít použití spravované identity přiřazené uživatelem s klíči spravovanými zákazníkem pro transparentní šifrování dat, které:
- Umožňuje předem autorizovat přístup trezoru klíčů pro logické servery Azure SQL vytvořením spravované identity přiřazené uživatelem a udělením přístupu k trezoru klíčů, a to i před vytvořením serveru nebo databáze.
- Umožňuje vytvoření logického serveru Azure SQL s povoleným transparentním šifrováním dat a klíčem CMK.
- Umožňuje přiřadit stejnou spravovanou identitu přiřazenou uživatelem k více serverům, což eliminuje nutnost jednotlivě zapnout spravovanou identitu přiřazenou systémem pro každý logický server Azure SQL a poskytnout jí přístup k trezoru klíčů.
- Poskytuje možnost vynutit CMK při vytváření serveru pomocí dostupných předdefinovaných zásad Azure.
Automatická obměna klíčů byla zavedena pro klíče spravované zákazníkem pomocí transparentního šifrování dat. Pokud je tato možnost povolená, server nepřetržitě kontroluje trezor klíčů pro všechny nové verze klíče, které se používají jako ochrana transparentním šifrováním dat. Pokud se zjistí nová verze klíče, ochrana transparentním šifrováním dat na serveru se během 60 minut automaticky otočí na nejnovější verzi klíče.
Funkce Always Encrypted
Můžete také využívat šifrování na úrovni sloupců, které Azure SQL podporuje stejně jako SQL Server. Součástí procesu je i šifrování citlivých dat na straně klienta klíči, které nebudou nikdy předány databázovému systému. Ovladač klienta navíc transparentně šifruje parametry dotazu a dešifruje šifrované výsledky. V současné době podporuje šifrovaná data pro porovnání rovnosti, včetně JOIN
GROUP BY
, a DISTINCT
operátorů deterministickým šifrováním.
Funkce Always Encrypted se zabezpečenými enklávy rozšiřuje možnosti důvěrného výpočetního prostředí funkce Always Encrypted tím, že umožňuje místní šifrování a bohatší důvěrné dotazy. Funkce Always Encrypted se zabezpečenými enklávy je teď dostupná pro Azure SQL Database, ale zatím není podporovaná pro spravovanou instanci Azure SQL.
Dynamické maskování dat
V některých případech budete chtít určitá data maskovat nebo upravovat tak, aby je neoprávnění uživatelé sice neviděli, ale mohli zadávat dotazy, které zahrnují jejich data. Tato možnost je podporovaná stejně jako v SQL Serveru. Na webu Azure Portal jsou další funkce a zobrazení, která zobrazují doporučení k maskování polí.
Podívejme se na příklad, ve kterém data obsahují citlivé informace, jako jsou jména a e-mailové adresy. Masku můžete použít na tyto sloupce na webu Azure Portal výběrem nabídky Dynamické maskování dat v části Zabezpečení v konfiguračním podokně databáze SQL nebo pomocí následujících příkazů T-SQL:
ALTER TABLE Data.Membership ALTER COLUMN FirstName
ADD MASKED WITH (FUNCTION = 'partial(1, "xxxxx", 1)')
ALTER TABLE Data.Membership ALTER COLUMN Email
ADD MASKED WITH (FUNCTION = 'email()')
ALTER TABLE Data.Membership ALTER COLUMN DiscountCode
ADD MASKED WITH (FUNCTION = 'random(1, 100)')
GRANT UNMASK to DataOfficers
Z předchozích příkazů je patrné, že funkce nabízejí různé způsoby použití masky.
Pokud mají uživatelé přiřazenu nějakou roli, třeba DataOfficers (jde o příklad, nikoliv o oficiální roli), můžou mít možnost zobrazovat maskovaná data. Oprávnění jim UNMASK
můžete udělit pomocí následujícího příkazu T-SQL:
GRANT UNMASK TO DataOfficers
Podle toho, kdo se dotazuje, budou výsledky vypadat takto:
Úvodem k podrobným oprávněním dynamického maskování dat můžete udělit nebo odvolat UNMASK
oprávnění na úrovni databáze, na úrovni schématu, na úrovni tabulky nebo na úrovni sloupce pro uživatele databáze, identitu Microsoft Entra, skupinu Microsoft Entra nebo roli databáze.
Úkoly pro ochranu dat
Pokud chcete nastavit a nakonfigurovat ochranu dat, postupujte takto:
- Zajistěte, aby vaše aplikace vynutily šifrování připojení a používaly nejvyšší verzi protokolu TLS, která je kompatibilní s vaší aplikací, klienty a ovladači.
- Vyhodnocení a povolení transparentního šifrování dat U nových databází je toto nastavení výchozí, ale v případě migrace ho možná budete muset povolit.
- Využijte výhod dynamického maskování dat.
- Pro pokročilou ochranu můžete nakonfigurovat funkci Always Encrypted se zabezpečenými enklávy .