Konfigurowanie Transparent Data Encryption przy użyciu Azure Key Vault dla SQL Server

Dotyczy:SQL Server

W tym artykule zainstalujesz i skonfigurujesz łącznik SQL Server dla Azure Key Vault, a następnie skonfigurujesz Transparent Data Encryption (TDE) przy użyciu klucza w Azure Key Vault.

Prerequisites

Przed rozpoczęciem korzystania z Azure Key Vault z wystąpieniem SQL Server upewnij się, że spełnione są następujące wymagania wstępne:

Note

W wersji SQL Server 2022 (16.x) CU 12 i nowszych SQL Server on Linux obsługuje rozszerzone zarządzanie kluczami TDE za pomocą Azure Key Vault. Kroki 3 i 4 w tym przewodniku nie są wymagane dla programu SQL Server w systemie Linux.

Szybki przepływ

  1. Wybierz model uwierzytelniania w kroku 1: Konfigurowanie modelu uwierzytelniania.
  2. Utwórz magazyn kluczy i klucz w Kroku 2: Tworzenie magazynu kluczy.
  3. Zainstaluj łącznik w kroku 3: Zainstaluj łącznik SQL Server.
  4. Skonfiguruj wymagania wstępne rejestru w kroku 4: Dodawanie klucza rejestru w celu obsługi dostawcy EKM.
  5. Skonfiguruj SQL Server i zweryfikuj szyfrowanie w kroku 5: Konfigurowanie SQL Server.

Krok 1. Konfigurowanie modelu uwierzytelniania

Ważna

Przed kontynuowanie wybierz model uwierzytelniania:

  • Użyj karty Service principal dla lokalnego programu SQL Server.
  • Użyj karty Tożsamość zarządzana w przypadku programu SQL Server na maszynach wirtualnych platformy Azure lub programu SQL Server z obsługą usługi Azure Arc, w przypadku których obsługiwana jest tożsamość zarządzana.

Macierz obsługiwanych modeli uwierzytelniania:

Model uwierzytelniania wersja SQL Server Gdzie działa SQL Server Supported
Główna usługa Obsługiwane wersje omówione w tym artykule Lokalna maszyna wirtualna Azure SQL Server włączona przez Azure Arc Yes
Tożsamość zarządzana SQL Server 2022 CU17 i nowsze maszyna wirtualna Azure Yes
Tożsamość zarządzana SQL Server 2025 i nowsze SQL Server obsługiwany przez Azure Arc Yes
Tożsamość zarządzana Dowolny On-premises No

Aby przyznać wystąpieniu programu SQL Server uprawnienia dostępu do magazynu kluczy Azure, musisz mieć konto jednostki usługi w Microsoft Entra ID.

  1. Zaloguj się do portalu Azure i wykonaj jedną z następujących czynności:

    • Wybierz przycisk Microsoft Entra ID .

      Zrzut ekranu przedstawiający okienko usług platformy Azure.

    • Wybierz pozycję Więcej usług , a następnie w okienku Wszystkie usługi wpisz Microsoft Entra ID.

  2. Zarejestruj aplikację przy użyciu Microsoft Entra ID, wykonując następujące kroki. Aby uzyskać szczegółowe instrukcje krok po kroku, zobacz sekcję Pobieranie tożsamości dla aplikacji we wpisie w blogu usługi Azure Key Vault, Azure Key Vault — krok po kroku.

    1. Na karcie Zarządzanie zasobu Microsoft Entra ID wybierz pozycję Rejestracje aplikacji.

      Zrzut ekranu przedstawiający stronę przeglądu Microsoft Entra ID w portalu Azure.

    2. Na stronie Rejestracje aplikacji wybierz pozycję Nowa rejestracja.

      Zrzut ekranu przedstawiający okienko Rejestracje aplikacji w witrynie Azure Portal.

    3. W okienku Rejestrowanie aplikacji wprowadź nazwę aplikacji, a następnie wybierz pozycję Zarejestruj.

      Zrzut ekranu przedstawiający okienko Rejestrowanie aplikacji.

    4. W lewym okienku wybierz pozycje Certyfikaty i klucze tajne>Klucze tajne klienta>Nowy klucz tajny klienta.

      Zrzut ekranu przedstawiający okienko Certyfikaty i wpisy tajne dla aplikacji w witrynie Azure Portal.

    5. W obszarze Dodawanie sekretu klienta wprowadź opis i odpowiednią datę wygaśnięcia, a następnie wybierz Dodaj. Nie można wybrać okresu wygaśnięcia dłuższego niż 24 miesiące. Więcej informacji znajdziesz w Dodaj tajny klucz klienta.

      Zrzut ekranu przedstawiający sekcję dodawania tajnego klucza klienta dla aplikacji w portalu Azure.

    6. W okienku Certyfikaty i wpisy tajne w obszarze Wartość wybierz przycisk Kopiuj obok wartości wpisu tajnego klienta, aby użyć go do utworzenia klucza asymetrycznego w SQL Server.

      Zrzut ekranu przedstawiający wartość tajną w portalu Azure.

    7. W okienku po lewej stronie wybierz pozycję Przegląd, a następnie w polu Identyfikator aplikacji (klienta) skopiuj wartość, aby użyć jej do utworzenia klucza asymetrycznego w SQL Server.

      Zrzut ekranu przedstawiający wartość identyfikatora aplikacji (klienta) w okienku Przegląd.

Krok 2: Utwórz magazyn kluczy

Wybierz metodę, której chcesz użyć do utworzenia skarbca kluczy.

Note

Obsługiwane są tylko Azure Key Vault i Azure Key Vault Managed HSM. Moduł HSM w chmurze platformy Azure nie jest obsługiwany.

Utwórz magazyn kluczy za pomocą portalu Azure

Aby utworzyć magazyn kluczy przy użyciu portalu Azure, zobacz Szybki start: tworzenie magazynu kluczy przy użyciu portalu Azure.

Kontrola dostępu oparta na rolach na platformie Azure

Użyj Azure kontroli dostępu opartej na rolach (RBAC), aby zarządzać dostępem do Azure Key Vault. Nie używaj starszych zasad dostępu. Starsze zasady dostępu mają znane luki w zabezpieczeniach, brak obsługi Privileged Identity Management (PIM) i nie powinny być używane w przypadku krytycznych danych i obciążeń. Aby uzyskać więcej informacji na temat uprawnień RBAC usługi Azure Key Vault, zobacz Role wbudowane platformy Azure dla operacji płaszczyzny danych usługi Key Vault.

  1. Przejdź do utworzonego zasobu magazynu kluczy i wybierz ustawienie Kontrola dostępu (IAM).

  2. Wybierz Dodaj>Dodaj przypisanie roli.

    Zrzut ekranu przedstawiający przycisk Dodaj przypisanie roli w okienku Kontrola dostępu (IAM) w witrynie Azure Portal.

  3. Aplikacja EKM lub tożsamość zarządzana wymaga roli użytkownika szyfrowania usługi kryptograficznej Key Vault do wykonywania operacji opakowywanie i odpakowywanie. Wyszukaj Key Vault Crypto Service Encryption User i wybierz rolę. Wybierz Dalej.

    Zrzut ekranu przedstawiający wybieranie przypisania roli w witrynie Azure Portal.

  4. Na karcie Członkowie wybierz opcję Wybierz członków, a następnie wyszukaj aplikację Microsoft Entra lub tożsamość zarządzaną utworzoną w kroku 1. Wybierz aplikację lub tożsamość zarządzaną, a następnie przycisk Wybierz .

    Zrzut ekranu okienka Wybieranie członków w celu dodania przypisania roli w portalu Azure.

  5. Aby ukończyć przypisywanie roli, kliknij dwukrotnie opcję Przejrzyj i przypisz.

Utwórz klucz

