Azure Key Vault-integráció konfigurálása azure-beli virtuális gépeken futó SQL Serverhez (Resource Manager)

A következőre vonatkozik:SQL Server azure-beli virtuális gépen

Több SQL Server-titkosítási funkció is létezik, például transzparens adattitkosítás (TDE), oszlopszintű titkosítás (CLE) és biztonsági mentési titkosítás. Ezek a titkosítási formák megkövetelik a titkosításhoz használt titkosítási kulcsok kezelését és tárolását. Az Azure Key Vault szolgáltatás célja, hogy biztonságos és magas rendelkezésre állású helyen javítsa ezeknek a kulcsoknak a biztonságát és kezelését. Az SQL Server Csatlakozás or lehetővé teszi, hogy az SQL Server ezeket a kulcsokat az Azure Key Vaultból használja.

Ha helyszíni SQL Servert futtat, kövesse az Azure Key Vault helyszíni SQL Server-példányról való eléréséhez szükséges lépéseket. Az Azure-beli virtuális gépeken futó SQL Server esetében azonban időt takaríthat meg az Azure Key Vault integrációs funkciójával.

Feljegyzés

Az Azure Key Vault-integráció csak az SQL Server Enterprise, Developer és Evaluation Kiadásaihoz érhető el. Az SQL Server 2019-től kezdve a Standard kiadás is támogatott.

Ha ez a funkció engedélyezve van, automatikusan telepíti az SQL Server Csatlakozás ort, konfigurálja az EKM-szolgáltatót az Azure Key Vault eléréséhez, és létrehozza a hitelesítő adatokat, hogy hozzáférhessen a tárolóhoz. Ha megvizsgálta a korábban említett helyszíni dokumentáció lépéseit, láthatja, hogy ez a funkció automatizálja a 2. és a 3. lépést. Az egyetlen dolog, amit manuálisan kell elvégeznie, a kulcstartó és a kulcsok létrehozása. Innen az SQL Server virtuális gép teljes beállítása automatikusan történik. Miután ez a szolgáltatás befejezte ezt a beállítást, végrehajthatja a Transact-SQL (T-SQL) utasításokat az adatbázisok vagy biztonsági másolatok titkosításának megkezdéséhez, ahogyan az általában tenné.

Feljegyzés

A Key Vault-integrációt sablonnal is konfigurálhatja. További információkért tekintse meg az Azure Key Vault-integráció azure-beli gyorsútmutató-sablonjait.

Felkészülés az AKV-integrációra

Ha az Azure Key Vault-integrációt szeretné használni az SQL Server virtuális gép konfigurálásához, több előfeltétel is van:

  1. Az Azure PowerShell telepítése
  2. Microsoft Entra-bérlő létrehozása
  3. Kulcstartó létrehozása

A következő szakaszok ezeket az előfeltételeket és a PowerShell-parancsmagok későbbi futtatásához szükséges információkat ismertetik.

Feljegyzés

Ez a cikk az Azure Az PowerShell-modult használja, amely az Azure-ral való interakcióhoz ajánlott PowerShell-modul. Az Az PowerShell-modul használatának megkezdéséhez lásd az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

Az Azure PowerShell telepítése

Győződjön meg arról, hogy telepítette a legújabb Azure PowerShell-modult. További információt az Azure PowerShell telepítésével és konfigurálásával foglalkozó témakörben talál.

Alkalmazás regisztrálása a Microsoft Entra-azonosítóban

Először is rendelkeznie kell egy Microsoft Entra-bérlőt az előfizetésében. A számos előny közül ez lehetővé teszi, hogy engedélyt adjon a kulcstartónak bizonyos felhasználók és alkalmazások számára.

Ezután regisztráljon egy alkalmazást a Microsoft Entra-azonosítóval. Ez egy egyszerű szolgáltatásfiókot biztosít, amely hozzáfér a kulcstartóhoz, amelyre a virtuális gépnek szüksége van. Az Azure Key Vault-cikkben ezeket a lépéseket az Alkalmazás regisztrálása a Microsoft Entra ID-val című szakaszban találja, vagy a blogbejegyzés alkalmazás szakaszábanképernyőképekkel láthatja a lépéseket. A lépések elvégzése előtt a regisztráció során a következő információkat kell összegyűjtenie, amelyekre később szükség lesz, amikor engedélyezi az Azure Key Vault-integrációt az SQL-alapú virtuális gépen.

  • Az alkalmazás hozzáadása után keresse meg az alkalmazásazonosítót (más néven Ügyfélazonosítót vagy AppID-t) a Regisztrált alkalmazás panelen. Az alkalmazásazonosító később hozzá lesz rendelve a PowerShell-szkript $spName (szolgáltatásnév) paraméteréhez az Azure Key Vault-integráció engedélyezéséhez.

    Application ID

  • A kulcs létrehozása során másolja ki a kulcs titkos kulcsát az alábbi képernyőképen látható módon. Ez a kulcskulcs később lesz hozzárendelve a PowerShell-szkript $spSecret (Egyszerű titkos szolgáltatás) paraméteréhez.

    AAD secret

  • A rendszer az alkalmazásazonosítót és a titkos kulcsot is használja hitelesítő adatok létrehozásához az SQL Serveren.

  • Engedélyeznie kell ezt az új alkalmazásazonosítót (vagy ügyfél-azonosítót) a következő hozzáférési engedélyekkel: get, wrapKey, unwrapKey. Ez a Set-AzKeyVaultAccessPolicy parancsmaggal történik. További információkért tekintse meg az Azure Key Vault áttekintését.

Kulcstartó létrehozása

Ahhoz, hogy az Azure Key Vault segítségével tárolja a virtuális gépen a titkosításhoz használni kívánt kulcsokat, hozzá kell férnie egy kulcstartóhoz. Ha még nem állította be a kulcstartót, hozzon létre egyet az Azure Key Vault használatának első lépéseit követve. A lépések elvégzése előtt a beállítás során néhány információt kell gyűjtenie, amelyekre később szükség lesz, amikor engedélyezi az Azure Key Vault-integrációt az SQL-alapú virtuális gépen.

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

Amikor a Kulcstartó létrehozása lépéshez ér, jegyezze fel a visszaadott vaultUri tulajdonságot, amely a kulcstartó URL-címe. Az ebben a lépésben bemutatott példában, amely később látható, a kulcstartó neve ContosoKeyVault, ezért a kulcstartó URL-címe .https://contosokeyvault.vault.azure.net/

A Key Vault URL-címe később lesz hozzárendelve a PowerShell-szkript $akvURL paraméteréhez az Azure Key Vault-integráció engedélyezéséhez.

A kulcstartó létrehozása után hozzá kell adnunk egy kulcsot a kulcstartóhoz. Ez a kulcs akkor lesz hivatkozva, amikor később létrehozunk egy aszimmetrikus kulcsot az SQL Serverben.

Feljegyzés

Az Extensible Key Management (EKM) Provider 1.0.4.0-s verziója az SQL Server virtuális gépre az SQL-infrastruktúra szolgáltatásként (IaaS) bővítményén keresztül van telepítve. Az SQL IaaS Agent bővítmény frissítése nem frissíti a szolgáltató verzióját. Ha szükséges, vegye fontolóra az EKM-szolgáltató verziójának manuális frissítését (például felügyelt SQL-példányra való migráláskor).

Key Vault-integráció engedélyezése és konfigurálása

Engedélyezheti a Key Vault-integrációt a meglévő virtuális gépek üzembe helyezése vagy konfigurálása során.

Új virtuális gépek

Ha új SQL virtuális gépet épít ki a Resource Managerrel, az Azure Portal lehetővé teszi az Azure Key Vault integrációját.

SQL Azure Key Vault Integration

A kiépítés részletes útmutatója: SQL virtuális gép üzembe helyezése az Azure Portalon.

Meglévő virtuális gépek

Meglévő SQL virtuális gépek esetén nyissa meg az SQL virtuális gépek erőforrását, és válassza a Biztonság lehetőséget a Gépház alatt. Válassza az Engedélyezés lehetőséget az Azure Key Vault integrációjának engedélyezéséhez.

Az alábbi képernyőkép bemutatja, hogyan engedélyezheti az Azure Key Vaultot a portálon egy meglévő SQL Server virtuális gép számára (ez az SQL Server-példány nem alapértelmezett 1401-es portot használ):

SQL Key Vault integration for existing VMs

Ha végzett, a módosítások mentéséhez kattintson a Biztonság lap alján található Alkalmaz gombra.

Feljegyzés

Az itt létrehozott hitelesítő adatok neve később egy SQL-bejelentkezéshez lesz leképezve. Ez lehetővé teszi, hogy az SQL-bejelentkezés hozzáférjen a kulcstartóhoz.

Az Azure Key Vault-integráció engedélyezése után engedélyezheti az SQL Server-titkosítást az SQL virtuális gépen. Először létre kell hoznia egy aszimmetrikus kulcsot a kulcstartóban és egy szimmetrikus kulcsot az SQL Serveren a virtuális gépen. Ezután T-SQL-utasításokat hajthat végre az adatbázisok és biztonsági másolatok titkosításának engedélyezéséhez.

A titkosításnak több formája is van:

Az alábbi Transact-SQL-szkriptek példákat nyújtanak az egyes területekre.

Példák előfeltételei

Mindegyik példa a két előfeltételen alapul: egy aszimmetrikus kulcs a kulcstartóból CONTOSO_KEY nevű, és egy hitelesítő adat, amelyet az AKV-integrációs szolgáltatás, az Azure_EKM_cred hozott létre. Az alábbi Transact-SQL-parancsok a példák futtatásának előfeltételeit telepítik.

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;

Transzparens adattitkosítás (TDE)

  1. Hozzon létre egy SQL Server-bejelentkezést, amelyet a TDE adatbázismotorja használ, majd adja hozzá a hitelesítő adatokat.

    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. Hozza létre a TDE-hez használt adatbázis-titkosítási kulcsot.

    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
    

Titkosított biztonsági mentések

  1. Hozzon létre egy SQL Server-bejelentkezést, amelyet az adatbázismotor használ a biztonsági másolatok titkosításához, és adja hozzá a hitelesítő adatokat.

    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. Készítsen biztonsági másolatot a titkosítást meghatározó adatbázisról a kulcstartóban tárolt aszimmetrikus kulccsal.

    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
    

Oszlopszintű titkosítás (CLE)

Ez a szkript létrehoz egy szimmetrikus kulcsot, amelyet a kulcstartó aszimmetrikus kulcsa véd, majd a szimmetrikus kulccsal titkosítja az adatbázisban lévő adatokat.

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;

További erőforrások

A titkosítási funkciók használatáról további információt az EKM használata az SQL Server titkosítási funkcióival című témakörben talál.

Vegye figyelembe, hogy a jelen cikkben ismertetett lépések feltételezik, hogy az SQL Server már fut egy Azure-beli virtuális gépen. Ha nem, olvassa el az SQL Server virtuális gép üzembe helyezését az Azure-ban. Az SQL Server Azure-beli virtuális gépeken való futtatásával kapcsolatos további útmutatásért tekintse meg az Azure Windows rendszerű virtuális gépeken futó SQL Server áttekintését.

Következő lépések

További biztonsági információkért tekintse át az Azure-beli virtuális gépeken futó SQL Server biztonsági szempontjait.