Cvičení – zabezpečení dat při přenosu, v klidovém stavu a při zobrazení

Dokončeno

Databáze marketplaceDb uchovává informace, které jsou citlivé, například fyzické adresy, e-mailové adresy a telefonní čísla. V případě zveřejnění by útočníci se zlými úmysly mohli tyto informace použít k poškození vaší firmy nebo vašich zákazníků. Podívejte se, jak můžete použít šifrování a maskování dat k vylepšení zabezpečení databáze.

Šifrování sítě TLS

Azure SQL Database vynucuje šifrování TLS (Transport Layer Security) vždy pro všechna připojení, což zajišťuje šifrování všech dat při přenosu mezi databází a klientem. Pomocí šifrování TLS můžete zajistit, aby každý, kdo by mohl zachytit provoz mezi aplikačním serverem a databází, nemohl číst data. Šifrování TLS je standard zabezpečení provozu přes internet a v tomto případě zajišťuje, že síťový provoz do vaší databáze Azure SQL a z této databáze bude ve výchozím nastavení zabezpečený.

Transparentní šifrování dat

Azure SQL Database chrání vaše neaktivní uložená data pomocí transparentního šifrování dat. Transparentní šifrování dat provádí šifrování a dešifrování neaktivní uložené databáze, souvisejících záloh a souborů transakčních protokolů v reálném čase a nevyžaduje žádné změny v aplikaci. Transparentní šifrování dat provádí šifrování vstupně-výstupních operací v reálném čase a dešifrování dat na úrovni stránky pomocí šifrovacího klíče databáze. Každá stránka se při načtení do paměti dešifruje a pak se před zápisem na disk zašifruje.

Ve výchozím nastavení je transparentní šifrování dat povolené pro všechny nově nasazené databáze Azure SQL. Je důležité zkontrolovat, že šifrování dat není vypnuté. Starší databáze Azure SQL Serveru nemusí mít povolené transparentní šifrování dat.

Podívejte se na web Azure Portal, kde je transparentní šifrování dat nakonfigurované v databázi marketplaceDb .

  1. Pomocí stejného účtu, kterým jste aktivovali sandbox, se přihlaste k webu Azure Portal.

  2. Na panelu hledání v horní části webu Azure Portal vyhledejte marketplaceDb a pak vyberte databázi.

  3. V levém podokně nabídek v části Zabezpečení vyberte Šifrování dat.

  4. Ověřte, že možnost Šifrování dat je nastavena na Zapnuto. Stav šifrování by měl být Šifrováno.

Vzhledem k tomu, že nové databáze jsou ve výchozím nastavení šifrované, můžete mít jistotu, že jsou vaše data na disku zašifrovaná hned po vytvoření databáze.

Poznámka:

Azure obsahuje integrovanou službu s názvem Microsoft Defender for Cloud, která vám poskytne přehled o zabezpečení vašeho prostředí, včetně databází Azure SQL. Microsoft Defender pro cloud označí všechny databáze, u kterých není povolené transparentní šifrování dat, a umožňuje vytvářet sestavy a provádět akce pro zabezpečení dat.

Dynamické maskování dat

Při spuštění dotazu v předchozí lekci si můžete všimnout, že některé informace v databázi jsou citlivé. Existují telefonní čísla, e-mailové adresy a další informace, které nemusí být vhodné plně zobrazovat všem uživatelům s přístupem k datům.

Možná nechcete, aby vaši uživatelé viděli celé telefonní číslo nebo e-mailovou adresu, ale přesto chcete zpřístupnit část dat zástupcům zákaznických služeb k identifikaci zákazníka. Pomocí funkce dynamického maskování dat služby Azure SQL Database můžete omezit data, která se zobrazí uživateli. Dynamické maskování dat je funkce zabezpečení založená na zásadách, která skryje citlivá data v sadě výsledků dotazu nad určenými databázovými poli, zatímco data v databázi se nemění.

