Konfigurera Azure Key Vault-integrering för SQL Server på virtuella Azure-datorer (Resource Manager)Configure Azure Key Vault integration for SQL Server on Azure VMs (Resource Manager)

gäller för: SQL Server på virtuell Azure-dator

Det finns flera SQL Server krypterings funktioner, till exempel transparent data kryptering (TDE), CLE (Column Level Encryption)och kryptering av säkerhets kopior.There are multiple SQL Server encryption features, such as transparent data encryption (TDE), column level encryption (CLE), and backup encryption. Dessa krypterings former kräver att du hanterar och lagrar de kryptografiska nycklar som du använder för kryptering.These forms of encryption require you to manage and store the cryptographic keys you use for encryption. Tjänsten Azure Key Vault är utformad för att förbättra säkerheten och hanteringen av dessa nycklar på en säker plats med hög tillgänglighet.The Azure Key Vault service is designed to improve the security and management of these keys in a secure and highly available location. Med SQL Server-anslutning kan SQL Server använda nycklarna från Azure Key Vault.The SQL Server Connector enables SQL Server to use these keys from Azure Key Vault.

Om du kör SQL Server lokalt finns det steg du kan följa för att få åtkomst till Azure Key Vault från din lokala SQL Server-instans.If you are running SQL Server on-premises, there are steps you can follow to access Azure Key Vault from your on-premises SQL Server instance. Men för SQL Server på virtuella Azure-datorer kan du spara tid genom att använda funktionen för Azure Key Vault-integrering .But for SQL Server on Azure VMs, you can save time by using the Azure Key Vault Integration feature.

När den här funktionen är aktive rad installerar den automatiskt SQL Server-anslutning, konfigurerar EKM-providern för att få åtkomst till Azure Key Vault och skapar autentiseringsuppgiften så att du kan komma åt ditt valv.When this feature is enabled, it automatically installs the SQL Server Connector, configures the EKM provider to access Azure Key Vault, and creates the credential to allow you to access your vault. Om du har tittat på stegen i den tidigare nämnda dokumentationen kan du se att den här funktionen automatiserar steg 2 och 3.If you looked at the steps in the previously mentioned on-premises documentation, you can see that this feature automates steps 2 and 3. Det enda du behöver göra är att skapa nyckel valvet och nycklarna manuellt.The only thing you would still need to do manually is to create the key vault and keys. Därifrån kommer hela installationen av din SQL Server VM att automatiseras.From there, the entire setup of your SQL Server VM is automated. När den här funktionen har slutfört den här installationen kan du köra Transact-SQL-uttryck (T-SQL) för att börja kryptera dina databaser eller säkerhets kopior på vanligt sätt.Once this feature has completed this setup, you can execute Transact-SQL (T-SQL) statements to begin encrypting your databases or backups as you normally would.

Förbered för AKV-integreringPrepare for AKV Integration

För att kunna använda Azure Key Vault-integrering för att konfigurera SQL Server VM finns det flera krav:To use Azure Key Vault Integration to configure your SQL Server VM, there are several prerequisites:

  1. Installera Azure PowerShellInstall Azure Powershell
  2. Skapa en Azure Active DirectoryCreate an Azure Active Directory
  3. Skapa ett nyckel valvCreate a key vault

I följande avsnitt beskrivs dessa krav och den information som du behöver samla in för att köra PowerShell-cmdletar senare.The following sections describe these prerequisites and the information you need to collect to later run the PowerShell cmdlets.

Anteckning

Den här artikeln har uppdaterats till att använda Azure Az PowerShell-modulen.This article has been updated to use the Azure Az PowerShell module. Az PowerShell-modulen är den rekommenderade PowerShell-modulen för att interagera med Azure.The Az PowerShell module is the recommended PowerShell module for interacting with Azure. För att komma igång med Az PowerShell kan du läsa artikeln om att installera Azure PowerShell.To get started with the Az PowerShell module, see Install Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.To learn how to migrate to the Az PowerShell module, see Migrate Azure PowerShell from AzureRM to Az.

Installera Azure PowerShellInstall Azure PowerShell

