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.
Opmerking
Microsoft Entra ID voorheen Azure Active Directory (Azure AD) werd genoemd.
Extensible Key Management met behulp van Azure Key Vault (AKV) is beschikbaar voor SQL Server in Linux-omgevingen, te beginnen met SQL Server 2022 (16.x) Cumulatieve update 12. Volg dezelfde instructies, maar sla stap 3 en 4 over.
Vereiste voorwaarden
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.
Maak uzelf vertrouwd met de principes van EKM-opslag (Extensible Key Management) met Azure Key Vault door Extensible Key Management te controleren met behulp van Azure Key Vault (SQL Server).
Kan het register op de SQL Server-computer wijzigen.
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 Visual C++ Redistributable voor Visual Studio 2015 Maak uzelf vertrouwd met Toegang tot Azure Key Vault achter een firewall als u van plan bent om de SQL Server-connector voor Azure Key Vault achter een firewall of een proxyserver te gebruiken.
Opmerking
In SQL Server 2022 (16.x) CU 14 en hoger ondersteunt SQL Server op Linux TDE Extensible Key Management met Azure Key Vault. Stap 3 en 4 in deze handleiding zijn niet vereist voor SQL Server in Linux.
Stap 1: Een Microsoft Entra-service-principal instellen
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 Azure Portal en voer een van de volgende handelingen 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 het volgende te doen. 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 dat moet worden gebruikt 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 die moet worden gebruikt voor het maken van een asymmetrische sleutel in SQL Server.
Stap 2: Een sleutelkluis maken
Selecteer de methode die u wilt gebruiken om een sleutelkluis te maken.
Een sleutelkluis maken met behulp van Azure Portal
U kunt de Azure-portal gebruiken om de sleutelkluis te maken en vervolgens een Microsoft Entra-hoofdgebruiker eraan toe te voegen.
Maak een resourcegroep.
Alle Azure-resources die u maakt via Azure Portal, moeten zijn opgenomen in een resourcegroep, die u maakt om uw sleutelkluis te huiseren. De resourcenaam in dit voorbeeld is DocsSampleRG. Kies uw eigen resourcegroep en sleutelkluisnaam, omdat alle namen van de sleutelkluis wereldwijd uniek moeten zijn.
Voer in het deelvenster Een resourcegroep maken onder Projectdetails de waarden in en selecteer Beoordelen en maken.
Zoek of selecteer in de Azure-portal de Key vaults-services om een sleutelkluis te maken. Klik op Creëren.
Selecteer in het deelvenster Een sleutelkluis maken het tabblad Basisbeginselen . Voer de juiste waarden voor het tabblad in. We raden u ook aan om beveiliging tegen opschonen in te schakelen.
Op het tabblad Toegangsconfiguratie hebt u de mogelijkheid om op rollen gebaseerd toegangsbeheer of kluistoegangsbeleid van Azure te selecteren. We bespreken beide opties, maar de optie voor Azure rolgebaseerd toegangsbeheer wordt aanbevolen. Zie het overzicht van het Access-model voor meer informatie.
U kunt het tabblad Netwerken standaard laten staan of u kunt de netwerkinstellingen voor de sleutelkluis configureren. Als u een firewall met de sleutelkluis gebruikt, moet de optie Vertrouwde Microsoft-services toestaan om de firewall te omzeilen zijn ingeschakeld, tenzij u privé-eindpuntverbindingen gebruikt. Zie Azure Key Vault-firewalls en virtuele netwerken configurerenvoor meer informatie.
Selecteer Beoordelen + maken en maak de sleutelkluis aan.
Op rollen gebaseerd toegangsbeheer van Azure
De aanbevolen methode is om op rollen gebaseerd toegangsbeheer (RBAC) van Azure te gebruiken om machtigingen toe te wijzen aan de sleutelkluis. Met deze methode kunt u machtigingen toewijzen aan gebruikers, groepen en toepassingen op een gedetailleerder niveau. U kunt machtigingen toewijzen aan de sleutelkluis op het beheervlak (Azure-roltoewijzingen) en op het gegevensvlak (toegangsbeleid voor key vault). Als u alleen toegangsbeleid kunt gebruiken, kunt u deze sectie overslaan en naar de sectie Kluistoegangsbeleid gaan. 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 heeft de rol Key Vault Crypto Service Encryption User nodig om omsluit- en ontsluitbewerkingen uit te voeren. Zoek naar Key Vault Crypto Service Encryption User en selecteer de rol. Kies Volgende.
Selecteer op het tabblad Leden de optieLeden selecteren en zoek vervolgens naar de Microsoft Entra-toepassing die u in stap 1 hebt gemaakt. Selecteer de toepassing en vervolgens de knop Selecteren .
Selecteer Beoordelen en tweemaal toewijzen om de roltoewijzing te voltooien.
De gebruiker die de sleutel maakt, heeft de rol Key Vault-beheerder nodig. Zoek naar Key Vault-beheerder en selecteer de rol. Kies Volgende.
Net als in de vorige stappen voegt u het lid toe dat de sleutel maakt en wijst u de rol toe.
Toegangsbeleid voor kluis
Opmerking
Als u de optie op basis van op rollen gebaseerd toegangsbeheer van Azure gebruikt, kunt u deze sectie overslaan. Als u het machtigingsmodel wijzigt, kunt u dit doen door naar het toegangsconfiguratiemenu van de sleutelkluis te gaan. Zorg ervoor dat u over de juiste machtigingen beschikt om de sleutelkluis te beheren. Zie Azure RBAC-machtigingen inschakelen voor Key Vault voor meer informatie.
Selecteer op het tabblad Toegangsconfiguratiekluistoegangsbeleid. Als u een bestaande sleutelkluis gebruikt, kunt u het menu Toegangsbeleid selecteren in de Key Vault-resource en Maken selecteren.
Selecteer in het deelvenster Een toegangsbeleid maken de machtigingen Get en List uit de opties voor Sleutelbeheerbewerkingen. Selecteer Sleutel uitpakken en Sleutelmachtigingen verpakken in de opties voor cryptografische bewerkingen . Kies Volgende
Selecteer op het tabblad Principal de toepassing die is gemaakt in stap 1.
Selecteer Volgende en vervolgens Maken.
Een sleutel maken
Selecteer sleutels in het deelvenster Key Vault en selecteer vervolgens de optie Genereren/importeren. Hiermee opent u het deelvenster Een sleutel maken . Voer de naam van een sleutelkluis in. 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.
Beste praktijken
Om snel sleutelherstel te garanderen en toegang te krijgen tot uw gegevens buiten Azure, raden we de volgende aanbevolen procedures aan:
Maak uw versleutelingssleutel lokaal op een lokaal HSM-apparaat (Hardware Security Module). Zorg ervoor dat u een asymmetrische RSA 2048- of 3072-sleutel gebruikt, zodat deze wordt ondersteund door SQL Server.
Importeer de versleutelingssleutel in uw Azure-sleutelkluis. Dit proces wordt beschreven in de volgende secties.
Voordat u de sleutel in uw Azure-sleutelkluis voor de eerste keer gebruikt, voert u een back-up van een Azure-sleutelkluis uit met behulp van de
Backup-AzureKeyVaultKey
PowerShell-cmdlet.Wanneer u wijzigingen aanbrengt in de sleutel (bijvoorbeeld het toevoegen van ACL's, tags of sleutelkenmerken), moet u een andere back-up van de Azure-sleutelkluis uitvoeren.
Opmerking
Het maken van een back-up van een sleutel is een Azure Key Vault-sleutelbewerking die een bestand retourneert dat overal kan worden opgeslagen.
Het gebruik van de SQL Server-connector voor Azure Key Vault achter een firewall of proxyserver kan van invloed zijn op de prestaties als het verkeer is vertraagd of geblokkeerd. Maak jezelf vertrouwd met Access Azure Key Vault die zich achter een firewall bevindt om te garanderen dat de juiste regels aanwezig zijn.
Optioneel: een beheerde HSM van Azure Key Vault configureren (hardwarebeveiligingsmodule)
Beheerde HSM van Azure Key Vault (Hardware Security Module) wordt ondersteund voor SQL Server en SQL Server op Azure Virtual Machines (VM's) bij gebruik van de nieuwste versie van de SQL Server-connector en Azure SQL. 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.
In stap 2 hebt u geleerd hoe u een sleutelkluis en sleutel maakt in Azure Key Vault. U kunt eventueel een beheerde HSM van Azure Key Vault gebruiken om een sleutel op te slaan of te maken die moet worden gebruikt met de SQL Server-connector. Dit zijn de stappen:
Maak een door Azure Key Vault beheerde HSM. U kunt dit doen met behulp van Azure Portal door te zoeken naar de beheerde HSM-service van Azure Key Vault en de nieuwe resource te maken, of door de Azure CLI, PowerShell of een ARM-sjabloon te gebruiken.
Activeer de beheerde HSM. Alleen de aangewezen beheerders die zijn toegewezen tijdens het maken van de beheerde HSM, kunnen de HSM activeren. U kunt dit doen door de beheerde HSM-resource in Azure Portal te selecteren door Beveiligingsdomein downloaden te selecteren in het menu Overzicht van de resource. Volg vervolgens een van de quickstarts om uw beheerde HSM te activeren.
Verken machtigingen voor de Microsoft Entra-service-principal voor toegang tot de beheerde HSM. De rol Beheerde HSM-beheerder geeft geen machtigingen om een sleutel te maken. Net als bij stap 2 heeft de EKM-toepassing de rol Managed HSM Crypto User of Managed HSM Crypto Service Encryption User nodig om wrap- en uitpakbewerkingen uit te voeren. Kies het ondernemingstoepassingstype bij het toevoegen van de principal voor de roltoewijzing. 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.
Opmerking
Wanneer u een referentie aanmaakt voor toegang tot de beheerde HSM, is de identiteit
<name of Managed HSM>.managedhsm.azure.net
, die u kunt vinden in het overzicht van de beheerde HSM van Azure Key Vault als de HSM-URI in de Azure Portal.Algoritme RSA-HSM_2048 en RSA-HSM_3072 worden ondersteund vanaf SQL Server 2022 (16.x).
Automatische sleutelrotatie wordt ondersteund in beheerde HSM van Azure Key Vault. Zie Automatische rotatie van sleutels configureren in Azure Managed HSM voor meer informatie.
SQL Server Connector versie 15.0.2000.440 of hoger is vereist voor de ondersteuning van door Azure Key Vault beheerde HSM.
Beheerde HSM ondersteunt privé-eindpuntverbindingen. Voor meer informatie, zie Integrate Managed HSM with Azure Private Link. In deze configuratie moet de optie voor het overslaan van vertrouwde services van Microsoft zijn ingeschakeld voor de door Azure Key Vault beheerde HSM-netwerkinstelling.
Stap 3: De SQL Server-connector installeren
Download de SQL Server-connector via het Microsoft Downloadcentrum. De download moet worden uitgevoerd door de beheerder van de SQL Server-computer.
Opmerking
- SQL Server Connector-versies 1.0.0.440 en ouder zijn vervangen en worden niet meer ondersteund in productieomgevingen en met behulp van de instructies op de pagina Onderhoud en probleemoplossing van SQL Server Connector onder Upgrade van SQL Server Connector.
- Vanaf versie 1.0.3.0 rapporteert de SQL Server-connector relevante foutberichten aan de Windows-gebeurtenislogboeken voor probleemoplossing.
- Vanaf versie 1.0.4.0 is er ondersteuning voor privéclouds van Azure, waaronder Azure beheerd door 21Vianet, Azure Duitsland en Azure Government.
- Er is een belangrijke wijziging in versie 1.0.5.0 in termen van het vingerafdrukalgoritmen. Mogelijk ondervindt u databaseherstelfouten na een upgrade naar 1.0.5.0. Zie KB-artikel 447099 voor meer informatie.
- Vanaf versie 1.0.5.0 (TimeStamp: september 2020) ondersteunt de SQL Server-connector het filteren van berichten en logica voor opnieuw proberen van netwerkaanvragen.
- Vanaf bijgewerkte versie 1.0.5.0 (TimeStamp: november 2020) ondersteunt de SQL Server-connector RSA 2048, RSA 3072, RSA-HSM 2048 en RSA-HSM 3072-sleutels.
- Vanaf bijgewerkte versie 1.0.5.0 (TimeStamp: november 2020) kunt u verwijzen naar een specifieke sleutelversie in Azure Key Vault.
De connector is standaard geïnstalleerd op C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault
. Deze locatie kan tijdens de installatie worden gewijzigd. Als u dit wel wijzigt, past u de scripts in de volgende sectie aan.
Er is geen interface voor de Connector, maar als deze correct is geïnstalleerd, wordt de Microsoft.AzureKeyVaultService.EKM.dll
op de computer geïnstalleerd. Deze assembly is de dll van de cryptografische EKM-provider die moet worden geregistreerd bij SQL Server met behulp van de CREATE CRYPTOGRAPHIC PROVIDER
instructie.
Met de installatie van de SQL Server-connector kunt u desgewenst voorbeeldscripts voor SQL Server-versleuteling downloaden.
Als u uitleg over foutcodes, configuratie-instellingen of onderhoudstaken voor de SQL Server-connector wilt bekijken, raadpleegt u:
- Eén. Onderhoudsinstructies voor de SQL Server-connector
- C. Uitleg van foutcodes voor de SQL Server-connector
Stap 4: Registersleutel toevoegen ter ondersteuning van EKM-provider
Waarschuwing
Het wijzigen van het register moet worden uitgevoerd door gebruikers die precies weten wat ze doen. Er kunnen ernstige problemen optreden als u het register onjuist wijzigt. Maak voor extra beveiliging een back-up van het register voordat u het wijzigt. U kunt het register herstellen als er een probleem optreedt.
Het register moet worden gewijzigd door de beheerder van de SQL Server-computer.
Zorg ervoor dat SQL Server is geïnstalleerd en wordt uitgevoerd.
Voer regedit uit om de Register-editor te openen.
Maak een
SQL Server Cryptographic Provider
registersleutel opHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
. Het volledige pad isHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider
.Klik met de rechtermuisknop op de
SQL Server Cryptographic Provider
registersleutel en selecteer Machtigingen.Geef machtigingen voor volledig beheer op de
SQL Server Cryptographic Provider
registersleutel 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.
Opmerking
Als u TDE gebruikt met EKM of Azure Key Vault op een failoverclusterexemplaar, moet u een extra stap uitvoeren om
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider
toe te voegen aan de clusterregister-controlepuntroutine, zodat het register kan synchroniseren tussen de knooppunten. Synchronisatie vereenvoudigt het herstel van databases na failover en sleutelrotatie.Voer in PowerShell de volgende opdracht uit om de registersleutel toe te voegen aan de routine clusterregistercontrolepunt:
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.
De master
database configureren
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_EKM
de 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'; GO
Opmerking
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.
Er moet een referentie worden toegevoegd aan elke aanmelding die versleuteling uitvoert met behulp van een sleutel uit de sleutelkluis. Denk hierbij bijvoorbeeld aan:
Een SQL Server-beheerdersaanmelding die gebruikmaakt van de sleutelkluis voor het instellen en beheren van SQL Server-versleutelingsscenario's.
Andere SQL Server-aanmeldingen die TDE of andere SQL Server-versleutelingsfuncties mogelijk mogelijk maken.
Er is een een-op-een-overeenkomst tussen inloggegevens en aanmeldingen. Dat wil zeggen, elke aanmelding moet een unieke credentaal 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
IDENTITY
argument 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
IDENTITY
argument door de Kluis-URI die wordt geretourneerd in stap 3 van de sectie 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
SECRET
argument door de Microsoft Entra-client-id uit stap 1: Een Microsoft Entra-service-principal instellen. In dit voorbeeld is de client-IDd956f6b9xxxxxxx
.Belangrijk
Verwijder de afbreekstreepjes uit de app-id (client).
Voltooi het tweede deel van het
SECRET
argument met clientgeheim uit stap 1: Een Microsoft Entra-service-principal instellen. In dit voorbeeld isyrA8X~PldtMCvUZPxxxxxxxx
het clientgeheim . De laatste tekenreeks voor hetSECRET
argument is een lange reeks letters en cijfers, zonder afbreekstreepjes (met uitzondering van de sectie Clientgeheim, voor het geval het clientgeheim afbreekstreepjes bevat).USE master; CREATE CREDENTIAL sysadmin_ekm_cred WITH IDENTITY = 'DocsSampleEKMKeyVault', -- for public Azure -- WITH IDENTITY = 'DocsSampleEKMKeyVault.vault.usgovcloudapi.net', -- for Azure Government -- WITH IDENTITY = 'DocsSampleEKMKeyVault.vault.azure.cn', -- for Microsoft Azure operated by 21Vianet -- WITH IDENTITY = 'DocsSampleEKMKeyVault.vault.microsoftazure.de', -- for Azure Germany -- WITH IDENTITY = '<name of Managed HSM>.managedhsm.azure.net', -- for Managed HSM (HSM URI in the Azure portal resource) --<----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 voor het
CREATE CREDENTIAL
argument en programmatisch het verwijderen van de afbreekstreepjes uit de client-id.Open uw Azure Key Vault-sleutel in uw SQL Server-exemplaar.
Of u nu een nieuwe sleutel hebt gemaakt of een asymmetrische sleutel hebt geïmporteerd, zoals beschreven in stap 2: Een sleutelkluis maken, moet u de sleutel openen. Open deze door uw sleutelnaam op te geven in het volgende Transact-SQL script.
Belangrijk
Zorg ervoor dat u eerst de registervereisten voor deze stap voltooit.
- Vervang
EKMSampleASYKey
door de naam die u wilt hebben in SQL Server. - Vervang
ContosoRSAKey0
door de naam van uw sleutel in uw Azure Key Vault of beheerde HSM. Hieronder ziet u een voorbeeld van een versieloze sleutel.
CREATE ASYMMETRIC KEY EKMSampleASYKey FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0', CREATION_DISPOSITION = OPEN_EXISTING;
Vanaf bijgewerkte versie 1.0.5.0 van de SQL Server-connector kunt u verwijzen naar een specifieke sleutelversie in Azure Key Vault:
CREATE ASYMMETRIC KEY EKMSampleASYKey FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0/1a4d3b9b393c4678831ccc60def75379', CREATION_DISPOSITION = OPEN_EXISTING;
In het voorgaande voorbeeldscript vertegenwoordigt
1a4d3b9b393c4678831ccc60def75379
de specifieke versie van de sleutel, die wordt gebruikt. Als u dit script gebruikt, maakt het niet uit of u de sleutel bijwerkt met een nieuwe versie. De sleutelversie (bijvoorbeeld)1a4d3b9b393c4678831ccc60def75379
wordt altijd gebruikt voor databasebewerkingen.- Vervang
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 will associate the asymmetric key to this login CREATE LOGIN TDE_Login FROM ASYMMETRIC KEY EKMSampleASYKey;
Maak een nieuwe aanmelding vanaf de asymmetrische sleutel in SQL Server. Verwijder de referentietoewijzing uit stap 5: Configureer SQL Server zodat de referenties aan de nieuwe inlog kunnen worden toegewezen.
--Now drop the credential mapping from the original association ALTER LOGIN [<domain>\<login>] DROP CREDENTIAL sysadmin_ekm_cred;
Wijzig de nieuwe login en koppel de EKM-referenties aan de nieuwe login.
--Now add the credential mapping to the new Login ALTER LOGIN TDE_Login ADD CREDENTIAL sysadmin_ekm_cred;
De gebruikersdatabase configureren die moet worden versleuteld
Maak een testdatabase die wordt versleuteld met de Azure Key Vault-sleutel.
--Create a test database that will be encrypted with the Azure Key Vault key CREATE DATABASE TestTDE;
Maak een databaseversleutelingssleutel met behulp van de
ASYMMETRIC KEY
(EKMSampleASYKey
).USE <DB Name>; --Create an ENCRYPTION KEY using the ASYMMETRIC KEY (EKMSampleASYKey) CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER ASYMMETRIC KEY EKMSampleASYKey;
Versleutel de testdatabase. Schakel TDE in door de instelling in te stellen
ENCRYPTION ON
.--Enable TDE by setting ENCRYPTION ON ALTER DATABASE TestTDE SET ENCRYPTION ON;
Registergegevens
Voer de volgende Transact-SQL query uit in de
master
database om de gebruikte asymmetrische sleutel weer te geven.SELECT name, algorithm_desc, thumbprint FROM sys.asymmetric_keys;
De verklaring retourneert:
name algorithm_desc thumbprint EKMSampleASYKey RSA_2048 <key thumbprint>
Voer in de gebruikersdatabase (
TestTDE
) de volgende Transact-SQL query uit om de gebruikte versleutelingssleutel weer te geven.SELECT encryptor_type, encryption_state_desc, encryptor_thumbprint FROM sys.dm_database_encryption_keys WHERE database_id = DB_ID('TestTDE');
De verklaring retourneert:
encryptor_type encryption_state_desc encryptor_thumbprint ASYMMETRIC KEY ENCRYPTED <key thumbprint>
Schoonmaken
De testobjecten opschonen. Verwijder alle objecten die in dit testscript zijn gemaakt.
-- CLEAN UP USE master; GO ALTER DATABASE [TestTDE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DROP DATABASE [TestTDE]; GO ALTER LOGIN [TDE_Login] DROP CREDENTIAL [sysadmin_ekm_cred]; DROP LOGIN [TDE_Login]; GO DROP CREDENTIAL [sysadmin_ekm_cred]; GO USE master; GO DROP ASYMMETRIC KEY [EKMSampleASYKey]; DROP CRYPTOGRAPHIC PROVIDER [AzureKeyVault_EKM]; GO
Zie de blog op SQL Server Transparent Data Encryption en Extensible Key Management met Azure Key Vault voor voorbeeldscripts.
De
SQL Server Cryptographic Provider
registersleutel wordt niet automatisch opgeschoond nadat een sleutel of alle EKM-sleutels zijn verwijderd. Het moet handmatig worden opgeschoond. Het opschonen van de registersleutel moet uiterst voorzichtig worden uitgevoerd, omdat het opschonen van het register voortijdig de EKM-functionaliteit kan verbreken. Om de registersleutel op te schonen, verwijder deSQL Server Cryptographic Provider
registersleutel opHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
.
Probleemoplossingsproces
Als de registersleutel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider
niet is gemaakt of als de vereiste machtigingen niet worden verleend, mislukt de volgende DDL-instructie:
CREATE ASYMMETRIC KEY EKMSampleASYKey
FROM PROVIDER [AzureKeyVault_EKM]
WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0',
CREATION_DISPOSITION = OPEN_EXISTING;
Msg 33049, Level 16, State 2, Line 65
Key with name 'ContosoRSAKey0' does not exist in the provider or access is denied. Provider error code: 2058. (Provider Error - No explanation is available, consult EKM Provider for details)
Clientgeheimen die bijna verlopen
Als de referentie een clientgeheim heeft dat bijna verloopt, kan er een nieuw geheim worden toegewezen aan de referentie.
Werk het geheim bij dat oorspronkelijk is gemaakt in stap 1: Een Microsoft Entra-service-principal instellen.
Wijzig de inloggegevens met dezelfde identiteit en een nieuw geheim met behulp van de volgende code. Vervang
<New Secret>
door uw nieuwe geheim:ALTER CREDENTIAL sysadmin_ekm_cred WITH IDENTITY = 'DocsSampleEKMKeyVault', SECRET = '<New Secret>';
Start de SQL Server-service opnieuw op.
Opmerking
Als u EKM in een beschikbaarheidsgroep (AG) gebruikt, moet u de referentie wijzigen en de SQL Server-service opnieuw starten op alle knooppunten van de beschikbaarheidsgroep.
Asymmetrische sleutel draaien met een nieuwe AKV-sleutel of een nieuwe AKV-sleutelversie
Opmerking
- Bij het handmatig roteren van een AKV-sleutel ondersteunt SQL Server zowel een AKV-sleutel zonder versie als een versiegebonden AKV-sleutel en is het niet nodig om een andere AKV-sleutel te gebruiken.
- De oorspronkelijke AKV-sleutel kan worden geroteerd, waardoor een nieuwe versie kan worden gemaakt die de vorige in SQL Server gemaakte sleutel kan vervangen.
- Voor handmatige sleutelrotatie moet een nieuwe asymmetrische SQL Server-sleutel worden aangemaakt die verwijst naar de sleutel zonder versie of de versiesleutel die is geroteerd in AKV. Voor de nieuwe Asymmetrische SQL Server-sleutel wordt de AKV-sleutel zonder versie automatisch gekozen met behulp van de hoogste sleutelversie in AKV. Voor de versiesleutel moet u de hoogste versie in AKV aangeven met behulp van de syntaxis
WITH PROVIDER_KEY_NAME = <key_name>/<version>
. U kunt de versleutelingssleutel van de database wijzigen om opnieuw te versleutelen met de nieuwe asymmetrische sleutel. Dezelfde sleutelnaam (met versie of zonder versie) kan worden gebruikt met het AKV-rotatiebeleid. Voor een versiesleutel moet de huidige versie worden toegevoegd. Gebruik dezelfde sleutelnaam voor versieloze sleutels.
SQL Server heeft geen mechanisme voor het automatisch roteren van de asymmetrische sleutel die wordt gebruikt voor TDE. De stappen voor het handmatig roteren van een asymmetrische sleutel zijn als volgt.
De inloggegevens die worden gebruikt in de initiële installatie (
sysadmin_ekm_cred
) kunnen ook worden hergebruikt voor de sleutelrotatie. Maak eventueel een nieuwe referentie voor de nieuwe asymmetrische sleutel.CREATE CREDENTIAL <new_credential_name> WITH IDENTITY = <key vault>, SECRET = 'existing/new secret' FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM;
Voeg de referentie toe aan de principal:
ALTER LOGIN [domain\userName]; ADD CREDENTIAL <new_credential_name>;
Maak de nieuwe asymmetrische sleutel op basis van de nieuwe sleutel (na het draaien van de sleutel). De nieuwe sleutel kan een versieloze sleutel zijn (
ContosoRSAKey0
in ons voorbeeld) of een versiesleutel (ContosoRSAKey0/1a4d3b9b393c4678831ccc60def75379
waar1a4d3b9b393c4678831ccc60def75379
is de versie van de bijgewerkte sleutel in AKV):CREATE ASYMMETRIC KEY <new_ekm_key_name> FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = <new_key_from_key_vault>, CREATION_DISPOSITION = OPEN_EXISTING;
Maak een nieuwe aanmelding op basis van de nieuwe asymmetrische sleutel:
CREATE LOGIN <new_login_name> FROM ASYMMETRIC KEY <new_ekm_key_name>;
Verwijder de referentie van de principal.
ALTER LOGIN [domain\username] DROP CREDENTIAL <new_credential_name>;
AKV-referentie toewijzen aan de nieuwe inloggen.
ALTER LOGIN <new_login_name>; ADD CREDENTIAL <new_credential_name>;
Wijzig de databaseversleutelingssleutel (DEK) om opnieuw te versleutelen met de nieuwe asymmetrische sleutel:
USE [databaseName]; GO ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER ASYMMETRIC KEY <new_ekm_key_name>;
U kunt de nieuwe asymmetrische sleutel en de versleutelingssleutel controleren die in de database wordt gebruikt:
SELECT encryptor_type, encryption_state_desc, encryptor_thumbprint FROM sys.dm_database_encryption_keys WHERE database_id = DB_ID('databaseName');
Deze vingerafdruk moet overeenkomen met de registersleutel onder het pad
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider\Azure Key Vault\<key_vault_url>\<thumbprint>
en u deKeyUri
voor uw gedraaide sleutel geven.
Belangrijk
Het roteren van de logische TDE-beveiliging voor een server betekent dat u overschakelt naar een nieuwe asymmetrische sleutel of een nieuw certificaat dat de DATABASEversleutelingssleutel (DEK) beveiligt. Sleutelrotatie is een onlinebewerking en moet slechts enkele seconden duren, omdat dit alleen de DEK ontsleutelt en opnieuw versleutelt en niet de hele database.
Verwijder na rotatie geen eerdere versies van de sleutel. Wanneer sleutels worden geroteerd, worden sommige gegevens nog steeds versleuteld met de vorige sleutels, zoals oudere databaseback-ups, back-ups van logboekbestanden, virtuele logboekbestanden (VLF) en transactielogboekbestanden. Eerdere sleutels zijn mogelijk ook vereist voor een databaseherstel of een databaseterugzetting.