Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
I den här artikeln installerar och konfigurerar du SQL Server Connector för Azure Key Vault och konfigurerar sedan Transparent Data Encryption (TDE) med hjälp av en nyckel i Azure Key Vault.
Prerequisites
Innan du börjar använda Azure Key Vault med din SQL Server-instans måste du uppfylla följande krav:
Du måste ha en Azure-prenumeration.
Installera Azure PowerShell version 5.2.0 eller senare.
Skapa en Microsoft Entra-tenant.
Granska principerna för EKM-lagring (Extensible Key Management) med Azure Key Vault. Se Utökningsbar nyckelhantering med Azure Key Vault (SQL Server).
Du kan ändra registret på den SQL Server datorn.
Installera den version av Visual Studio C++ Redistributable som baseras på den version av SQL Server som du kör:
SQL Server-versionen Visual Studio C++ Redistributable-version 2008, 2008 R2, 2012, 2014 Visual C++ Redistributable-paket för Visual Studio 2013 2016, 2017, 2019, 2022, 2025 Visual C++ Redistributable för Visual Studio 2015 Läs Åtkomst Azure Key Vault bakom en brandvägg om du planerar att använda SQL Server Connector för Azure Key Vault bakom en brandvägg eller med en proxyserver.
Note
I SQL Server 2022 (16.x) CU 12 och senare versioner stöder SQL Server on Linux TDE Extensible Key Management med Azure Key Vault. Steg 3 och 4 i den här guiden krävs inte för SQL Server i Linux.
Snabbflöde
- Välj en autentiseringsmodell i steg 1: Konfigurera autentiseringsmodellen.
- Skapa ett nyckelvalv och en nyckel i steg 2: Skapa ett nyckelvalv.
- Installera anslutningsappen i steg 3: Installera SQL Server Connector.
- Konfigurera registrets krav i steg 4: Lägg till registernyckel för att stödja EKM-providern.
- Konfigurera SQL Server och verifiera kryptering i steg 5: Konfigurera SQL Server.
Steg 1: Konfigurera autentiseringsmodellen
Important
Välj din autentiseringsmodell innan du fortsätter:
- Använd fliken Tjänstens huvudnamn för SQL Server lokalt.
- Använd fliken Hanterad identitet för SQL Server på Azure virtuella datorer eller SQL Server aktiverad av Azure Arc, där hanterad identitet stöds.
Stödmatris för autentiseringsmodell:
| Autentiseringsmodell | SQL Server-versionen | Där SQL Server körs | Stöds |
|---|---|---|---|
| Service Principal | Versioner som stöds i den här artikeln | Lokalt, virtuell Azure-dator, SQL Server aktiverad med Azure Arc | Ja |
| Hanterad identitet | SQL Server 2022 CU17 och senare | Azure VM | Ja |
| Hanterad identitet | SQL Server 2025 och senare | SQL Server aktiverat av Azure Arc | Ja |
| Hanterad identitet | Any | On-premises | No |
Om du vill ge din SQL Server-instans åtkomstbehörighet till ditt Azure-nyckelvalv behöver du ett konto för tjänstens huvudkonto i Microsoft Entra ID.
Logga in på Azure-portalen och gör något av följande:
Välj knappen Microsoft Entra ID.
Välj Fler tjänster och skriv sedan Microsoft Entra IDi fönstret Alla tjänster .
Registrera ett program med Microsoft Entra ID genom att utföra följande steg. Detaljerade stegvisa instruktioner finns i avsnittet Hämta en identitet för programmet i blogginlägget i Azure Key Vault Azure Key Vault – steg för steg.
I avsnittet Hantera för din Microsoft Entra ID resurs, välj Appregistreringar.
På sidan Appregistreringar väljer du Ny registrering.
I fönstret Registrera ett program anger du appens användarriktade namn och väljer sedan Registrera.
I den vänstra rutan väljer du Certifikat och hemligheter>Klienthemligheter>Ny klienthemlighet.
Under Lägg till en klienthemlighetanger du en beskrivning och en lämplig förfallotid och väljer sedan Lägg till. Du kan inte välja en giltighetstid som är längre än 24 månader. Mer information finns i Lägga till en klienthemlighet.
I fönstret Certifikat och hemligheter går du till Värde och väljer knappen Kopiera bredvid värdet för klienthemligheten för att använda den för att skapa en asymmetrisk nyckel i SQL Server.
I den vänstra rutan väljer du Översikt och kopierar sedan värdet i rutan Program -ID (klient) för att använda det för att skapa en asymmetrisk nyckel i SQL Server.
Steg 2: Skapa ett nyckelvalv
Välj den metod som du vill använda för att skapa ett nyckelvalv.
Note
Endast Azure Key Vault och Azure Key Vault Managed HSM stöds. Azure Cloud HSM stöds inte.
Skapa ett nyckelvalv med hjälp av Azure-portalen
Information om hur du skapar ett nyckelvalv med hjälp av Azure portalen finns i Snabbstart: Skapa ett nyckelvalv med hjälp av Azure-portalen.
Rollbaserad åtkomstkontroll i Azure
Använd Azure rollbaserad åtkomstkontroll (RBAC) för att hantera åtkomst till Azure Key Vault. Använd inte äldre åtkomstprinciper. Äldre åtkomstprinciper har kända säkerhetsrisker, saknar stöd för Privileged Identity Management (PIM) och bör inte användas för kritiska data och arbetsbelastningar. Mer information om RBAC-behörigheter för Azure Key Vault finns i Azure-inbyggda roller för åtgärder på Key Vault-dataplansnivå.
Gå till nyckelvalvsresursen som du skapade och välj inställningen Åtkomstkontroll (IAM).
Välj Lägg till>Lägg till rolltilldelning.
EKM-applikationen eller den hanterade identiteten behöver rollen Key Vault Crypto Service Encryption User för att utföra wrap- och unwrap-åtgärder. Sök efter Key Vault Crypto Service Encryption User och välj rollen. Välj Nästa.
På fliken Medlemmar väljer du alternativet Välj medlemmar och söker sedan efter det Microsoft Entra program eller hanterade identitet som du skapade i steg 1. Välj programmet eller den hanterade identiteten och sedan knappen Välj .
Välj Granska + tilldela två gånger för att slutföra rolltilldelningen.
Skapa en nyckel
Användaren som skapar nyckeln behöver rollen Key Vault-administratör. Precis som i föregående steg lägger du till medlemmen som skapar nyckeln och tilldelar rollen.
I fönstret Key Vault väljer du Nycklar och väljer sedan alternativet Generera/importera. Den här åtgärden öppnar fönstret Skapa en nyckel . Välj alternativet Generera och ange ett namn för nyckeln. SQL Server Connector kräver att nyckelnamnet endast använder tecknen "a-z", "A-Z", "0-9" och "-", med en gräns på 26 tecken.
Använd nyckeltypen RSA och RSA-nyckelstorleken som 2048. EKM stöder för närvarande endast en RSA-nyckel. Ange aktiverings- och utgångsdatum efter behov och ställ in Aktiverad som Ja.
Konfigurera ett Azure Key Vault Managed HSM (valfritt)
Azure Key Vault Managed HSM (Hardware Security Module) stöder SQL Server och SQL Server på Azure Virtual Machines (VM) när du använder den senaste versionen av SQL Server Connector och Azure SQL. Managed HSM är en fullständigt hanterad, hög tillgänglig, enkelhyresgäst HSM-tjänst. Hanterad HSM ger en säker grund för kryptografiska åtgärder och nyckellagring. Hanterad HSM är utformad för att uppfylla de strängaste säkerhets- och efterlevnadskraven.
Steg 2 visar hur du skapar ett nyckelvalv och en nyckel i Azure Key Vault. Du kan också använda en Azure Key Vault Managed HSM för att lagra eller skapa en nyckel för SQL Server Connector. Följ de här stegen:
Skapa en Azure Key Vault hanterad HSM med hjälp av Azure-portalen, Azure CLI, PowerShell eller en ARM-mall.
Aktivera den hanterade HSM:en. Endast de utsedda administratörer som tilldelades när de skapades kan aktivera den. I Azure-portalen väljer du resursen Hanterad HSM och väljer sedan Ladda ned säkerhetsdomän på menyn Översikt. Följ en av snabbstartsguiderna för att aktivera din hanterade HSM.
Bevilja behörigheter för Microsoft Entra-tjänsthuvudnamnet eller den hanterade identiteten att få åtkomst till Managed HSM. Rollen Hanterad HSM-administratör ger inte behörighet att skapa en nyckel. På samma sätt som steg 2 behöver EKM-applikationen eller den hanterade identiteten rollen Managed HSM Crypto User eller Managed HSM Crypto Service Encryption User för att utföra wrap- och unwrap-operationer. Mer information finns i lokalt inbyggda RBAC-roller för Managed HSM.
I menyn Hanterad HSM-tjänst i Azure Key Vault, under Inställningar, välj Nycklar. I fönstret Nycklar väljer du Skapa/importera/återställa säkerhetskopiering för att skapa en nyckel eller importera en befintlig nyckel.
Note
Algoritmer RSA-HSM_2048 och RSA-HSM_3072 stöds från och med SQL Server 2022 (16.x) kumulativ uppdatering 13.
Azure Key Vault Managed HSM stöder automatisk nyckelrotation. Mer information finns i Konfigurera automatisk nyckelrotation i Azure Managed HSM.
Hanterad HSM stöder privata slutpunktsanslutningar. Mer information finns i Integrera hanterad HSM med Azure Private Link. I den här konfigurationen måste du aktivera alternativet Microsoft förbikoppling av betrodd tjänst i inställningen Azure Key Vault Hanterat HSM-nätverk.
Steg 3: Installera SQL Server Connector
Låt en SQL Server administratör ladda ned den senaste versionen av SQL Server Connector för Microsoft Azure Key Vault från Microsoft Download Center och köra installationsprogrammet.
Som standard installeras anslutningen på C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault. Du kan ändra den här platsen under installationen. Om du ändrar det justerar du skripten i nästa avsnitt.
En lyckad installation placerar Microsoft.AzureKeyVaultService.EKM.dll på datorn. Den här sammansättningen är den kryptografiska EKM-providerns DLL. Registrera den med SQL Server med hjälp av -instruktionenCREATE CRYPTOGRAPHIC PROVIDER.
Installationsprogrammet erbjuder även exempelskript för SQL Server kryptering.
Information om felkodsförklaringar, konfigurationsinställningar eller underhållsaktiviteter finns i:
Steg 4: Lägg till registernyckel för att stödja EKM-provider
Varning
Endast en SQL Server administratör som vet exakt vad de gör bör ändra registret. Felaktiga ändringar kan orsaka allvarliga problem. Säkerhetskopiera registret innan du gör några ändringar så att du kan återställa det om ett problem uppstår.
Kör regedit för att öppna Registereditorn.
Skapa en
SQL Server Cryptographic Providerregisternyckel påHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider.Högerklicka på
SQL Server Cryptographic Provider-registernyckeln och välj sedan Behörigheter.Ge fullständig kontroll över
SQL Server Cryptographic Providernyckeln till användarkontot som kör SQL Server-tjänsten.
Välj Använd och sedan OK.
Stäng Registereditorn och starta om SQL Server-tjänsten.
Note
Om du använder TDE med EKM eller Azure Key Vault på en redundansklusterinstans lägger du även till
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provideri rutinen För kontrollpunkt för klusterregister så att registret synkroniseras mellan noder, vilket underlättar databasåterställning efter redundansväxling och nyckelrotation.Kör följande PowerShell-kommando för att lägga till registernyckeln i kontrollpunktsrutinen:
Add-ClusterCheckpoint -RegistryCheckpoint "SOFTWARE\Microsoft\SQL Server Cryptographic Provider" -Resourcename "SQL Server"
Steg 5: Konfigurera SQL Server
En anteckning om de lägsta behörighetsnivåer som krävs för varje åtgärd i det här avsnittet finns i B. Vanliga frågor och svar.
Fas 1: Konfigurera kryptografiprovider och autentiseringsuppgifter i master
Välj din autentiseringsmodell och följ matchningsstegen.
Kör sqlcmd eller öppna SQL Server Management Studio.
Konfigurera SQL Server att använda EKM genom att köra följande Transact-SQL skript:
-- 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;Registrera SQL Server Connector som en EKM-provider med SQL Server.
Skapa en kryptografisk provider med hjälp av SQL Server Connector, som är en EKM-provider för Azure Key Vault. I det här exemplet är providernamnet
AzureKeyVault_EKM.CREATE CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM FROM FILE = 'C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll'; GONote
Filsökvägslängden får inte överstiga 256 tecken.
Konfigurera en SQL Server-autentiseringsuppgift för en SQL Server-inloggning för att använda nyckelvalvet.
Lägg till en autentiseringsuppgift för varje inloggning som utför kryptering med hjälp av en nyckel från nyckelvalvet. Det finns en en-till-en-mappning mellan autentiseringsuppgifter och inloggningar – varje inloggning måste ha en unik autentiseringsuppgift.
Ändra det här Transact-SQL skriptet på följande sätt:
Redigera argumentet
IDENTITY(DocsSampleEKMKeyVault) för att peka på ditt Azure Key Vault.- Om du använder globala Azureersätter du argumentet
IDENTITYmed namnet på ditt Azure Key Vault från steg 2: Skapa ett nyckelvalv. - Om du använder ett privat Azure moln (till exempel Azure Government, Microsoft Azure som drivs av 21Vianet eller Azure Germany) ersätter du
IDENTITYargumentet med valv-URI:n som returneras i Skapa ett nyckelvalv och en nyckel med hjälp av PowerShell. Inkludera intehttps://i nyckelvalvets URI.
- Om du använder globala Azureersätter du argumentet
Ersätt den första delen av
SECRETargumentet med Microsoft Entra klient-ID från steg 1: Konfigurera autentiseringsmodellen. I det här exemplet är Klient-IDd956f6b9xxxxxxx.Important
Ta bort bindestrecken från app-ID:t (Klient).
Slutför den andra delen av
SECRETargumentet med klienthemligheten från steg 1. Den sista strängen är en lång sekvens med bokstäver och siffror utan bindestreck (förutom eventuella bindestreck i själva klienthemligheten).
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;Ett exempel på hur du använder variabler och programmatiskt tar bort bindestreck från klient-ID:t finns i CREATE CREDENTIAL.
Öppna nyckeln Azure Key Vault i din SQL Server-instans.
Oavsett om du har skapat en ny nyckel eller importerat en asymmetrisk nyckel i steg 2: Skapa ett nyckelvalv öppnar du nyckeln i SQL Server med hjälp
CREATE ASYMMETRIC KEYav .Important
Slutför registerkraven innan du utför det här steget.
I följande exempel:
- Ersätt
EKMSampleASYKeymed det namn som du vill använda i SQL Server. - Ersätt
ContosoRSAKey0med ditt nyckelnamn i Azure Key Vault eller Hanterad HSM.
Använd ett versionslöst nyckelnamn (rekommenderas för de flesta scenarier):
CREATE ASYMMETRIC KEY EKMSampleASYKey FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0', CREATION_DISPOSITION = OPEN_EXISTING;Använd en specifik nyckelversion när du behöver fästa åtgärder på en version:
CREATE ASYMMETRIC KEY EKMSampleASYKey FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0/1a4d3b9b393c4678831ccc60def75379', CREATION_DISPOSITION = OPEN_EXISTING;I det här exemplet
1a4d3b9b393c4678831ccc60def75379är den specifika nyckelversion som SQL Server använder för databasåtgärder.- Ersätt
Skapa en ny inloggning med hjälp av den asymmetriska nyckeln i SQL Server som du skapade i föregående steg.
-- Create a login that associates the asymmetric key with this login CREATE LOGIN TDE_Login FROM ASYMMETRIC KEY EKMSampleASYKey;Flytta mappningen av autentiseringsuppgifter från den ursprungliga administratörsinloggningen till inloggningen som skapades från den asymmetriska nyckeln.
SQL Server använder inloggningen som skapats från den asymmetriska nyckeln (
TDE_Login) för EKM-åtgärder. För att säkerställa att SQL Server kan komma åt Azure Key Vault under krypterings- och återställningsåtgärder mappar du autentiseringsuppgifterna tillTDE_Logini stället för den ursprungliga installationsinloggningen.-- 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;
Fas 2: Kryptera och verifiera användardatabasen
Konfigurera att användardatabasen ska krypteras
Skapa en testdatabas som ska krypteras med hjälp av Azure Key Vault-nyckeln.
-- Create a test database for the TDE example. CREATE DATABASE TestTDE;Skapa en databaskrypteringsnyckel med hjälp av serverns asymmetriska nyckel (
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;Aktivera TDE på databasen genom att ange
ENCRYPTION ON.-- Enable TDE for the database. ALTER DATABASE TestTDE SET ENCRYPTION ON;
Verifiera nyckelanvändning och krypteringstillstånd
I databasen
masterkör du följande Transact-SQL-fråga för att verifiera att den EKM-asymmetriska nyckeln finns och hämta dess tumavtryck.SELECT name, algorithm_desc, thumbprint FROM sys.asymmetric_keys;Satsen returnerar utdata som liknar följande:
name algorithm_desc thumbprint EKMSampleASYKey RSA_2048 <key thumbprint>I användardatabasen (
TestTDE) kör du följande Transact-SQL fråga för att kontrollera att TDE är aktiverat och att databaskrypteringsnyckeln skyddas av en asymmetrisk nyckel.SELECT encryptor_type, encryption_state_desc, encryptor_thumbprint FROM sys.dm_database_encryption_keys WHERE database_id = DB_ID('TestTDE');Satsen returnerar utdata som liknar följande:
encryptor_type encryption_state_desc encryptor_thumbprint ASYMMETRIC KEY ENCRYPTED <key thumbprint>Bekräfta att
encryptor_thumbprintmatchar tumavtrycket som returneras avsys.asymmetric_keys. Ett matchningsfel indikerar vanligtvis att databaskrypteringsnyckeln skyddas av en annan nyckel än förväntat.
Städa upp
Använd de rensningssteg som matchar den autentiseringsmodell som du konfigurerade.
Rensa testobjekten som du skapade i den här proceduren.
-- 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]; GOGranska om du ska ta bort registernyckeln
SQL Server Cryptographic Provider.Important
Registernyckeln
SQL Server Cryptographic Providertas inte bort automatiskt när du har tagit bort EKM-nycklar.Ta bara bort den här registernyckeln när du inte längre behöver EKM på instansen. Att ta bort det för tidigt kan störa EKM-funktioner och återställningsåtgärder.
Registersökväg:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider
Rotera asymmetriska nycklar för TDE med Azure Key Vault
Använd en dedikerad driftsguide för nyckelrotationssteg, inklusive autentiseringsspecifika skript, verifiering och säkerhetskontroller:
Important
Ta inte bort tidigare versioner av nyckeln efter rotation. Tidigare versioner kan fortfarande krävas för att återställa äldre säkerhetskopior, loggfiler och återställningsartefakter.