Kontrol lera att du har installerat den senaste Azure PowerShell-modulen.Make sure you have installed the latest Azure PowerShell module. Mer information finns i Installera och konfigurera Azure PowerShell.For more information, see How to install and configure Azure PowerShell.

Registrera ett program i Azure Active DirectoryRegister an application in your Azure Active Directory

Först måste du ha en Azure Active Directory (AAD) i din prenumeration.First, you need to have an Azure Active Directory (AAD) in your subscription. På så sätt kan du med många fördelar ge dig behörighet till ditt nyckel valv för vissa användare och program.Among many benefits, this allows you to grant permission to your key vault for certain users and applications.

Registrera sedan ett program med AAD.Next, register an application with AAD. Detta ger dig ett tjänst huvud konto som har åtkomst till ditt nyckel valv, som den virtuella datorn kommer att behöva.This will give you a Service Principal account that has access to your key vault, which your VM will need. I Azure Key Vault artikeln kan du hitta de här stegen i avsnittet Registrera ett program med Azure Active Directory , eller så kan du se stegen med skärm bilder i avsnittet hämta en identitet för programmet i det här blogg inlägget.In the Azure Key Vault article, you can find these steps in the Register an application with Azure Active Directory section, or you can see the steps with screenshots in the Get an identity for the application section of this blog post. Innan du slutför de här stegen måste du samla in följande information under registreringen som behövs senare när du aktiverar Azure Key Vault-integrering på den virtuella SQL-datorn.Before completing these steps, you need to collect the following information during this registration that is needed later when you enable Azure Key Vault Integration on your SQL VM.

  • När programmet har lagts till hittar du program-ID: t (även kallat AAD-ClientID eller AppID) på bladet registrerad app .After the application is added, find the Application ID (also known as AAD ClientID or AppID) on the Registered app blade. Program-ID: t tilldelas senare till $spName -parametern (tjänstens huvud namn) i PowerShell-skriptet för att aktivera Azure Key Vault-integrering.The application ID is assigned later to the $spName (Service Principal name) parameter in the PowerShell script to enable Azure Key Vault Integration.

    Program-ID

  • Under de här stegen när du skapar din nyckel kopierar du hemligheten för nyckeln som visas i följande skärm bild.During these steps when you create your key, copy the secret for your key as is shown in the following screenshot. Den här nyckel hemligheten tilldelas senare till den $spSecret -parametern (tjänstens huvud namns hemlighet) i PowerShell-skriptet.This key secret is assigned later to the $spSecret (Service Principal secret) parameter in the PowerShell script.

    AAD-hemlighet

  • Program-ID: t och hemligheten kommer också att användas för att skapa en autentiseringsuppgift i SQL Server.The application ID and the secret will also be used to create a credential in SQL Server.

  • Du måste godkänna att det här nya program-ID: t (eller klient-ID: t) har följande åtkomst behörigheter: Get, wrapKey, unwrapKey.You must authorize this new application ID (or client ID) to have the following access permissions: get, wrapKey, unwrapKey. Detta görs med cmdleten set-AzKeyVaultAccessPolicy .This is done with the Set-AzKeyVaultAccessPolicy cmdlet. Mer information finns i Azure Key Vault översikt.For more information, see Azure Key Vault overview.

Skapa ett nyckel valvCreate a key vault

För att kunna använda Azure Key Vault för att lagra de nycklar som ska användas för kryptering i din virtuella dator måste du ha åtkomst till ett nyckel valv.In order to use Azure Key Vault to store the keys you will use for encryption in your VM, you need access to a key vault. Om du inte redan har konfigurerat nyckel valvet skapar du ett genom att följa stegen i artikeln komma igång med Azure Key Vault .If you have not already set up your key vault, create one by following the steps in the Getting Started with Azure Key Vault article. Innan du utför de här stegen finns det information som du behöver samla in under den här konfigurationen som behövs senare när du aktiverar Azure Key Vault-integrering på den virtuella SQL-datorn.Before completing these steps, there is some information you need to collect during this set up that is needed later when you enable Azure Key Vault Integration on your SQL VM.

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

När du kommer till steget Skapa ett nyckel valv noterar du den returnerade vaultUri -egenskapen, som är Key Vault-URL: en.When you get to the Create a key vault step, note the returned vaultUri property, which is the key vault URL. I exemplet i det steget, som visas nedan, är nyckel valvets namn ContosoKeyVault, och därför skulle nyckel valvets URL vara https://contosokeyvault.vault.azure.net/ .In the example provided in that step, shown below, the key vault name is ContosoKeyVault, therefore the key vault URL would be https://contosokeyvault.vault.azure.net/.

Nyckel valvets URL tilldelas senare till $akvURL -parametern i PowerShell-skriptet för att aktivera Azure Key Vault-integrering.The key vault URL is assigned later to the $akvURL parameter in the PowerShell script to enable Azure Key Vault Integration.

När nyckel valvet har skapats måste vi lägga till en nyckel till nyckel valvet. den här nyckeln kommer att hänvisas till när vi skapar en asymmetrisk nyckel skapa i SQL Server senare.After the key vault is created, we need to add a key to the key vault, this key will be referred when we create an asymmetric key create in SQL Server later.

Anteckning

Version 1.0.4.0 av EKM-providern (Extensible Key Management) är installerad på SQL Server VM via IaaS-tillägget (SQL Infrastructure as a Service).Extensible Key Management (EKM) Provider version 1.0.4.0 is installed on the SQL Server VM through the SQL infrastructure as a service (IaaS) extension. Uppgradering av SQL IaaS-tillägget kommer inte att uppdatera providerns version.Upgrading the SQL IaaS extension will not update the provider version. Överväg att uppgradera EKM-providerns version manuellt om det behövs (till exempel vid migrering till en SQL-hanterad instans).Please considering manually upgrading the EKM provider version if needed (for example, when migrating to a SQL Managed Instance).

Aktivera och konfigurera Key Vault-integreringEnabling and configuring Key Vault integration

Du kan aktivera Key Vault-integrering under etableringen eller konfigurera den för befintliga virtuella datorer.You can enable Key Vault integration during provisioning or configure it for existing VMs.

Nya virtuella datorerNew VMs

Om du skapar en ny virtuell SQL-dator med Resource Manager kan du med hjälp av Azure Portal aktivera Azure Key Vault-integration.If you are provisioning a new SQL virtual machine with Resource Manager, the Azure portal provides a way to enable Azure Key Vault integration. Azure Key Vault funktionen är bara tillgänglig för SQL Server för Enterprise, Developer och Evaluation.The Azure Key Vault feature is available only for the Enterprise, Developer, and Evaluation Editions of SQL Server.

SQL Azure Key Vault-integrering

En detaljerad genom gång av etableringen finns i etablera en virtuell SQL-dator i Azure Portal.For a detailed walkthrough of provisioning, see Provision a SQL virtual machine in the Azure portal.

Befintliga virtuella datorerExisting VMs

Anteckning

Följande skärm bilder är från resursen SQL Virtual Machines i Azure Portal.The following screenshots are from the SQL virtual machines resource within the Azure portal. För EOS -virtuella SQL Server-datorer, och SQL Server virtuella datorer som inte har registrerats med den virtuella SQL-providern, använder du fliken SQL Server konfiguration för att hantera SQL Server VM i stället.For end-of-support (EOS) SQL server VMs, and SQL Server VMs that have not been registered with the SQL VM resource provider, use the SQL Server configuration tab to manage your SQL Server VM instead.

För befintliga virtuella SQL-datorer öppnar du resursen SQL Virtual Machines och väljer säkerhet under Inställningar.For existing SQL virtual machines, open your SQL virtual machines resource and select Security under Settings. Välj Aktivera för att aktivera Azure Key Vault-integrering.Select Enable to enable Azure Key Vault integration.

SQL Key Vault-integrering för befintliga virtuella datorer

När du är klar väljer du knappen tillämpa längst ned på sidan säkerhet för att spara ändringarna.When you're finished, select the Apply button on the bottom of the Security page to save your changes.

Anteckning

Namnet på autentiseringsuppgifterna som vi skapade här kommer att mappas till en SQL-inloggning senare.The credential name we created here will be mapped to a SQL login later. Detta gör att SQL-inloggningen kan komma åt nyckel valvet.This allows the SQL login to access the key vault.

Anteckning

Du kan också konfigurera Key Vault-integrering med hjälp av en mall.You can also configure Key Vault integration by using a template. Mer information finns i Azure snabb starts mal len för Azure Key Vault-integrering.For more information, see Azure quickstart template for Azure Key Vault integration.

Nästa stegNext steps

När du har aktiverat Azure Key Vault-integrering kan du aktivera SQL Server kryptering på den virtuella SQL-datorn.After enabling Azure Key Vault Integration, you can enable SQL Server encryption on your SQL VM. Först måste du skapa en asymmetrisk nyckel i ditt nyckel valv och en symmetrisk nyckel i SQL Server på den virtuella datorn.First, you will need to create an asymmetric key inside your key vault and a symmetric key within SQL Server on your VM. Sedan kommer du att kunna köra T-SQL-uttryck för att aktivera kryptering för dina databaser och säkerhets kopior.Then, you will be able to execute T-SQL statements to enable encryption for your databases and backups.

Det finns flera typer av kryptering som du kan dra nytta av:There are several forms of encryption you can take advantage of:

Följande Transact-SQL-skript innehåller exempel för var och en av dessa områden.The following Transact-SQL scripts provide examples for each of these areas.

Krav för exempelPrerequisites for examples

Varje exempel baseras på de två förutsättningarna: en asymmetrisk nyckel från ditt nyckel valv som kallas CONTOSO_KEY och en autentiseringsuppgift som skapats av AKV-integrations funktionen som kallas Azure_EKM_cred.Each example is based on the two prerequisites: an asymmetric key from your key vault called CONTOSO_KEY and a credential created by the AKV Integration feature called Azure_EKM_cred. Följande Transact-SQL-kommandon ställer in dessa krav för att köra exemplen.The following Transact-SQL commands setup these prerequisites for running the examples.

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 datakryptering (TDE)Transparent Data Encryption (TDE)

  1. Skapa en SQL Server inloggning som ska användas av databas motorn för TDE och Lägg sedan till autentiseringsuppgiften till den.Create a SQL Server login to be used by the Database Engine for TDE, then add the credential to it.

    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. Skapa den databas krypterings nyckel som ska användas för TDE.Create the database encryption key that will be used for 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
    

Krypterade säkerhets kopiorEncrypted backups

  1. Skapa en SQL Server inloggning som ska användas av databas motorn för kryptering av säkerhets kopior och Lägg till autentiseringsuppgiften till den.Create a SQL Server login to be used by the Database Engine for encrypting backups, and add the credential to it.

    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. Säkerhetskopiera databasen som anger kryptering med den asymmetriska nyckel som lagras i nyckel valvet.Backup the database specifying encryption with the asymmetric key stored in the key vault.

    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
    

Kryptering på kolumn nivå (CLE)Column Level Encryption (CLE)

Det här skriptet skapar en symmetrisk nyckel som skyddas av den asymmetriska nyckeln i nyckel valvet och använder sedan den symmetriska nyckeln för att kryptera data i databasen.This script creates a symmetric key protected by the asymmetric key in the key vault, and then uses the symmetric key to encrypt data in the database.

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;

Ytterligare resurserAdditional resources

Mer information om hur du använder dessa krypterings funktioner finns i använda EKM med SQL Server krypterings funktioner.For more information on how to use these encryption features, see Using EKM with SQL Server Encryption Features.

Observera att stegen i den här artikeln förutsätter att du redan har SQL Server som körs på en virtuell Azure-dator.Note that the steps in this article assume that you already have SQL Server running on an Azure virtual machine. Om inte, se etablera en SQL Server virtuell dator i Azure.If not, see Provision a SQL Server virtual machine in Azure. Andra rikt linjer för att köra SQL Server på virtuella Azure-datorer finns SQL Server på azure Virtual Machines-översikt.For other guidance on running SQL Server on Azure VMs, see SQL Server on Azure Virtual Machines overview.