Konfigurowanie replikacji geograficznej i przywracania kopii zapasowych na potrzeby przezroczystego szyfrowania danych przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych
Klucz cmK TDE na poziomie bazy danych jest dostępny dla usługi Azure SQL Database (wszystkie wersje usługi SQL Database). Nie jest ona dostępna dla usługi Azure SQL Managed Instance, lokalnych programu SQL Server, maszyn wirtualnych platformy Azure i usługi Azure Synapse Analytics (dedykowane pule SQL (dawniej SQL DW)).
W tym przewodniku przedstawiono kroki konfigurowania replikacji geograficznej i przywracania kopii zapasowej w usłudze Azure SQL Database. Usługa Azure SQL Database jest skonfigurowana przy użyciu funkcji Transparent Data Encryption (TDE) i kluczy zarządzanych przez klienta (CMK) na poziomie bazy danych przy użyciu tożsamości zarządzanej przypisanej przez użytkownika w celu uzyskania dostępu do usługi Azure Key Vault. Zarówno usługa Azure Key Vault, jak i serwer logiczny dla usługi Azure SQL znajdują się w tej samej dzierżawie usługi Microsoft Entra w tym przewodniku, ale mogą znajdować się w różnych dzierżawach.
Uwaga
Microsoft Entra ID był wcześniej znany jako Azure Active Directory (Azure AD).
Ten sam przewodnik można zastosować do konfigurowania kluczy zarządzanych przez klienta na poziomie bazy danych w innej dzierżawie, uwzględniając parametr identyfikatora klienta federacyjnego. Aby uzyskać więcej informacji, zobacz Zarządzanie tożsamościami i kluczami dla funkcji TDE przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych.
Ważne
Po utworzeniu lub przywróceniu bazy danych w menu Transparent Data Encryption w witrynie Azure Portal zostanie wyświetlona nowa baza danych z tymi samymi ustawieniami co źródłowa baza danych, ale może brakować kluczy. We wszystkich przypadkach, w których nowa baza danych jest tworzona na podstawie źródłowej bazy danych, liczba kluczy wyświetlanych dla docelowej bazy danych w witrynie Azure Portal może być mniejsza niż liczba kluczy wyświetlanych dla źródłowej bazy danych. Wynika to z faktu, że liczba wyświetlanych kluczy zależy od indywidualnych wymagań funkcji używanych do tworzenia docelowej bazy danych. Aby wyświetlić listę wszystkich kluczy dostępnych dla nowo utworzonej bazy danych, użyj dostępnych interfejsów API w temacie Wyświetlanie ustawień klucza zarządzanego przez klienta na poziomie bazy danych w usłudze Azure SQL Database.
Tworzenie bazy danych Azure SQL Database z kluczami zarządzanymi przez klienta na poziomie bazy danych jako pomocniczą lub kopią
Skorzystaj z poniższych instrukcji lub poleceń, aby utworzyć replikę pomocniczą lub skopiować obiekt docelowy usługi Azure SQL Database skonfigurowany z kluczami zarządzanymi przez klienta na poziomie bazy danych. Tożsamość zarządzana przypisana przez użytkownika jest wymagana do konfigurowania klucza zarządzanego przez klienta na potrzeby przezroczystego szyfrowania danych w fazie tworzenia bazy danych.
Tworzenie kopii bazy danych z kluczami zarządzanymi przez klienta na poziomie bazy danych
Aby utworzyć bazę danych w usłudze Azure SQL Database jako kopię z kluczami zarządzanymi przez klienta na poziomie bazy danych, wykonaj następujące kroki:
Przejdź do witryny Azure Portal i przejdź do usługi Azure SQL Database skonfigurowanej przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych. Uzyskaj dostęp do karty Transparent Data Encryption w menu Szyfrowanie danych i sprawdź listę bieżących kluczy używanych przez bazę danych.
Utwórz kopię bazy danych, wybierając pozycję Kopiuj z menu Przegląd bazy danych.
Zostanie wyświetlone menu Tworzenie bazy danych SQL Database — kopiowanie bazy danych . Użyj innego serwera dla tej bazy danych, ale tych samych ustawień co baza danych, którą próbujesz skopiować. W sekcji Transparent Data Encryption Key Management (Zarządzanie kluczami transparent Data Encryption) wybierz pozycję Configure transparent data encryption (Konfigurowanie przezroczystego szyfrowania danych).
Po wyświetleniu menu Transparent Data Encryption przejrzyj ustawienia klucza zarządzanego przez klienta dla tej kopii bazy danych. Ustawienia i klucze powinny być wypełnione tymi samymi tożsamościami i kluczami używanymi w źródłowej bazie danych.
Wybierz pozycję Zastosuj , aby kontynuować, a następnie wybierz pozycję Przejrzyj i utwórz, a następnie utwórz , aby utworzyć kopię bazy danych.
Tworzenie repliki pomocniczej z kluczami zarządzanymi przez klienta na poziomie bazy danych
Przejdź do witryny Azure Portal i przejdź do usługi Azure SQL Database skonfigurowanej przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych. Uzyskaj dostęp do menu Transparent Data Encryption i sprawdź listę bieżących kluczy używanych przez bazę danych.
W obszarze Ustawienia zarządzania danymi dla bazy danych wybierz pozycję Repliki. Wybierz pozycję Utwórz replikę , aby utworzyć replikę pomocniczą bazy danych.
Zostanie wyświetlone menu Tworzenie bazy danych SQL — replika geograficzna . Użyj serwera pomocniczego dla tej bazy danych, ale te same ustawienia co baza danych, którą próbujesz replikować. W sekcji Transparent Data Encryption Key Management (Zarządzanie kluczami transparent Data Encryption) wybierz pozycję Configure transparent data encryption (Konfigurowanie przezroczystego szyfrowania danych).
Po wyświetleniu menu Transparent Data Encryption przejrzyj ustawienia klucza zarządzanego przez klienta dla tej repliki bazy danych. Ustawienia i klucze powinny być wypełnione tymi samymi tożsamościami i kluczami używanymi w podstawowej bazie danych.
Wybierz pozycję Zastosuj , aby kontynuować, a następnie wybierz pozycję Przejrzyj i utwórz, a następnie utwórz , aby utworzyć kopię bazy danych.
Wstępnie wypełnij listę bieżących kluczy używanych przez podstawową bazę danych przy użyciu parametru expand-keys z current parametrem keys-filterjako .
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter current
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (i identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
Utwórz nową bazę danych jako pomocniczą i podaj wstępnie wypełnioną listę kluczy uzyskanych z źródłowej bazy danych i powyższej tożsamości (oraz identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
# Create a secondary replica with Active Geo Replication with the same name as the primary database
az sql db replica create -g $resourceGroup -s $serverName -n $databaseName --partner-server $secondaryServer --partner-database $secondaryDatabase --partner-resource-group $secondaryResourceGroup -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Ważne
$keys to oddzielona spacją lista kluczy pobranych ze źródłowej bazy danych.
Aby utworzyć kopię bazy danych, można użyć polecenia az sql db copy z tymi samymi parametrami.
# Create a copy of a database configured with database level customer-managed keys
az sql db copy -g $resourceGroup -s $serverName -n $databaseName --dest-name $secondaryDatabase -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Wstępnie wypełnij listę bieżących kluczy używanych przez podstawową bazę danych przy użyciu polecenia Get-AzSqlDatabase i -ExpandKeyList parametrów i -KeysFilter "current" . Wyklucz -KeysFilter , jeśli chcesz pobrać wszystkie klucze.
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (i identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
Oto przykład szablonu usługi ARM, który tworzy replikę pomocniczą i kopię bazy danych Azure SQL Database skonfigurowanej przy użyciu tożsamości zarządzanej przypisanej przez użytkownika i funkcji TDE zarządzanej przez klienta na poziomie bazy danych.
Użyj wdrożenia niestandardowego w witrynie Azure Portal i utwórz własny szablon w edytorze. Następnie zapisz konfigurację po wklejeniu w przykładzie.
Wstępnie wypełnij listę bieżących kluczy używanych przez podstawową bazę danych przy użyciu następującego żądania interfejsu API REST:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}?api-version=2022-08-01-preview&$expand=keys($filter=pointInTime('current'))
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (i identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
Utwórz nową bazę danych jako pomocniczą i podaj wstępnie wypełnioną listę kluczy uzyskanych z źródłowej bazy danych i powyższej tożsamości (oraz identyfikator klienta federacyjnego, jeśli konfiguruje dostęp między dzierżawami) w szablonie usługi ARM jako keys_to_add parametr.
Przywracanie bazy danych Azure SQL Database przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych
W tej sekcji przedstawiono procedurę przywracania bazy danych Azure SQL Database skonfigurowanej przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych. Tożsamość zarządzana przypisana przez użytkownika jest wymagana do konfigurowania klucza zarządzanego przez klienta na potrzeby przezroczystego szyfrowania danych w fazie tworzenia bazy danych.
Przywracanie do punktu w czasie
W poniższej sekcji opisano sposób przywracania bazy danych skonfigurowanej przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych do danego punktu w czasie. Aby dowiedzieć się więcej o odzyskiwaniu kopii zapasowych dla usługi SQL Database, zobacz Odzyskiwanie bazy danych w usłudze SQL Database.
Przejdź do witryny Azure Portal i przejdź do usługi Azure SQL Database skonfigurowanej przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych, które chcesz przywrócić.
Aby przywrócić bazę danych do punktu w czasie, wybierz pozycję Przywróć z menu Przegląd bazy danych.
Zostanie wyświetlone menu Tworzenie bazy danych SQL Database — Przywracanie bazy danych . Podaj wymagane informacje o źródle i bazie danych. W sekcji Transparent Data Encryption Key Management (Zarządzanie kluczami transparent Data Encryption) wybierz pozycję Configure transparent data encryption (Konfigurowanie przezroczystego szyfrowania danych).
Po wyświetleniu menu Transparent Data Encryption przejrzyj ustawienia klucza zarządzanego przez klienta dla bazy danych. Ustawienia i klucze powinny zostać wypełnione tymi samymi tożsamościami i kluczami używanymi w bazie danych, którą próbujesz przywrócić.
Wybierz pozycję Zastosuj , aby kontynuować, a następnie wybierz pozycję Przejrzyj i utwórz, a następnie utwórz , aby utworzyć kopię bazy danych.
Wstępnie wypełnij listę kluczy używanych przez podstawową bazę danych przy użyciu parametru expand-keys z punktem przywracania w czasie jako keys-filter.
az sql db show --name $databaseName --resource-group $resourceGroup --server $serverName --expand-keys --keys-filter $timestamp
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (i identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
Utwórz nową bazę danych jako obiekt docelowy przywracania i podaj wstępnie wypełnioną listę kluczy uzyskanych ze źródłowej bazy danych i powyższej tożsamości (oraz identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
# Create a restored database
az sql db restore --dest-name $destName --name $databaseName --resource-group $resourceGroup --server $serverName --subscription $subscriptionId --time $timestamp -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Ważne
$keys to oddzielona spacją lista kluczy pobranych ze źródłowej bazy danych.
Wstępnie wypełnij listę kluczy używanych przez podstawową bazę danych przy użyciu polecenia Get-AzSqlDatabase i -ExpandKeyList parametrów i -KeysFilter "2023-01-01" (2023-01-01 jest przykładem punktu w czasie, do którego chcesz przywrócić bazę danych). Wyklucz -KeysFilter , jeśli chcesz pobrać wszystkie klucze.
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (i identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
Użyj polecenia Restore-AzSqlDatabase z parametrem -FromPointInTimeBackup i podaj wstępnie wypełnioną listę kluczy uzyskanych z powyższych kroków i powyższej tożsamości (oraz identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami) w wywołaniu interfejsu API przy użyciu -KeyListparametrów , , -EncryptionProtector-AssignIdentity-UserAssignedIdentityId, (i w razie potrzeby-FederatedClientId).
W poniższej sekcji opisano sposób przywracania usuniętej bazy danych skonfigurowanej przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych. Aby dowiedzieć się więcej o odzyskiwaniu kopii zapasowych dla usługi SQL Database, zobacz Odzyskiwanie bazy danych w usłudze SQL Database.
Przejdź do witryny Azure Portal i przejdź do serwera logicznego usuniętej bazy danych, którą chcesz przywrócić. W obszarze Zarządzanie danymi wybierz pozycję Usunięte bazy danych.
Wybierz usuniętą bazę danych, którą chcesz przywrócić.
Zostanie wyświetlone menu Tworzenie bazy danych SQL Database — Przywracanie bazy danych . Podaj wymagane informacje o źródle i bazie danych. W sekcji Transparent Data Encryption Key Management (Zarządzanie kluczami transparent Data Encryption) wybierz pozycję Configure transparent data encryption (Konfigurowanie przezroczystego szyfrowania danych).
Po wyświetleniu menu Transparent Data Encryption skonfiguruj sekcję Tożsamość zarządzana przypisana przez użytkownika, Klucz zarządzany przez klienta i Dodatkowe klucze bazy danych dla bazy danych.
Wybierz pozycję Zastosuj , aby kontynuować, a następnie wybierz pozycję Przejrzyj i utwórz, a następnie utwórz , aby utworzyć kopię bazy danych.
Wstępnie wypełnia listę kluczy używanych przez porzuconą bazę danych przy użyciu parametru expand-keys . Zaleca się przekazanie wszystkich kluczy używanych przez źródłową bazę danych. Możesz również podjąć próbę przywrócenia przy użyciu kluczy podanych w czasie usuwania przy użyciu parametru keys-filter .
az sql db show-deleted --name $databaseName --resource-group $resourceGroup --server $serverName --restorable-dropped-database-id "databaseName,133201549661600000" --expand-keys
Ważne
restorable-dropped-database-id można pobrać, wyświetlając listę wszystkich przywracalnych porzuconych baz danych na serwerze i ma format databaseName,deletedTimestamp.
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (i identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
Utwórz nową bazę danych jako element docelowy przywracania i podaj wstępnie wypełnioną listę kluczy uzyskanych z usuniętej źródłowej bazy danych i powyższej tożsamości (oraz identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
# Create a restored database
az sql db restore --dest-name $destName --name $databaseName --resource-group $resourceGroup --server $serverName --subscription $subscriptionId --time $timestamp -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys --deleted-time "2023-02-06T11:02:46.160000+00:00"
Ważne
$keys to oddzielona spacją lista kluczy pobranych ze źródłowej bazy danych.
Wstępnie wypełnia listę kluczy używanych przez podstawową bazę danych przy użyciu polecenia Get-AzSqlDeletedDatabaseBackup i parametru -ExpandKeyList . Zaleca się przekazanie wszystkich kluczy używanych przez źródłową bazę danych. Możesz również podjąć próbę przywrócenia przy użyciu kluczy podanych w czasie usuwania przy użyciu parametru -KeysFilter .
DatabaseId można pobrać, wyświetlając listę wszystkich przywracalnych porzuconych baz danych na serwerze i ma format databaseName,deletedTimestamp.
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (i identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
Użyj polecenia Restore-AzSqlDatabase z parametrem -FromDeletedDatabaseBackup i podaj wstępnie wypełnioną listę kluczy uzyskanych z powyższych kroków i powyższej tożsamości (oraz identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami) w wywołaniu interfejsu API przy użyciu -KeyListparametrów , , -EncryptionProtector-AssignIdentity-UserAssignedIdentityId, (i w razie potrzeby-FederatedClientId).
W poniższej sekcji opisano sposób przywracania geograficznie replikowanej kopii zapasowej bazy danych skonfigurowanej przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych. Aby dowiedzieć się więcej o odzyskiwaniu kopii zapasowych dla usługi SQL Database, zobacz Odzyskiwanie bazy danych w usłudze SQL Database.
Przejdź do witryny Azure Portal i przejdź do serwera logicznego, na którym chcesz przywrócić bazę danych.
W menu Przegląd wybierz pozycję Utwórz bazę danych.
Zostanie wyświetlone menu Tworzenie bazy danych SQL. Wypełnij karty Podstawowe i Sieciowe dla nowej bazy danych. W obszarze Dodatkowe ustawienia wybierz pozycję Kopia zapasowa dla sekcji Użyj istniejących danych i wybierz kopię zapasową z replikacją geograficzną.
Przejdź do karty Zabezpieczenia . W sekcji Transparent Data Encryption Key Management (Zarządzanie kluczami transparent Data Encryption) wybierz pozycję Configure transparent data encryption (Konfigurowanie przezroczystego szyfrowania danych).
Po wyświetleniu menu Transparent Data Encryption wybierz pozycję Klucz zarządzany przez klienta (CMK) na poziomie bazy danych. Tożsamość zarządzana przypisana przez użytkownika, klucz zarządzany przez klienta i dodatkowe klucze bazy danych muszą być zgodne ze źródłową bazą danych, którą chcesz przywrócić. Upewnij się, że tożsamość zarządzana przypisana przez użytkownika ma dostęp do magazynu kluczy zawierającego klucz zarządzany przez klienta, który został użyty w kopii zapasowej.
Wybierz pozycję Zastosuj , aby kontynuować, a następnie wybierz pozycję Przejrzyj i utwórz, a następnie utwórz , aby utworzyć bazę danych kopii zapasowej.
Wstępnie wypełnia listę kluczy używanych przez geograficzną kopię zapasową bazy danych skonfigurowanej przy użyciu kluczy zarządzanych przez klienta na poziomie bazy danych przy użyciu parametru expand-keys .
az sql db geo-backup --database-name $databaseName --g $resourceGroup --server $serverName --expand-keys
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (i identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
Utwórz nową bazę danych jako obiekt docelowy przywracania geograficznego i podaj wstępnie wypełnioną listę kluczy uzyskanych z usuniętej źródłowej bazy danych i powyższej tożsamości (oraz identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
# Create a geo restored database
az sql db geo-backup restore --geo-backup-id "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/recoverableDatabases/{databaseName}" --dest-database $destName --resource-group $resourceGroup --dest-server $destServerName -i --encryption-protector $encryptionProtector --user-assigned-identity-id $umi --keys $keys
Ważne
$keys to oddzielona spacją lista kluczy pobranych ze źródłowej bazy danych.
Wstępnie wypełniaj listę kluczy używanych przez podstawową bazę danych przy użyciu polecenia Get-AzSqlDatabaseGeoBackup i parametru -ExpandKeyList , aby pobrać wszystkie klucze.
DatabaseId można pobrać, wyświetlając listę wszystkich przywracalnych porzuconych baz danych na serwerze i ma format databaseName,deletedTimestamp.
Wybierz tożsamość zarządzaną przypisaną przez użytkownika (i identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami).
Użyj polecenia Restore-AzSqlDatabase z parametrem -FromGeoBackup i podaj wstępnie wypełnioną listę kluczy uzyskanych z powyższych kroków i powyższej tożsamości (oraz identyfikator klienta federacyjnego w przypadku konfigurowania dostępu między dzierżawami) w wywołaniu interfejsu API przy użyciu -KeyListparametrów , , -EncryptionProtector-AssignIdentity-UserAssignedIdentityId, (i w razie potrzeby-FederatedClientId).
Kopie zapasowe długoterminowego przechowywania (LTR) nie udostępniają listy kluczy używanych przez kopię zapasową. Aby przywrócić kopię zapasową LTR, wszystkie klucze używane przez źródłową bazę danych muszą zostać przekazane do obiektu docelowego przywracania LTR.
Opcja automatycznego obracania kluczy dla kopiowanych lub przywróconych baz danych
Nowo skopiowane lub przywrócone bazy danych można skonfigurować do automatycznego obracania klucza zarządzanego przez klienta używanego do przezroczystego szyfrowania danych. Aby uzyskać informacje na temat włączania automatycznego obracania kluczy w witrynie Azure Portal lub przy użyciu interfejsów API, zobacz Automatyczne obracanie kluczy na poziomie bazy danych.
Następne kroki
Zapoznaj się z następującą dokumentacją dotyczącą różnych operacji cmK na poziomie bazy danych: