Ochrona danych
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:
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.
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 JOIN
operatorów , GROUP BY
i 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.
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:
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 .