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:
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.
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.
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.
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):
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)
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
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
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
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.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: