Integratie Azure Key Vault configureren voor SQL Server virtuele Azure-VM's (Resource Manager)

VAN TOEPASSING OP: SQL Server op virtuele Azure-machine

Er zijn meerdere SQL Server versleutelingsfuncties, zoals TDE (Transparent Data Encryption),VERsleuteling op kolomniveau (CLE)en back-upversleuteling. Voor deze vormen van versleuteling moet u de cryptografische sleutels die u voor versleuteling gebruikt, beheren en opslaan. De Azure Key Vault is ontworpen om de beveiliging en het beheer van deze sleutels te verbeteren op een veilige en zeer beschikbare locatie. Met de SQL Server-connector SQL Server u deze sleutels uit Azure Key Vault.

Als u on-premises SQL Server, zijn er stappen die u kunt volgen om toegang te krijgen Azure Key Vault uw on-premises SQL Server-exemplaar. Maar voor SQL Server azure-VM's kunt u tijd besparen met behulp van de functie Azure Key Vault Integration.

Wanneer deze functie is ingeschakeld, wordt de SQL Server-connector automatisch geïnstalleerd, wordt de EKM-provider geconfigureerd voor toegang tot Azure Key Vault en wordt de referentie gemaakt zodat u toegang hebt tot uw kluis. Als u de stappen in de eerder genoemde on-premises documentatie hebt bekeken, kunt u zien dat deze functie stap 2 en 3 automatiseert. Het enige wat u nog steeds handmatig moet doen, is de sleutelkluis en sleutels maken. Hier wordt de hele installatie van uw SQL Server VM geautomatiseerd. Zodra deze functie deze instelling heeft voltooid, kunt u Transact-SQL-instructies (T-SQL) uitvoeren om te beginnen met het versleutelen van uw databases of back-ups zoals u dat normaal zou doen.

Voorbereiden op AKV-integratie

Als u Azure Key Vault-integratie wilt gebruiken om uw virtuele SQL Server te configureren, zijn er verschillende vereisten:

  1. Azure PowerShell installeren
  2. Een Azure Active Directory
  3. Maak een sleutelkluis.

In de volgende secties worden deze vereisten en de informatie beschreven die u moet verzamelen om de PowerShell-cmdlets later uit te voeren.

Notitie

In dit artikel wordt de Azure Az PowerShell-module gebruikt. Dit is de aanbevolen PowerShell-module voor interactie met Azure. Raadpleeg Azure PowerShell installeren om aan de slag te gaan met de Az PowerShell-module. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Installatie Azure PowerShell

Zorg ervoor dat u de meest recente Azure PowerShell hebt geïnstalleerd. Zie Azure PowerShell installeren en configureren voor meer informatie.

Een toepassing registreren in uw Azure Active Directory

Eerst moet u een Azure Active Directory (AAD) in uw abonnement hebben. Dit biedt u de mogelijkheid om bepaalde gebruikers en toepassingen machtigingen te verlenen voor uw sleutelkluis.

Registreer vervolgens een toepassing bij AAD. Hiermee krijgt u een Service Principal-account dat toegang heeft tot uw sleutelkluis, die uw VM nodig heeft. In het Azure Key Vault-artikel vindt u deze stappen in de sectie Een toepassing registreren bij Azure Active Directory. U kunt ook de stappen met schermafbeeldingen bekijken in de sectie Een identiteit voor de toepassing krijgen van dit blogbericht. Voordat u deze stappen voltooit, moet u de volgende informatie verzamelen tijdens deze registratie, die later nodig is wanneer u Azure Key Vault Integration op uw virtuele SQL inschakelen.

  • Nadat de toepassing is toegevoegd, gaat u naar de toepassings-id (ook wel AAD ClientID of AppID genoemd) op de blade Geregistreerde app. De toepassings-id wordt later toegewezen aan de parameter $spName (Service Principal Name) in het PowerShell-script om de integratie Azure Key Vault in te stellen.

    Toepassings-id

  • Kopieer tijdens deze stappen bij het maken van uw sleutel het geheim voor uw sleutel, zoals wordt weergegeven in de volgende schermopname. Dit sleutelgeheim wordt later toegewezen aan de parameter $spSecret (Service Principal Secret) in het PowerShell-script.

    AAD-geheim

  • De toepassings-id en het geheim worden ook gebruikt om een referentie te maken in SQL Server.

  • U moet deze nieuwe toepassings-id (of client-id) machtigen om de volgende toegangsmachtigingen te hebben: get, wrapKey, unwrapKey. Dit wordt gedaan met de cmdlet Set-AzKeyVaultAccessPolicy. Zie overzicht van Azure Key Vault voor meer informatie.

Een sleutelkluis maken

Als u de Azure Key Vault wilt gebruiken voor het opslaan van de sleutels die u voor versleuteling in uw VM wilt gebruiken, hebt u toegang tot een sleutelkluis nodig. Als u uw sleutelkluis nog niet hebt ingesteld, maakt u er een door de stappen in het artikel Aan de slag met Azure Key Vault volgen. Voordat u deze stappen voltooit, moet u tijdens deze set-up enkele gegevens verzamelen die u later nodig hebt wanneer u Azure Key Vault Integration op uw virtuele SQL inschakelen.

New-AzKeyVault -VaultName 'ContosoKeyVault' -ResourceGroupName 'ContosoResourceGroup' -Location 'East Asia'

Wanneer u bij de stap Een sleutelkluis maken komt, noteer dan de geretourneerde eigenschap vaultUri. Dit is de URL van de sleutelkluis. In het voorbeeld in die stap, dat hieronder wordt weergegeven, is de naam van de sleutelkluis ContosoKeyVault. De URL van de sleutelkluis zou daarom https://contosokeyvault.vault.azure.net/ zijn.

De URL van de sleutelkluis wordt later toegewezen aan de parameter $akvURL in het PowerShell-script om de integratie Azure Key Vault in te stellen.

Nadat de sleutelkluis is gemaakt, moet u een sleutel toevoegen aan de sleutelkluis. Deze sleutel wordt gebruikt wanneer u later een asymmetrische sleutel maakt SQL Server maken.

Notitie

Extensible Key Management (EKM) Provider versie 1.0.4.0 is geïnstalleerd op de SQL Server-VM via de extensie SQL Infrastructure as a Service (IaaS). Als u de SQL IaaS-extensie bij te werken, wordt de providerversie niet bijgewerkt. Overweeg indien nodig handmatig de versie van de EKM-provider bij te werken (bijvoorbeeld wanneer u migreert naar een SQL beheerd exemplaar).

Integratie van Key Vault inschakelen Key Vault configureren

U kunt de integratie Key Vault tijdens het inrichten inschakelen of configureren voor bestaande VM's.

Nieuwe VM's

Als u een nieuwe virtuele machine SQL met Resource Manager, biedt de Azure Portal een manier om integratie Azure Key Vault inschakelen. De Azure Key Vault is alleen beschikbaar voor de Enterprise-, Developer- en Evaluation-edities van SQL Server.

Integratie van Azure Sleutelkluis in SQL

Zie Provision a SQL virtual machine in the Azure Portal (Een virtuele machine inrichten in de Azure Portal) voor een gedetailleerd overzicht van Azure Portal.

Bestaande VM's

Voor bestaande SQL virtuele machines opent u de resource SQL virtuele machines en selecteert u Beveiliging onder Instellingen. Selecteer Inschakelen om de integratie Azure Key Vault in te stellen.

SQL Key Vault integratie voor bestaande VM's

Wanneer u klaar bent, selecteert u de knop Toepassen onder aan de pagina Beveiliging om uw wijzigingen op te slaan.

Notitie

De referentienaam die we hier hebben gemaakt, wordt later SQL aanmelding. Hierdoor kan de SQL toegang krijgen tot de sleutelkluis.

Notitie

U kunt de integratie Key Vault configureren met behulp van een sjabloon. Zie Azure-quickstartsjabloon voor Azure Key Vault integratie voor meer informatie.

Volgende stappen

Nadat u Azure Key Vault-integratie hebt ingeschakeld, kunt u SQL Server versleuteling inschakelen op uw SQL-VM. Eerst moet u in uw sleutel kluis een asymmetrische sleutel maken en een symmetrische sleutel binnen SQL Server op uw VM. Daarna kunt u T-SQL-instructies uitvoeren om versleuteling in te scha kelen voor uw data bases en back-ups.

Er zijn verschillende soorten versleuteling waarmee u kunt profiteren van:

De volgende Transact-SQL-scripts bieden voor beelden voor elk van deze gebieden.

Vereisten voor voor beelden

Elk voor beeld is gebaseerd op de twee vereisten: een asymmetrische sleutel uit de sleutel kluis met de naam CONTOSO_KEY en een referentie die is gemaakt door de Azure-integratie functie met de naam Azure_EKM_cred. Met de volgende Transact-SQL-opdrachten worden deze vereisten ingesteld voor het uitvoeren van de voor beelden.

USE master;
GO

--create credential
--The <<SECRET>> here requires the <Application ID> (without hyphens) and <Secret> to be passed together without a space between them.
CREATE CREDENTIAL Azure_EKM_cred
    WITH IDENTITY = 'keytestvault', --keyvault
    SECRET = '<<SECRET>>'
FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov;


--Map the credential to a SQL login that has sysadmin permissions. This allows the SQL login to access the key vault when creating the asymmetric key in the next step.
ALTER LOGIN [SQL_Login]
ADD CREDENTIAL Azure_EKM_cred;


CREATE ASYMMETRIC KEY CONTOSO_KEY
FROM PROVIDER [AzureKeyVault_EKM_Prov]
WITH PROVIDER_KEY_NAME = 'KeyName_in_KeyVault',  --The key name here requires the key we created in the key vault
CREATION_DISPOSITION = OPEN_EXISTING;

Transparent Data Encryption (TDE)

  1. Maak een SQL Server aanmelding die moet worden gebruikt door de data base-engine voor TDE en voeg vervolgens de referentie toe.

    USE master;
    -- Create a SQL Server login associated with the asymmetric key
    -- for the Database engine to use when it loads a database
    -- encrypted by TDE.
    CREATE LOGIN EKM_Login
    FROM ASYMMETRIC KEY CONTOSO_KEY;
    GO
    
    -- Alter the TDE Login to add the credential for use by the
    -- Database Engine to access the key vault
    ALTER LOGIN EKM_Login
    ADD CREDENTIAL Azure_EKM_cred;
    GO
    
  2. Maak de database versleutelings sleutel die wordt gebruikt voor TDE.

    USE ContosoDatabase;
    GO
    
    CREATE DATABASE ENCRYPTION KEY 
    WITH ALGORITHM = AES_128 
    ENCRYPTION BY SERVER ASYMMETRIC KEY CONTOSO_KEY;
    GO
    
    -- Alter the database to enable transparent data encryption.
    ALTER DATABASE ContosoDatabase
    SET ENCRYPTION ON;
    GO
    

Versleutelde back-ups

  1. Maak een SQL Server aanmelding die door de data base-engine moet worden gebruikt voor het versleutelen van back-ups en voeg de referentie toe aan de-server.

    USE master;
    -- Create a SQL Server login associated with the asymmetric key
    -- for the Database engine to use when it is encrypting the backup.
    CREATE LOGIN EKM_Login
    FROM ASYMMETRIC KEY CONTOSO_KEY;
    GO
    
    -- Alter the Encrypted Backup Login to add the credential for use by
    -- the Database Engine to access the key vault
    ALTER LOGIN EKM_Login
    ADD CREDENTIAL Azure_EKM_cred ;
    GO
    
  2. Back-up maken van de data base die versleuteling opgeeft met de asymmetrische sleutel die is opgeslagen in de sleutel kluis.

    USE master;
    BACKUP DATABASE [DATABASE_TO_BACKUP]
    TO DISK = N'[PATH TO BACKUP FILE]'
    WITH FORMAT, INIT, SKIP, NOREWIND, NOUNLOAD,
    ENCRYPTION(ALGORITHM = AES_256, SERVER ASYMMETRIC KEY = [CONTOSO_KEY]);
    GO
    

Versleuteling op kolom niveau (CLE)

Met dit script maakt u een symmetrische sleutel die wordt beveiligd door de asymmetrische sleutel in de sleutel kluis. vervolgens wordt de symmetrische sleutel gebruikt voor het versleutelen van gegevens in de-data base.

CREATE SYMMETRIC KEY DATA_ENCRYPTION_KEY
WITH ALGORITHM=AES_256
ENCRYPTION BY ASYMMETRIC KEY CONTOSO_KEY;

DECLARE @DATA VARBINARY(MAX);

--Open the symmetric key for use in this session
OPEN SYMMETRIC KEY DATA_ENCRYPTION_KEY
DECRYPTION BY ASYMMETRIC KEY CONTOSO_KEY;

--Encrypt syntax
SELECT @DATA = ENCRYPTBYKEY(KEY_GUID('DATA_ENCRYPTION_KEY'), CONVERT(VARBINARY,'Plain text data to encrypt'));

-- Decrypt syntax
SELECT CONVERT(VARCHAR, DECRYPTBYKEY(@DATA));

--Close the symmetric key
CLOSE SYMMETRIC KEY DATA_ENCRYPTION_KEY;

Aanvullende bronnen

Zie voor meer informatie over het gebruik van deze versleutelings functies EKM gebruiken met SQL Server-versleutelings functies.

In de stappen in dit artikel wordt ervan uitgegaan dat u al SQL Server hebt uitgevoerd op een virtuele machine van Azure. Als dat niet het geval is, raadpleegt u een SQL Server virtuele machine inrichten in azure. Zie SQL Server op azure virtual machines Overviewvoor meer informatie over het uitvoeren van SQL Server op Azure-vm's.