Użytkownik tworzący klucz musi mieć rolę Administrator usługi Key Vault . Podobnie jak w poprzednich krokach, dodaj członka tworzącego klucz i przypisz rolę.

  1. W okienku Key Vault wybierz pozycję Klucze , a następnie wybierz opcję Generuj/Importuj. Ta akcja spowoduje otwarcie okienka Tworzenie klucza . Wybierz opcję Generuj i wprowadź nazwę klucza. Łącznik SQL Server wymaga, aby nazwa klucza używała wyłącznie znaków "a-z", "A-Z", "0-9" i "-", przy limicie 26 znaków.

  2. Użyj typu klucza RSA i rozmiaru klucza RSA jako 2048. Obecnie EKM obsługuje tylko klucz RSA. Ustaw odpowiednio daty aktywacji i wygaśnięcia i ustaw wartość Włączone jako Tak.

    Zrzut ekranu przedstawiający okienko Tworzenie klucza.

Konfigurowanie zarządzanego modułu HSM Azure Key Vault (opcjonalnie)

Azure Key Vault Managed HSM (sprzętowy moduł zabezpieczeń) obsługuje program SQL Server i program SQL Server na platformie Azure Virtual Machines (VM) przy użyciu najnowszej wersji SQL Server Connector, a także usługę Azure SQL. Zarządzany moduł HSM to w pełni zarządzana, wysoce dostępna usługa HSM z jedną dzierżawą. Zarządzany moduł HSM zapewnia bezpieczną podstawę dla operacji kryptograficznych i magazynu kluczy. Zarządzany moduł HSM został zaprojektowany tak, aby spełniał najbardziej rygorystyczne wymagania dotyczące zabezpieczeń i zgodności.

Krok 2 pokazuje, jak utworzyć magazyn kluczy i klucz w Azure Key Vault. Opcjonalnie możesz użyć zarządzanego modułu HSM Azure Key Vault do przechowywania lub tworzenia klucza dla łącznika SQL Server. Wykonaj te kroki:

  1. Utwórz zarządzany moduł HSM Azure Key Vault przy użyciu portalu Azure, Azure CLI, programu PowerShell lub szablonu usługi ARM.

  2. Aktywuj zarządzany moduł HSM. Tylko wyznaczeni administratorzy przypisani podczas tworzenia mogą go aktywować. W portalu Azure wybierz zasób Managed HSM, a następnie wybierz Pobierz domenę zabezpieczeń w menu Przegląd. Skorzystaj z jednego z przewodników szybkiego startu, aby aktywować zarządzany moduł HSM.

  3. Przyznaj uprawnienia jednostce usługi Microsoft Entra lub tożsamości zarządzanej umożliwiające dostęp do zarządzanego modułu HSM. Rola Administrator zarządzanego modułu HSM nie daje uprawnień do tworzenia klucza. Podobnie jak w kroku 2, aplikacja EKM lub tożsamość zarządzana musi mieć przypisaną rolę Managed HSM Crypto User lub Managed HSM Crypto Service Encryption User, aby wykonywać operacje opakowywania i odpakowywania. Aby uzyskać więcej informacji, zobacz Lokalne role wbudowane RBAC dla modułu HSM Zarządzanego.

  4. W menu usługi Azure Key Vault Managed HSM w obszarze Ustawienie wybierz pozycję Klucze. W oknie Klucze wybierz pozycję Generuj/Importuj/Przywróć kopię zapasową , aby utworzyć klucz lub zaimportować istniejący klucz.

    Note

    Algorytmy RSA-HSM_2048 i RSA-HSM_3072 są obsługiwane od SQL Server 2022 (16.x) Aktualizacja zbiorcza 13.

    Azure Key Vault zarządzany moduł HSM obsługuje automatyczne obracanie kluczy. Aby uzyskać więcej informacji, zobacz Konfigurowanie automatycznego obracania kluczy w zarządzanym module HSM platformy Azure.

    Zarządzany moduł HSM obsługuje połączenia prywatnych punktów końcowych. Aby uzyskać więcej informacji, zobacz Integrowanie zarządzanego modułu HSM z usługą Azure Private Link. W tej konfiguracji należy włączyć opcję obejścia zaufanej usługi Microsoft w ustawieniach Sieć zarządzanego modułu HSM usługi Azure Key Vault.

Krok 3. Instalowanie łącznika programu SQL Server

Poproś administratora programu SQL Server o pobranie najnowszej wersji łącznika programu SQL Server dla usługi Microsoft Azure Key Vault z Centrum pobierania Microsoft i uruchomienie instalatora.

Zrzut ekranu kreatora instalacji SQL Server Connector.

Domyślnie łącznik jest instalowany w lokalizacji C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault. Tę lokalizację można zmienić podczas instalacji. Jeśli go zmienisz, dostosuj skrypty w następnej sekcji.

Pomyślna instalacja umieszcza Microsoft.AzureKeyVaultService.EKM.dll na komputerze. Ten zestaw jest kryptograficzną biblioteką DLL dostawcy EKM. Zarejestruj go w SQL Server przy użyciu instrukcji CREATE CRYPTOGRAPHIC PROVIDER .

Instalator oferuje również przykładowe skrypty szyfrowania SQL Server.

Aby uzyskać wyjaśnienia kodu błędu, ustawienia konfiguracji lub zadania konserwacji, zobacz:

Krok 4. Dodawanie klucza rejestru w celu obsługi dostawcy EKM

Warning

Tylko administrator SQL Server, który wie dokładnie, co robi, powinien zmodyfikować rejestr. Nieprawidłowe zmiany mogą powodować poważne problemy. Utwórz kopię zapasową rejestru przed wprowadzeniem jakichkolwiek zmian, aby można było przywrócić go w przypadku wystąpienia problemu.

  1. Uruchom regedit, aby otworzyć Edytor Rejestru.

  2. SQL Server Cryptographic Provider Utwórz klucz rejestru pod adresem HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider.

  3. Kliknij prawym przyciskiem SQL Server Cryptographic Provider myszy klucz rejestru, a następnie wybierz pozycję Uprawnienia.

  4. Udziel pełnej kontroli nad kluczem SQL Server Cryptographic Provider do konta użytkownika z uruchomioną usługą SQL Server.

    Zrzut ekranu przedstawiający klucz rejestru EKM w Edytorze rejestru.

  5. Wybierz pozycję Zastosuj, następnie OK.

  6. Zamknij Edytor rejestru i uruchom ponownie usługę SQL Server.

    Note

    Jeśli używasz funkcji TDE z funkcją EKM lub Azure Key Vault w wystąpieniu klastra trybu failover, dodaj również element HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider do procedury punktu kontrolnego rejestru klastra, aby rejestr synchronizował się między węzłami, co ułatwia odzyskiwanie bazy danych po przełączeniu awaryjnym i rotacji kluczy.

    Uruchom następujące polecenie programu PowerShell, aby dodać klucz rejestru do procedury punktu kontrolnego:

    Add-ClusterCheckpoint -RegistryCheckpoint "SOFTWARE\Microsoft\SQL Server Cryptographic Provider" -Resourcename "SQL Server"
    

Krok 5. Konfigurowanie programu SQL Server

Aby uzyskać uwagę na temat minimalnych poziomów uprawnień wymaganych dla każdej akcji w tej sekcji, zobacz B. Często zadawane pytania.

Faza 1. Konfigurowanie dostawcy kryptograficznego i poświadczeń w programie master

Wybierz model uwierzytelniania i wykonaj pasujące kroki.

  1. Uruchom narzędzie sqlcmd lub otwórz program SQL Server Management Studio.

  2. Skonfiguruj program SQL Server do używania EKM, uruchamiając następujący skrypt Transact-SQL:

    -- Enable advanced options.
    USE master;
    GO
    
    EXEC sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    
    -- Enable EKM provider
    EXEC sp_configure 'EKM provider enabled', 1;
    GO
    RECONFIGURE;
    
  3. Zarejestruj łącznik SQL Server jako dostawcę EKM za pomocą SQL Server.

    Utwórz dostawcę kryptograficznego przy użyciu łącznika programu SQL Server, który jest dostawcą EKM dla usługi Azure Key Vault. W tym przykładzie nazwa dostawcy to AzureKeyVault_EKM.

    CREATE CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM
    FROM FILE = 'C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll';
    GO
    

    Note

    Długość ścieżki pliku nie może przekraczać 256 znaków.

  4. Skonfiguruj poświadczenia programu SQL Server na potrzeby logowania do programu SQL Server, aby używać magazynu kluczy.

    Dodaj poświadczenie do każdego loginu, który wykonuje szyfrowanie przy użyciu klucza z magazynu kluczy. Istnieje mapowanie 1:1 między poświadczeniami a loginami — każdy login musi mieć unikalne poświadczenie.

    Zmodyfikuj ten skrypt Transact-SQL w następujący sposób:

    • Edytuj argument IDENTITY (DocsSampleEKMKeyVault), aby wskazać usługę Azure Key Vault.

    • Zastąp pierwszą część argumentu SECRET identyfikatorem klienta Microsoft Entra z kroku 1: Konfigurowanie modelu uwierzytelniania. W tym przykładzie identyfikator klienta jest d956f6b9xxxxxxx.

      Ważna

      Usuń łączniki z identyfikatora aplikacji (klienta).

    • Uzupełnij drugą część argumentu SECRET o Wpis tajny klienta z kroku 1. Końcowy ciąg jest długą sekwencją liter i cyfr bez łączników (z wyjątkiem łączników w samym kluczu tajnym klienta).

    USE master;
    CREATE CREDENTIAL sysadmin_ekm_cred
       -- Set IDENTITY to the vault name (public Azure) or full vault hostname without https:// (sovereign clouds / Managed HSM)
       -- See https://learn.microsoft.com/azure/key-vault/general/about-keys-secrets-certificates#dns-suffixes-for-base-url
       WITH IDENTITY = 'DocsSampleEKMKeyVault',
             --<----Application (Client) ID ---><--Microsoft Entra app (Client) ID secret-->
       SECRET = 'd956f6b9xxxxxxxyrA8X~PldtMCvUZPxxxxxxxx'
    FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM;
    
    -- Add the credential to the SQL Server administrator's domain login
    ALTER LOGIN [<domain>\<login>]
        ADD CREDENTIAL sysadmin_ekm_cred;
    

    Aby zapoznać się z przykładem używania zmiennych i programowego usuwania łączników z identyfikatora klienta, zobacz CREATE CREDENTIAL.

  5. Otwórz klucz usługi Azure Key Vault w instancji programu SQL Server.

    Niezależnie od tego, czy utworzono nowy klucz, czy zaimportowaliśmy klucz asymetryczny w kroku 2: Tworzenie magazynu kluczy, otwórz klucz w SQL Server przy użyciu polecenia CREATE ASYMMETRIC KEY.

    Ważna

    Przed wykonaniem tego kroku należy spełnić wymagania wstępne rejestru.

    W następujących przykładach:

    • Zastąp EKMSampleASYKey nazwą, której chcesz użyć w programie SQL Server.
    • Zastąp element ContosoRSAKey0 nazwą klucza w usłudze Azure Key Vault lub Managed HSM.

    Użyj nazwy klucza bez wersji (zalecane w przypadku większości scenariuszy):

    CREATE ASYMMETRIC KEY EKMSampleASYKey
       FROM PROVIDER [AzureKeyVault_EKM]
       WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0',
          CREATION_DISPOSITION = OPEN_EXISTING;
    

    Użyj określonej wersji klucza, jeśli musisz przypiąć operacje do jednej wersji:

    CREATE ASYMMETRIC KEY EKMSampleASYKey
       FROM PROVIDER [AzureKeyVault_EKM]
       WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0/1a4d3b9b393c4678831ccc60def75379',
          CREATION_DISPOSITION = OPEN_EXISTING;
    

    W tym przykładzie 1a4d3b9b393c4678831ccc60def75379 to konkretna wersja klucza, której program SQL Server używa do operacji na bazie danych.

  6. Utwórz nowe logowanie przy użyciu klucza asymetrycznego w programie SQL Server utworzonym w poprzednim kroku.

    -- Create a login that associates the asymmetric key with this login
    CREATE LOGIN TDE_Login
        FROM ASYMMETRIC KEY EKMSampleASYKey;
    
  7. Przenieś mapowanie poświadczeń z oryginalnego loginu administratora do loginu utworzonego na podstawie klucza asymetrycznego.

    SQL Server używa identyfikatora logowania utworzonego na podstawie klucza asymetrycznego (TDE_Login) dla operacji EKM. Aby upewnić się, że SQL Server mógł uzyskiwać dostęp do Azure Key Vault podczas operacji szyfrowania i odzyskiwania, przypisz poświadczenie do TDE_Login zamiast oryginalnego konta logowania użytego podczas konfiguracji.

    -- Remove the service principal credential from the original setup login
    ALTER LOGIN [<domain>\<login>]
       DROP CREDENTIAL sysadmin_ekm_cred;
    
    -- Map the service principal credential to the login created from the asymmetric key
    ALTER LOGIN TDE_Login
       ADD CREDENTIAL sysadmin_ekm_cred;
    

Faza 2. Szyfrowanie i weryfikowanie bazy danych użytkowników

Konfigurowanie bazy danych użytkownika do szyfrowania

  1. Utwórz testową bazę danych do zaszyfrowania przy użyciu klucza Azure Key Vault.

    -- Create a test database for the TDE example.
    CREATE DATABASE TestTDE;
    
  2. Utwórz klucz szyfrowania bazy danych przy użyciu klucza asymetrycznego serwera (EKMSampleASYKey).

    USE TestTDE;
    -- Create a DEK protected by the EKM asymmetric key.
    CREATE DATABASE ENCRYPTION KEY
    WITH ALGORITHM = AES_256
    ENCRYPTION BY SERVER ASYMMETRIC KEY EKMSampleASYKey;
    
  3. Włącz funkcję TDE w bazie danych, ustawiając wartość ENCRYPTION ON.

    -- Enable TDE for the database.
    ALTER DATABASE TestTDE
        SET ENCRYPTION ON;
    

Weryfikowanie użycia klucza i stanu szyfrowania

  1. master W bazie danych wykonaj następujące zapytanie Transact-SQL, aby sprawdzić, czy klucz asymetryczny EKM istnieje i przechwycić jego odcisk palca.

    SELECT name,
           algorithm_desc,
           thumbprint
    FROM sys.asymmetric_keys;
    

    Instrukcja zwraca dane wyjściowe podobne do następujących:

    name            algorithm_desc    thumbprint
    EKMSampleASYKey RSA_2048          <key thumbprint>
    
  2. W bazie danych użytkownika (TestTDE) wykonaj następujące zapytanie Transact-SQL, aby sprawdzić, czy funkcja TDE jest włączona i czy klucz szyfrowania bazy danych jest chroniony przez klucz asymetryczny.

    SELECT encryptor_type,
           encryption_state_desc,
           encryptor_thumbprint
    FROM sys.dm_database_encryption_keys
    WHERE database_id = DB_ID('TestTDE');
    

    Instrukcja zwraca dane wyjściowe podobne do następujących:

    encryptor_type encryption_state_desc encryptor_thumbprint
    ASYMMETRIC KEY ENCRYPTED             <key thumbprint>
    

    Upewnij się, że encryptor_thumbprint jest zgodne z odciskiem certyfikatu zwróconym przez sys.asymmetric_keys. Niezgodność zwykle wskazuje, że klucz szyfrowania bazy danych jest chroniony przez inny klucz niż oczekiwano.

Czyszczenie

