Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
In dit artikel installeert en configureert u de SQL Server-connector voor Azure Key Vault en configureert u vervolgens Transparent Data Encryption (TDE) met behulp van een sleutel in Azure Key Vault.
Prerequisites
Voordat u Azure Key Vault met uw SQL Server-exemplaar gaat gebruiken, moet u ervoor zorgen dat u aan de volgende vereisten voldoet:
U hebt een abonnement op Azure nodig.
Installeer Azure PowerShell versie 5.2.0 of hoger.
Maak een Microsoft Entra-tenant.
Bekijk de principes van EKM-opslag (Extensible Key Management) met Azure Key Vault. Zie Extensible Key Management using Azure Key Vault (SQL Server).
U kunt het register wijzigen op de SQL Server computer.
Installeer de versie van Visual Studio C++ Redistributable die is gebaseerd op de versie van SQL Server die u uitvoert:
SQL Server-versie Herdistribueerbare versie van Visual Studio C++ 2008, 2008 R2, 2012, 2014 Visual C++ Redistributable-pakketten voor Visual Studio 2013 2016, 2017, 2019, 2022, 2025 Visual C++ Redistributable voor Visual Studio 2015 Lees Toegang tot Azure Key Vault achter een firewall als u van plan bent de SQL Server-connector te gebruiken voor de Azure Key Vault achter een firewall of met een proxyserver.
Note
In SQL Server 2022 (16.x) CU 12 en hoger ondersteunt SQL Server on Linux TDE Extensible Key Management met Azure Key Vault. Stap 3 en 4 in deze handleiding zijn niet vereist voor SQL Server in Linux.
Snelle stroom
- Selecteer een verificatiemodel in stap 1: Het verificatiemodel instellen.
- Maak een sleutelkluis en een sleutel in Stap 2: Een sleutelkluis maken.
- Installeer de connector in Stap 3: Installeer de SQL Server Connector.
- Configureer de registervereisten in stap 4: Registersleutel toevoegen ter ondersteuning van de EKM-provider.
- Configureer SQL Server en valideer versleuteling in stap 5: configureer SQL Server.
Stap 1: Het verificatiemodel instellen
Important
Kies uw verificatiemodel voordat u doorgaat:
- Gebruik het tabblad Service-principal voor SQL Server on-premises.
- Gebruik het tabblad Beheerde identiteit voor SQL Server op Azure VM's of SQL Server ingeschakeld door Azure Arc, waarbij beheerde identiteit wordt ondersteund.
Ondersteuningsmatrix voor verificatiemodel:
| Verificatiemodel | SQL Server-versie | Waar SQL Server wordt uitgevoerd | Supported |
|---|---|---|---|
| Service Principal | Ondersteunde versies die in dit artikel worden behandeld | On-premises, Azure VM SQL Server ingeschakeld door Azure Arc | Ja |
| Beheerde identiteit | SQL Server 2022 CU17 en hoger | Azure VM | Ja |
| Beheerde identiteit | SQL Server 2025 en hoger | SQL Server ingeschakeld door Azure Arc | Ja |
| Beheerde identiteit | Any | On-premises | No |
Als u uw SQL Server-exemplaar toegangsmachtigingen wilt verlenen aan uw Azure-sleutelkluis, hebt u een service-principal-account in Microsoft Entra-id nodig.
Meld u aan bij de Azure-portal en voer een van de volgende stappen uit:
Selecteer de knop Microsoft Entra ID.
Selecteer Meer services en typ vervolgens in het deelvenster Alle servicesDe id van Microsoft Entra.
Registreer een toepassing bij Microsoft Entra ID door de volgende stappen uit te voeren. Zie voor gedetailleerde stapsgewijze instructies de sectie Een identiteit ophalen voor de toepassingssectie van het Azure Key Vault-blogbericht, Azure Key Vault – Stapsgewijze instructies.
Selecteer app-registraties in de sectie Beheren van uw Microsoft Entra-id-resource.
Selecteer op de pagina App-registratiesNieuwe registratie.
Voer in het deelvenster Een toepassing registreren de gebruikersnaam voor de app in en selecteer Registreren.
Selecteer in het linkerdeelvenster Certificaten en geheimen Clientgeheimen>>Nieuw clientgeheim.
Voer onder Een clientgeheim toevoegen een beschrijving en een geschikte vervaldatum in en selecteer vervolgens Toevoegen. U kunt geen verloopperiode kiezen die langer is dan 24 maanden. Zie Een clientgeheim toevoegen voor meer informatie.
Selecteer in het deelvenster Certificaten en geheimen onder Waarde de knop Kopiëren naast de waarde van het clientgeheim om deze te gebruiken voor het maken van een asymmetrische sleutel in SQL Server.
Selecteer In het linkerdeelvenster Overzicht en kopieer in het vak Toepassings-id (client) de waarde om deze te gebruiken om een asymmetrische sleutel te maken in SQL Server.
Stap 2: Een sleutelkluis maken
Selecteer de methode die u wilt gebruiken om een sleutelkluis te maken.
Note
Alleen Azure Key Vault en Azure Key Vault Managed HSM worden ondersteund. Azure Cloud HSM wordt niet ondersteund.
Een sleutelkluis maken met behulp van Azure Portal
Als u een sleutelkluis wilt maken met behulp van de Azure-portal, raadpleegt u quickstart: Een sleutelkluis maken met behulp van de Azure-portal.
Op rollen gebaseerd toegangsbeheer van Azure
Gebruik Azure op rollen gebaseerd toegangsbeheer (RBAC) om de toegang tot de Azure Key Vault te beheren. Gebruik geen verouderd toegangsbeleid. Verouderde toegangsbeleidsregels hebben bekende beveiligingsproblemen, ontbreken ondersteuning voor Privileged Identity Management (PIM) en mogen niet worden gebruikt voor kritieke gegevens en workloads. Voor meer informatie over RBAC-machtigingen voor Azure Key Vault zie Azure ingebouwde rollen voor data plane-bewerkingen van Key Vault.
Ga naar de sleutelkluisresource die u hebt gemaakt en selecteer de IAM-instelling (Access Control).
Selecteer Toevoegen>Roltoewijzing toevoegen.
De EKM-toepassing of beheerde identiteit vereist de rol Key Vault Crypto Service Encryption User om verpak- en uitpakbewerkingen uit te voeren. Zoek naar Key Vault Crypto Service Encryption User en selecteer de rol. Kies Volgende.
Selecteer op het tabblad Leden de optie Leden selecteren en zoek vervolgens naar de Microsoft Entra toepassing of beheerde identiteit die u in stap 1 hebt gemaakt. Selecteer de toepassing of beheerde identiteit en vervolgens de knop Selecteren .
Selecteer Beoordelen en tweemaal toewijzen om de roltoewijzing te voltooien.
Een sleutel maken
De gebruiker die de sleutel maakt, heeft de rol Key Vault-beheerder nodig. Net als in de vorige stappen voegt u het lid toe dat de sleutel maakt en wijst u de rol toe.
Selecteer sleutels in het deelvenster Key Vault en selecteer vervolgens de optie Genereren/importeren. Met deze actie opent u het deelvenster Een sleutel maken . Selecteer de optie Genereren en voer een naam in voor de sleutel. De SQL Server-connector vereist dat de sleutelnaam alleen de tekens 'a-z', 'A-Z', '0-9' en '-' met een limiet van 26 tekens gebruikt.
Gebruik het sleuteltype RSA en RSA-sleutelgrootte als 2048. EKM ondersteunt momenteel alleen een RSA-sleutel. Stel de activerings- en vervaldatums zo nodig in en stel Ingeschakeld in op Ja.
Een Azure Key Vault Beheerde HSM configureren (optioneel)
Azure Key Vault Managed HSM (Hardware Security Module) ondersteunt SQL Server en SQL Server op virtuele machines in Azure (VM's) wanneer u de nieuwste versie van de SQL Server Connector en Azure SQL gebruikt. Beheerde HSM is een volledig beheerde, maximaal beschikbare HSM-service met één tenant. Beheerde HSM biedt een veilige basis voor cryptografische bewerkingen en sleutelopslag. Beheerde HSM is ontworpen om te voldoen aan de strengste beveiligings- en nalevingsvereisten.
Stap 2 laat zien hoe u een sleutelkluis en sleutel maakt in Azure Key Vault. U kunt eventueel een Azure Key Vault beheerde HSM gebruiken om een sleutel voor de SQL Server-connector op te slaan of te maken. Volg deze stappen:
Maak een Azure Key Vault Beheerde HSM met behulp van de Azure-portal, de Azure CLI, PowerShell of een ARM-sjabloon.
Activeer de beheerde HSM. Alleen de aangewezen beheerders die tijdens het maken zijn toegewezen, kunnen deze activeren. Selecteer in de Azure-portal de beheerde HSM-resource en selecteer vervolgens Beveiligingsdomein downloaden in het menu Overzicht. Volg een van de quickstarts om uw beheerde HSM te activeren.
Verken machtigingen voor de Microsoft Entra service-principal of beheerde identiteit voor toegang tot de beheerde HSM. De rol Beheerde HSM-beheerder geeft geen machtigingen om een sleutel te maken. Net als stap 2 heeft de EKM-toepassing of beheerde identiteit de rol Managed HSM Crypto User of Managed HSM Crypto Service Encryption User nodig om wrap- en unwrap-bewerkingen uit te voeren. Zie Ingebouwde rollen voor lokale RBAC voor beheerde HSM voor meer informatie.
Selecteer Sleutels in het menu beheerde HSM-service van Azure Key Vault onder Instelling. Selecteer in het venster Sleutelsde optie Back-up genereren/importeren/herstellen om een sleutel te maken of een bestaande sleutel te importeren.
Note
Algoritmen RSA-HSM_2048 en RSA-HSM_3072 worden ondersteund vanaf SQL Server 2022 (16.x) Cumulatieve update 13.
Azure Key Vault Managed HSM ondersteunt automatische sleutelrotatie. Zie Automatische rotatie van sleutels configureren in Azure Managed HSM voor meer informatie.
Beheerde HSM ondersteunt privé-eindpuntverbindingen. Voor meer informatie, zie Integrate Managed HSM with Azure Private Link. In deze configuratie moet u de optie Microsoft-bypass voor vertrouwde services inschakelen in de instelling Netwerken van Azure Key Vault Managed HSM.
Stap 3: De SQL Server-connector installeren
Laat een SQL Server beheerder de nieuwste versie van de SQL Server Connector voor Microsoft Azure Key Vault downloaden vanuit de Microsoft Downloadcentrum en voer het installatieprogramma uit.
De connector is standaard geïnstalleerd op C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault. U kunt deze locatie wijzigen tijdens de installatie. Als u deze wijzigt, past u de scripts in de volgende sectie aan.
Een geslaagde installatie plaatst Microsoft.AzureKeyVaultService.EKM.dll op de computer. Deze assembly is het DLL-bestand van de cryptografische EKM-provider. Registreer het bij SQL Server met behulp van de CREATE CRYPTOGRAPHIC PROVIDER instructie.
Het installatieprogramma biedt ook voorbeeldscripts voor SQL Server versleuteling.
Zie voor uitleg over foutcodes, configuratie-instellingen of onderhoudstaken:
- Onderhoudsinstructies voor de SQL Server-connector
- Uitleg van foutcodes voor de SQL Server Connector
Stap 4: Registersleutel toevoegen ter ondersteuning van EKM-provider
Warning
Alleen een SQL Server beheerder die precies weet wat ze doen, moet het register wijzigen. Onjuiste wijzigingen kunnen ernstige problemen veroorzaken. Maak een back-up van het register voordat u wijzigingen aanbrengt, zodat u deze kunt herstellen als er een probleem optreedt.
Voer regedit uit om de Register-editor te openen.
Maak een
SQL Server Cryptographic Providerregistersleutel opHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider.Klik met de rechtermuisknop op de
SQL Server Cryptographic Providerregistersleutel en selecteer Machtigingen.Verdeel volledig beheer over de
SQL Server Cryptographic Providersleutel aan het gebruikersaccount waarop de SQL Server-service wordt uitgevoerd.
Selecteer toepassen en selecteer vervolgens OK.
Sluit de Register-editor en start de SQL Server-service opnieuw.
Note
Als u TDE gebruikt met EKM of Azure Key Vault op een failoverclusterexemplaar, voegt u ook
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Providertoe aan de routine voor het controlepunt van het clusterregister, zodat het register tussen de knooppunten wordt gesynchroniseerd, wat databaseherstel na een failover en sleutelrotatie vergemakkelijkt.Voer de volgende PowerShell-opdracht uit om de registersleutel toe te voegen aan de controlepuntroutine:
Add-ClusterCheckpoint -RegistryCheckpoint "SOFTWARE\Microsoft\SQL Server Cryptographic Provider" -Resourcename "SQL Server"
Stap 5: SQL Server configureren
Zie B. Veelgestelde vragen voor een opmerking over de minimale machtigingsniveaus die nodig zijn voor elke actie in deze sectie.
Fase 1: Cryptografische provider en aanmeldgegevens configureren in master
Kies uw verificatiemodel en volg de overeenkomende stappen.
Voer sqlcmd uit of open SQL Server Management Studio.
Configureer SQL Server voor het gebruik van EKM door het volgende Transact-SQL script uit te voeren:
-- 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;Registreer de SQL Server-connector als een EKM-provider bij SQL Server.
Maak een cryptografische provider met behulp van de SQL Server-connector, een EKM-provider voor De Azure Key Vault. In dit voorbeeld is
AzureKeyVault_EKMde naam van de provider.CREATE CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM FROM FILE = 'C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll'; GONote
De lengte van het bestandspad mag niet langer zijn dan 256 tekens.
Stel een SQL Server-referentie in voor een SQL Server-aanmelding om de sleutelkluis te gebruiken.
Voeg een referentie toe aan elke aanmelding die versleuteling uitvoert met behulp van een sleutel uit de sleutelkluis. Er is een een-op-eenrelatie tussen inloggegevens en logins: elke login moet unieke inloggegevens hebben.
Wijzig dit Transact-SQL script op de volgende manieren:
Bewerk het argument
IDENTITY(DocsSampleEKMKeyVault) om naar uw Azure Key Vault te verwijzen.- Als u globale Azure gebruikt, vervangt u het
IDENTITYargument door de naam van uw Azure Key Vault uit stap 2: Een sleutelkluis maken. - Als u een privé-Azure cloud gebruikt (bijvoorbeeld Azure Government, Microsoft Azure beheerd door 21Vianet of Azure Duitsland), vervangt u het
IDENTITYargument door de kluis-URI die wordt geretourneerd in Een sleutelkluis en sleutel maken met behulp van PowerShell. Neemhttps://niet op in de sleutelkluis-URI.
- Als u globale Azure gebruikt, vervangt u het
Vervang het eerste deel van het
SECRETargument door de Microsoft Entra client-id uit stap 1: Het verificatiemodel instellen. In dit voorbeeld is de client-IDd956f6b9xxxxxxx.Important
Verwijder de koppeltekens in de app-id (client).
Voltooi het tweede deel van het
SECRETargument met het clientgeheim uit stap 1. De laatste tekenreeks is een lange reeks letters en cijfers zonder koppeltekens (behalve eventuele koppeltekens in de Client Secret zelf).
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://dotnet.territoriali.olinfo.it/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;Zie CREATE CREDENTIAL voor een voorbeeld van het gebruik van variabelen en het programmatisch verwijderen van koppeltekens uit de Client ID.
Open de sleutel in Azure Key Vault in uw SQL Server-exemplaar.
Of u nu een nieuwe sleutel hebt gemaakt of een asymmetrische sleutel hebt geïmporteerd in stap 2: Een sleutelkluis maken, de sleutel openen in SQL Server met behulp van
CREATE ASYMMETRIC KEY.Important
Voltooi de registervereisten voordat u deze stap uitvoert.
In de volgende voorbeelden:
- Vervang door
EKMSampleASYKeyde naam die u wilt gebruiken in SQL Server. - Vervang
ContosoRSAKey0door uw sleutelnaam in Azure Key Vault of beheerde HSM.
Gebruik een versieloze sleutelnaam (aanbevolen voor de meeste scenario's):
CREATE ASYMMETRIC KEY EKMSampleASYKey FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0', CREATION_DISPOSITION = OPEN_EXISTING;Gebruik een specifieke sleutelversie wanneer u bewerkingen wilt vastmaken aan één versie:
CREATE ASYMMETRIC KEY EKMSampleASYKey FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0/1a4d3b9b393c4678831ccc60def75379', CREATION_DISPOSITION = OPEN_EXISTING;In dit voorbeeld
1a4d3b9b393c4678831ccc60def75379is dit de specifieke sleutelversie die SQL Server gebruikt voor databasebewerkingen.- Vervang door
Maak een nieuwe aanmelding met behulp van de asymmetrische sleutel in SQL Server die u in de vorige stap hebt gemaakt.
-- Create a login that associates the asymmetric key with this login CREATE LOGIN TDE_Login FROM ASYMMETRIC KEY EKMSampleASYKey;Verplaats de referentietoewijzing van de oorspronkelijke beheerdersaanmelding naar de aanmelding die is gemaakt op basis van de asymmetrische sleutel.
SQL Server gebruikt de aanmelding die is gemaakt op basis van de asymmetrische sleutel (
TDE_Login) voor EKM-bewerkingen. Om ervoor te zorgen dat SQL Server tijdens versleutelings- en herstelbewerkingen toegang heeft tot Azure Key Vault, koppelt u de referentie aanTDE_Loginin plaats van aan het oorspronkelijke installatielogin.-- 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;
Fase 2: De gebruikersdatabase versleutelen en valideren
De gebruikersdatabase configureren die moet worden versleuteld
Maak een testdatabase om te versleutelen met behulp van de Azure Key Vault-sleutel.
-- Create a test database for the TDE example. CREATE DATABASE TestTDE;Maak een databaseversleutelingssleutel met behulp van de asymmetrische serversleutel (
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;Schakel TDE in op de database door
ENCRYPTION ONin te stellen.-- Enable TDE for the database. ALTER DATABASE TestTDE SET ENCRYPTION ON;
Sleutelgebruik en versleutelingsstatus controleren
Voer in de
masterdatabase de volgende Transact-SQL query uit om te controleren of de Asymmetrische EKM-sleutel bestaat en de vingerafdruk ervan vast te leggen.SELECT name, algorithm_desc, thumbprint FROM sys.asymmetric_keys;De instructie retourneert uitvoer die vergelijkbaar is met de volgende:
name algorithm_desc thumbprint EKMSampleASYKey RSA_2048 <key thumbprint>Voer in de gebruikersdatabase (
TestTDE) de volgende Transact-SQL query uit om te controleren of TDE is ingeschakeld en of de versleutelingssleutel van de database is beveiligd met een asymmetrische sleutel.SELECT encryptor_type, encryption_state_desc, encryptor_thumbprint FROM sys.dm_database_encryption_keys WHERE database_id = DB_ID('TestTDE');De instructie retourneert uitvoer die vergelijkbaar is met het volgende:
encryptor_type encryption_state_desc encryptor_thumbprint ASYMMETRIC KEY ENCRYPTED <key thumbprint>Bevestig dat
encryptor_thumbprintdeze overeenkomt met de vingerafdruk die is geretourneerd doorsys.asymmetric_keys. Een onjuiste overeenkomst geeft meestal aan dat de databaseversleutelingssleutel wordt beveiligd door een andere sleutel dan verwacht.
Schoonmaken
Gebruik de opschoonstappen die overeenkomen met het verificatiemodel dat u hebt geconfigureerd.
Schoon de testobjecten op die u in deze procedure hebt gemaakt.
-- 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]; GOControleer of u de
SQL Server Cryptographic Providerregistersleutel moet verwijderen.Important
De
SQL Server Cryptographic Providerregistersleutel wordt niet automatisch verwijderd nadat u EKM-sleutels hebt verwijderd.Verwijder deze registersleutel alleen wanneer u EKM niet meer nodig hebt op het exemplaar. Als u het te vroeg verwijdert, kan dit de werking van EKM en herstelbewerkingen verstoren.
Registerpad:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider
Asymmetrische sleutels voor TDE rouleren met Azure Key Vault
Gebruik een speciale operationele handleiding voor belangrijke rotatiestappen, waaronder verificatiespecifieke scripts, verificatie en veiligheidscontroles:
Important
Verwijder na rotatie geen eerdere versies van de sleutel. Eerdere versies zijn mogelijk nog steeds vereist voor het herstellen van oudere back-ups, logboekbestanden en herstelartefacten.