Ochrona danych

Ukończone

Po skonfigurowaniu i zabezpieczeniu dostępu do sieci i tożsamości rozważmy sposób chronienia danych — bez względu na to, czy są one magazynowane, przenoszone, czy też wyświetlane przez użytkowników i administratorów.

Szyfrowanie danych

Połączenia szyfrowane są wymuszane przez usługę Azure SQL Database z opcją dodatkowego określenia wymaganej minimalnej wersji (1.0, >1.1 lub >1.2) dla ruchu przychodzącego protokołu Transport Layer Security (>TLS). Zalecamy wymuszanie szyfrowania na kliencie, aby uniknąć negocjacji serwera i nie ufać certyfikatowi serwera jako najlepsze rozwiązanie.

Transparent Data Encryption

Funkcja Transparent Data Encryption (TDE) zapewnia szyfrowanie danych magazynowanych i jest domyślnie włączona dla wszystkich nowych baz danych w usłudze Azure SQL Database. Można ją skonfigurować dla wszystkich opcji wdrażania za pomocą przełącznika w witrynie Azure Portal, jak pokazano poniżej:

Zrzut ekranu przedstawiający potwierdzanie, że funkcja TDE znajduje się w witrynie Azure Portal.

Na poziomie serwera możesz również użyć klucza zarządzanego przez usługę lub użyć opcji ByOK (Bring Your Own Key) przy użyciu opcji Klucz zarządzany przez klienta. Ustawieniem domyślnym jest pozostawienie usłudze platformy Azure zarządzania kluczem. Platforma Azure automatycznie generuje klucz do szyfrowania baz danych i zarządza rotacją kluczy. Wiesz już, jak to zrobić w witrynie Azure Portal, ale możesz również użyć programu Azure PowerShell, interfejsu wiersza polecenia platformy Azure, języka Transact-SQL (T-SQL) lub interfejsów API REST.

Zrzut ekranu przedstawiający widok serwera opcji TDE.

Klucze zarządzane przez klienta z funkcją TDE

Alternatywnie możesz użyć rozwiązania BYOK i skorzystać z magazynu kluczy platformy Azure. Zalety używania kluczy zarządzanych przez klienta to:

  • Pełna i szczegółowa kontrola nad użyciem i zarządzaniem ochroną TDE
  • Przezroczystość użycia funkcji ochrony TDE
  • Możliwość wdrożenia rozdzielenia obowiązków w zarządzaniu kluczami i danymi w organizacji
  • Administrator magazynu kluczy może odwołać uprawnienia dostępu do klucza, aby uniemożliwić zaszyfrowaną bazę danych
  • Centralne zarządzanie kluczami w usłudze AKV
  • Większe zaufanie klientów końcowych, ponieważ usługa AKV została zaprojektowana tak, aby firma Microsoft nie mogła wyświetlać ani wyodrębniać kluczy szyfrowania

Możesz również skorzystać z użycia tożsamości zarządzanej przypisanej przez użytkownika z kluczami zarządzanymi przez klienta dla funkcji TDE, które:

  • Umożliwia wstępne autoryzowanie dostępu do magazynu kluczy dla serwerów logicznych usługi Azure SQL przez utworzenie tożsamości zarządzanej przypisanej przez użytkownika i przyznanie jej dostępu do magazynu kluczy, nawet przed utworzeniem serwera lub bazy danych.
  • Umożliwia utworzenie serwera logicznego Usługi Azure SQL z włączonym szyfrowaniem TDE i kluczem CMK.
  • Umożliwia przypisanie tej samej tożsamości zarządzanej przypisanej przez użytkownika do wielu serwerów, eliminując konieczność indywidualnego włączenia przypisanej przez system tożsamości zarządzanej dla każdego serwera logicznego usługi Azure SQL i zapewnienia mu dostępu do magazynu kluczy.
  • Zapewnia możliwość wymuszania klucza zarządzanego przez klienta w czasie tworzenia serwera za pomocą dostępnych wbudowanych zasad platformy Azure.

Automatyczna rotacja kluczy została wprowadzona dla kluczy zarządzanych przez klienta przy użyciu funkcji TDE. Po włączeniu serwer stale sprawdza magazyn kluczy pod kątem wszystkich nowych wersji klucza używanego jako funkcja ochrony TDE. Jeśli zostanie wykryta nowa wersja klucza, funkcja ochrony TDE na serwerze zostanie automatycznie obracana do najnowszej wersji klucza w ciągu 60 minut.