Pravidla maskování dat se skládají ze sloupce, na který se má maska použít, a způsobu, jak se tato data mají maskovat. Můžete vytvořit vlastní formát maskování nebo použít některou ze standardních masek, například:

  • Výchozí hodnota, která místo daného datového typu zobrazuje výchozí hodnotu
  • Hodnota platební karty, která zobrazuje pouze poslední čtyři číslice čísla, převede všechna ostatní čísla na malá písmena x.
  • e-mail, který skryje název domény a vše kromě prvního znaku názvu e-mailového účtu;
  • číslo, které specifikuje náhodné číslo v rozsahu hodnot; Například u měsíce a roku doby platnosti platební karty byste mohli vybrat náhodné měsíce od 1 do 12 a nastavit rozsah let od 2018 do 3000.
  • Vlastní řetězec, který umožňuje nastavit počet znaků vystavených na začátku dat, počet znaků vystavených na konci dat a znaky, které se opakují pro zbývající data.

Když správci databáze zadají dotaz na sloupce, stále uvidí původní hodnoty. Nesprávci vidí maskované hodnoty. Ostatním uživatelům můžete povolit zobrazení nemaskovaných verzí tak, že je přidáte do uživatelů SQL vyloučených ze seznamu maskování.

Podívejte se, jak by maskování dat fungovalo v databázi marketplaceDb .

  1. Na portálu na panelu databáze marketplaceDb v levém podokně nabídek v části Zabezpečení vyberte Dynamické maskování dat.

    Na obrazovce s pravidly maskování se zobrazí seznam existujících dynamických masek dat a doporučení pro sloupce, na které byste potenciálně měli dynamickou masku dat použít.

    Screenshot webu Azure Portal zobrazující seznam doporučených masek pro různé databázové sloupce ukázkové databáze

  2. Přidejte masku pro telefonní číslo, které zobrazuje jenom poslední čtyři číslice. Výběrem tlačítka Přidat masku v horní části otevřete dialogové okno Přidat pravidlo maskování.

  3. Vyberte následující hodnoty.

    Nastavení Hodnota
    Schéma SalesLT
    Tabulka Zákazník
    Sloupec Phone (Telefon) (nvarchar)
    Formát pole masky Vlastní řetězec (předpona [výplň] přípona)
    Vystavená předpona 0
    Vyplňující řetězec XXX-XXX-
    Vystavená přípona 4
  4. Výběrem možnosti Přidat přidejte pravidlo maskování.

    Screenshot webu Azure Portal znázorňující hodnoty, které se mají přidat do pravidla maskování

  5. Přidejte ještě jednu pro e-mailovou adresu. Dalším výběrem tlačítka Přidat masku v horní části otevřete dialogové okno Přidat pravidlo maskování.

    Nastavení Hodnota
    Schéma SalesLT
    Tabulka Zákazník
    Sloupec EmailAddress (nvarchar)
    Formát pole masky E-mail (aXXX@XXX.com)
  6. Výběrem možnosti Přidat přidejte pravidlo maskování.

  7. Každá nová maska se přidá do seznamu pravidel maskování. Pokud chcete masky použít, vyberte Uložit .

Podívejte se, jak maskování dat mění váš dotaz.

  1. Teď se znovu přihlaste k databázi, ale jako uživatel ApplicationUser .

    sqlcmd -S tcp:[server-name].database.windows.net,1433 -d marketplaceDb -U 'ApplicationUser' -P '[password]' -N -l 30
    
  2. Spusťte následující dotaz.

    SELECT FirstName, LastName, EmailAddress, Phone FROM SalesLT.Customer;
    GO
    

    Podívejte se, jak se výstup maskuje.

    FirstName     LastName      EmailAddress         Phone
    ------------- ------------- -------------------- ------------
    Orlando       Gee           oXXX@XXXX.com        XXX-XXX-0173
    Keith         Harris        kXXX@XXXX.com        XXX-XXX-0127
    Donna         Carreras      dXXX@XXXX.com        XXX-XXX-0130
    Janet         Gates         jXXX@XXXX.com        XXX-XXX-0173
    ...
    

Při vytvořených pravidlech maskování se data maskují pomocí vámi zadaného formátu. Tato pravidla umožňují zástupcům služeb zákazníkům ověřit zákazníka s posledními čtyřmi číslicemi svého telefonního čísla, ale skryje celé číslo a e-mailovou adresu zákazníka.