Wykonaj kroki oczyszczania zgodne ze skonfigurowanym modelem uwierzytelniania.

  1. Wyczyść obiekty testowe utworzone w tej procedurze.

    -- CLEAN UP: shared objects + service principal credential
    USE master;
    GO
    ALTER DATABASE [TestTDE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    DROP DATABASE [TestTDE];
    GO
    
    DROP LOGIN [TDE_Login];
    GO
    
    DROP ASYMMETRIC KEY [EKMSampleASYKey];
    DROP CRYPTOGRAPHIC PROVIDER [AzureKeyVault_EKM];
    GO
    
    DROP CREDENTIAL [sysadmin_ekm_cred];
    GO
    
  2. Sprawdź, czy należy usunąć SQL Server Cryptographic Provider klucz rejestru.

    Ważna

    SQL Server Cryptographic Provider Klucz rejestru nie jest usuwany automatycznie po usunięciu kluczy EKM.

    Usuń ten klucz rejestru tylko wtedy, gdy nie potrzebujesz już klucza EKM w wystąpieniu. Usunięcie go zbyt wcześnie może zakłócić działanie funkcji EKM i operacje odzyskiwania.

    Ścieżka rejestru: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider

Odnów wygasający lub wygasły klucz tajny klienta

Jeśli używasz uwierzytelniania na podstawie usługi głównej, odnow sekret klienta aplikacji Microsoft Entra zanim ten wygaśnie. Jeśli sekret już wygasł, stwórz zastępczy sekret i zaktualizuj istniejące dane poświadczenia SQL Server, jak opisano w tej sekcji. Ta procedura nie dotyczy uwierzytelniania tożsamości zarządzanego, które nie korzysta z sekretu klienta.

Odnowienie sekretu klienta aktualizuje dane uwierzytelniające używane przez SQL Server do uwierzytelniania do Azure Key Vault. Nie obraca klucza asymetrycznego ani nie zmienia klucza szyfrującego bazy danych.

Aby zaktualizować poświadczenie programu SQL Server, wymagane jest uprawnienie ALTER ANY CREDENTIAL. Aby uzyskać więcej informacji, zobacz ALTER CREDENTIAL (Transact-SQL).

  1. W portalu Azure otwórz Microsoft Entra ID>Rejestracje aplikacji i wybierz istniejącą aplikację, której program SQL Server używa do uzyskiwania dostępu do usługi Azure Key Vault. Wybierz Certyfikaty i tajemnice>Tajemnice klienta>Nowa tajemnica klienta. Wprowadź opis i datę wygaśnięcia, wybierz Dodaj i skopiuj wartość nowego sekretu, a nie jego Sekretnego ID.

  2. Zaktualizuj istniejące dane SQL Server o tę samą tożsamość i nową wartość uwierzytelniania. W poniższym przykładzie:

    • Zastąp sysadmin_ekm_cred nazwę istniejącego certyfikatu.
    • Zastąp element DocsSampleEKMKeyVault istniejącą tożsamością poświadczenia. Zachowaj tę samą nazwę sejfu lub nazwę hosta, której użyto podczas tworzenia poświadczenia.
    • Zastąp <client_id_without_hyphens><new_client_secret> identyfikatorem klienta aplikacji po usunięciu z niego myślników, bezpośrednio po którym należy umieścić nową wartość client secret. Nie wstawiaj spacji ani separatora i zachowuj wszelkie łączniki w wartości sekretu klienta. Nie używaj wyłącznie wartości sekretu klienta.
    USE master;
    GO
    ALTER CREDENTIAL sysadmin_ekm_cred
       WITH IDENTITY = 'DocsSampleEKMKeyVault',
       SECRET = '<client_id_without_hyphens><new_client_secret>';
    GO
    
  3. Powtórz aktualizację danych uwierzytelniających dla każdego poświadczenia SQL Server, które korzysta z zastąpionego sekretu klienta, w tym poświadczenia przypisanego do logowania utworzonego z asymetrycznego klucza TDE. Jeśli używasz EKM w grupie dostępności, zaktualizuj dotknięte dane poświadczenia na każdej repliki.

  4. Po aktualizacji danych uwierzytelniających zrestartuj usługę SQL Server. W przypadku grupy dostępności wykonaj restart każdej repliki jako część planowanej konserwacji. Restart usługi przerywa połączenia, więc skoordynuj je z wymaganiami dostępności.

  5. Połącz się ponownie z SQL Server i sprawdź, czy zaszyfrowane bazy danych są dostępne. Jeśli używasz SQL Server Management Studio, uruchom go ponownie, aby wyczyścić poświadczenie zapisane w pamięci podręcznej tej sesji. Usuń stary sekret klienta z rejestracji aplikacji dopiero po aktualizacji i weryfikacji wszystkich instancji SQL Server i innych aplikacji, które go używają.

Rotacja kluczy asymetrycznych na potrzeby TDE przy użyciu Azure Key Vault

Skorzystaj z dedykowanego przewodnika operacyjnego dla kroków rotacji kluczy, w tym skryptów specyficznych dla uwierzytelniania, weryfikacji i kontroli bezpieczeństwa:

Ważna

Nie usuwaj poprzednich wersji klucza po rotacji. Wcześniejsze wersje mogą być nadal wymagane do przywrócenia starszych kopii zapasowych, plików dziennika i artefaktów odzyskiwania.