Zawsze szyfrowane

Istnieje również możliwość skorzystania z szyfrowania na poziomie kolumny, które jest obsługiwane w usłudze Azure SQL tak samo jak w programie SQL Server. Ten proces obejmuje szyfrowanie danych poufnych po stronie klienta przy użyciu kluczy, które nigdy nie są przekazywane do systemu bazy danych. Dodatkowo sterownik klienta w sposób przezroczysty szyfruje parametry zapytania i odszyfrowuje zaszyfrowane wyniki. Obecnie istnieje obsługa zaszyfrowanych danych na potrzeby porównywania równości, w tym JOINoperatorów , GROUP BYi DISTINCT przez szyfrowanie deterministyczne.

Funkcja Always Encrypted z bezpiecznymi enklawami rozszerza możliwości przetwarzania poufnego funkcji Always Encrypted, umożliwiając szyfrowanie w miejscu i bogatsze poufne zapytania. Funkcja Always Encrypted z bezpiecznymi enklawami jest teraz dostępna dla usługi Azure SQL Database, ale nie jest jeszcze obsługiwana dla usługi Azure SQL Managed Instance.

Dynamiczne maskowanie danych

Czasami chcesz maskować lub modyfikować pewne dane, tak aby nieuprzywilejowani użytkownicy ich nie widzieli, ale nadal mogli wykonywać zapytania obejmujące te dane. Ta funkcja jest obsługiwana tak samo jak w programie SQL Server. Jednak w witrynie Azure Portal są dostępne dodatkowe możliwości i widoki, które umożliwiają wyświetlanie rekomendacji dotyczących pól do maskowania.

Zrzut ekranu przedstawiający zalecenia dotyczące dynamicznego maskowania danych w witrynie Azure Portal.

Przyjrzyjmy się przykładowi, w którym dane zawierają poufne informacje, takie jak nazwy i adresy e-mail. Maskę można zastosować do tych kolumn w witrynie Azure Portal, wybierając menu Dynamiczne maskowanie danych w obszarze Zabezpieczenia w okienku konfiguracji bazy danych SQL lub przy użyciu następujących poleceń języka 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 powyższych poleceń wynika, że maskę można zastosować na wiele sposobów za pomocą funkcji.

Jeśli na przykład użytkownicy są przypisani do roli takiej jak DataOfficers (to tylko przykład, nie jest to oficjalna rola), mogą być w stanie wyświetlać dane maskowane. Możesz nadać im UNMASK uprawnienia za pomocą następującego polecenia języka T-SQL:

GRANT UNMASK TO DataOfficers

W zależności od tego, kto wykonuje zapytanie, wyniki będą wyglądać tak, jak pokazano tutaj:

Zrzut ekranu przedstawiający przykład użytkowników z dostępem bez maski.

Wprowadzenie do szczegółowych uprawnień dynamicznego maskowania danych umożliwia przyznawanie lub odwoływanie UNMASK uprawnień na poziomie bazy danych, na poziomie schematu, na poziomie tabeli lub na poziomie kolumny dla użytkownika bazy danych, tożsamości Microsoft Entra, grupy Microsoft Entra lub roli bazy danych.

Zadania dotyczące ochrony danych

Aby skonfigurować ochronę danych, należy wykonać następujące zadania:

  • Upewnij się, że aplikacje wymuszają szyfrowanie połączeń i używają najwyższej wersji protokołu TLS zgodnej z aplikacją, klientami i sterownikami.
  • Oceń i włącz funkcję TDE. Jest to ustawienie domyślne dla nowych baz danych, ale w przypadku migrowania może być konieczne jej włączenie.
  • Korzystaj z dynamicznego maskowania danych.
  • W celu zapewnienia zaawansowanej ochrony można skonfigurować funkcję Always Encrypted z bezpiecznymi enklawami .

Test wiedzy

1.

Jak można zarządzać tym, kto ma dostęp pozwalający wyświetlać dane maskowane?

2.

Które operatory są obecnie obsługiwane w usłudze Azure SQL w przypadku porównywania za pomocą logiki równości danych zaszyfrowanych przy użyciu funkcji Always Encrypted?