Eksplorowanie funkcji Transparent Data Encryption
Funkcja Transparent Data Encryption (TDE) programu Microsoft SQL Server szyfruje wszystkie dane w docelowej bazie danych na poziomie strony. Dane są szyfrowane, ponieważ są zapisywane na stronie danych na dysku i odszyfrowywane podczas odczytu do pamięci, co powoduje zaszyfrowanie wszystkich stron danych na dysku.
Funkcja TDE nie szyfruje danych na poziomie tabeli ani kolumny. Każda osoba mająca odpowiednie uprawnienia może odczytywać, kopiować i udostępniać dane. Szyfrowanie danych spoczywających chroni przed przywróceniem kopii zapasowej na niezabezpieczonym serwerze lub kopiowaniem plików dziennika baz danych i plików transakcji na inny niezabezpieczony serwer. Podczas operacji tworzenia kopii zapasowej nie ma miejsca odszyfrowywanie.
Technologia TDE chroni dane magazynowane i jest zgodna z różnymi przepisami branżowymi, regulacjami i wytycznymi. Umożliwia deweloperom oprogramowania szyfrowanie danych przy użyciu algorytmów szyfrowania AES i 3DES bez konieczności zmieniania istniejących aplikacji.
Bazy danych utworzone w usłudze Azure SQL Database po maju 2017 r. mają automatyczne włączenie funkcji TDE. Bazy danych utworzone przed majem 2017 r. wymagają ręcznego włączenia funkcji TDE. W przypadku usługi Azure SQL Managed Instance funkcja TDE jest domyślnie włączona dla baz danych utworzonych po lutym 2019 r. Bazy danych utworzone przed lutym 2019 r. wymagają ręcznego włączenia funkcji TDE.
Aby włączyć funkcję TDE w usłudze Azure SQL Database, edytuj bazę danych w witrynie Azure Portal. W okienku Transparent Data Encryption wybierz pozycję , aby włączyć szyfrowanie danych.
Domyślnie bazy danych w usłudze Azure SQL Database są szyfrowane przy użyciu certyfikatu dostarczonego przez firmę Microsoft (klucza zarządzanego przez usługę). Platforma Azure oferuje również opcję ByOK (Bring Your Own Key), umożliwiając użycie klucza zarządzanego przez klienta utworzonego przez firmę i przekazanego do usługi Azure Key Vault. Jeśli klucz zarządzany przez klienta zostanie usunięty z platformy Azure, połączenia z bazą danych zostaną zamknięte, a dostęp do bazy danych zostanie odrzucony.
Włączenie funkcji TDE w bazie danych programu Microsoft SQL Server jest łatwym procesem, ponieważ wymagane jest tylko kilka poleceń języka T-SQL. Ten proces obejmuje następujące kroki:
- Ustaw klucz główny w bazie danych master przy użyciu
CREATE MASTER KEY ENCRYPTIONpolecenia . - Utwórz certyfikat w bazie danych master przy użyciu
CREATE CERTIFICATEpolecenia . - Utwórz klucz szyfrowania bazy danych w bazie danych przy użyciu
CREATE DATABASE ENCRYPTION KEYpolecenia . - Włącz klucz szyfrowania przy użyciu
ALTER DATABASEpolecenia .
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<your-pwd>';
GO
CREATE CERTIFICATE MyServerCert
WITH SUBJECT = 'TDEDemo_Certificate';
GO
USE [TDE_Demo];
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
ALTER DATABASE TDE_Demo SET ENCRYPTION ON;
GO
Po włączeniu funkcji TDE szyfrowanie bazy danych wymaga czasu, ponieważ każda strona musi być odczytywana, szyfrowana i zapisywana z powrotem na dysku. Większa baza danych, tym dłużej trwa ten proces. Ten proces w tle działa z niskim priorytetem, aby uniknąć przeciążenia operacji wejścia/wyjścia lub procesora systemu.
Certyfikat używany przez TDE musi być ręcznie utworzony i bezpiecznie przechowywany. Program SQL Server integruje się z menedżerami kluczy przedsiębiorstwa (EKMs), takimi jak usługa Azure Key Vault, aby zarządzać kluczami szyfrowania. Zarządzanie certyfikatem ma kluczowe znaczenie, ponieważ jeśli zostanie utracony, a baza danych musi zostać przywrócona z kopii zapasowej, przywracanie kończy się niepowodzeniem, ponieważ nie można odczytać bazy danych.
Uwaga
Aby można było używać funkcji TDE z bazami danych w zawsze włączonej grupie dostępności, należy utworzyć kopię zapasową i przywrócić certyfikat używany do szyfrowania bazy danych i przywrócić go do innych serwerów w grupie dostępności, która będzie hostować kopie bazy danych.
Klucze zarządzane przez klienta
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 zarządzaniem oraz użyciem protektora TDE
- Przezroczystość użycia ochroniarza 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 kluczy, aby uniemożliwić dostęp do zaszyfrowanej bazy 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 tożsamości zarządzanej przez użytkownika z kluczami zarządzanymi przez klienta do TDE, które:
- Umożliwia wstępne uwierzytelnianie 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 (CMK) w czasie tworzenia serwera za pomocą dostępnej wbudowanej polityki platformy Azure.
Automatyczna rotacja kluczy jest wprowadzana dla kluczy zarządzanych przez klienta przy użyciu funkcji TDE. Po włączeniu serwer nieustannie sprawdza magazyn kluczy pod kątem wszelkich nowych wersji klucza używanego jako zabezpieczenie 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.
Szyfrowanie dysków platformy Azure
Oprócz tych funkcji zabezpieczeń programu SQL Server maszyny wirtualne platformy Azure obejmują dodatkową warstwę zabezpieczeń, usługę Azure Disk Encryption — funkcję, która pomaga chronić i chronić dane oraz spełniać zobowiązania organizacji i zgodności. Jeśli używasz funkcji TDE, dane są chronione przez wiele warstw szyfrowania za pomocą usługi Azure Disk Encryption.