Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Az aszimmetrikus kulccsal végzett, az Azure Key Vault által védett gyakori SQL Server-titkosítási műveletek a következő három területet foglalják magukban.
Transzparens adattitkosítás az Azure Key Vault aszimmetrikus kulcsával
Biztonsági másolatok titkosítása a Key Vaultból származó aszimmetrikus kulcs használatával
Oszlopszintű titkosítás a Key Vaultból származó aszimmetrikus kulcs használatával
Végezze el a témakör I–IV. részét, Az Azure Key Vaulthasználatával végzett bővíthető kulcskezelés beállítási lépéseit, mielőtt végrehajtja a jelen témakör lépéseit.
Jegyzet
A verzió 1.0.0.440 és régebbiek lecserélésre kerültek, és az éles környezetekben már nem támogatottak. Frissítsen az 1.0.1.0-s vagy újabb verzióra a Microsoft letöltőközpont felkeresésével, és használja a SQL Server-összekötő karbantartási & hibaelhárítási lapján található utasításokat az "SQL Server-összekötő frissítése" területen.
Jegyzet
Microsoft Entra ID korábban Azure Active Directory (Azure AD) néven ismert.
Transzparens adattitkosítás az Azure Key Vault aszimmetrikus kulcsával
A témakör I–IV. részének elvégzése után az Azure Key Vault használatával történő bővíthető kulcskezeléshez szükséges telepítési lépések az Azure Key Vault kulccsal titkosítják az adatbázis titkosítási kulcsát a TDE használatával. További információ a kulcsok PowerShell-lel történő elforgatásáról: Transzparens adattitkosítási (TDE) védő elforgatása a PowerShellhasználatával.
Fontos
Az átállás után ne törölje a kulcs korábbi verzióit. A kulcsok átgördítésével bizonyos adatok továbbra is titkosítva lesznek az előző kulcsokkal, például a régebbi adatbázis-biztonsági másolatokkal, a biztonsági másolatokkal és a tranzakciónapló-fájlokkal.
Létre kell hoznia egy hitelesítő adatot és egy bejelentkezést, és létre kell hoznia egy adatbázis-titkosítási kulcsot, amely titkosítja az adatbázisban lévő adatokat és naplókat. Az adatbázis titkosításához CONTROL engedély szükséges az adatbázishoz. Az alábbi ábra a titkosítási kulcs hierarchiáját mutatja be az Azure Key Vault használatakor.
Hozzon létre SQL Server hitelesítő adatokat az adatbázismotorhoz a TDE céljából
Az adatbázismotor a Microsoft Entra alkalmazás hitelesítő adataival fér hozzá a Key Vaulthoz az adatbázis betöltése során. Javasoljuk, hogy hozzon létre egy másik ügyfél-azonosítót és titkos kulcsot, a(z) 1. lépésszerint, az adatbázismotorhoz, hogy korlátozza a megadott Key Vault jogosultságokat.
Módosítsa az alábbi Transact-SQL szkriptet a következő módokon:
Szerkessze a
IDENTITY
argumentumot (ContosoDevKeyVault
), hogy az az Azure Key Vault-ra mutasson.- Ha globális Azure-használ, cserélje le a
IDENTITY
argumentumot az Azure Key Vault nevére a II. részből. - Ha privát Azure-felhőt használ (például az Azure Government, a 21Vianet által üzemeltetett Azure, vagy az Azure Germany), cserélje le a
IDENTITY
argumentumot a második rész 3. lépésében visszaadott tároló URI-ra. Ne szerepeltesse a "https://" kifejezést a Tároló URI-jában.
- Ha globális Azure-használ, cserélje le a
Cserélje le az
SECRET
argumentum első részét a Microsoft Entra alkalmazás ügyfélazonosítójára a-ből az 1. lépés szerint. Ebben a példában a ügyfélazonosító isEF5C8E094D2A4A769998D93440D8115D
.Fontos
El kell távolítania a kötőjeleket a(z) ügyfélazonosító-ből.
Töltse ki a
SECRET
argumentum második részét az I. rész ügyféltitkával. Ebben a példában az 1. rész ügyféltitkaReplaceWithAADClientSecret
.A SECRET argumentum utolsó sztringje betűk és számok hosszú sorozata lesz, kötőjelek nélkül.
USE master; CREATE CREDENTIAL Azure_EKM_TDE_cred WITH IDENTITY = 'ContosoDevKeyVault', -- for global Azure -- WITH IDENTITY = 'ContosoDevKeyVault.vault.usgovcloudapi.net', -- for Azure Government -- WITH IDENTITY = 'ContosoDevKeyVault.vault.azure.cn', -- for Microsoft Azure operated by 21Vianet -- WITH IDENTITY = 'ContosoDevKeyVault.vault.microsoftazure.de', -- for Azure Germany SECRET = 'EF5C8E094D2A4A769998D93440D8115DReplaceWithAADClientSecret' FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov;
SQL Server-bejelentkezés létrehozása a TDE adatbázismotorhoz
Hozzon létre egy SQL Server-bejelentkezést, és adja hozzá az 1. lépésből származó hitelesítő adatokat. Ez a Transact-SQL példa ugyanazt a kulcsot használja, amelyet korábban importált.
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 TDE_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 TDE_Login ADD CREDENTIAL Azure_EKM_TDE_cred ; GO
Hozza létre az Adatbázis-titkosítási kulcsot (DEK)
A DEK titkosítja az adatbázispéldány adatait és naplófájljait, és az Azure Key Vault aszimmetrikus kulcsával titkosítja. A DEK bármely SQL Server által támogatott algoritmussal vagy kulcshosszsal hozható létre.
USE ContosoDatabase; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER ASYMMETRIC KEY CONTOSO_KEY; GO
TDE bekapcsolása
-- Alter the database to enable transparent data encryption. ALTER DATABASE ContosoDatabase SET ENCRYPTION ON; GO
A Management Studio használatával ellenőrizze, hogy a TDE be van-e kapcsolva az adatbázishoz az Object Explorerrel való csatlakozással. Kattintson a jobb gombbal az adatbázisra, mutasson Feladatokelemre, majd kattintson Adatbázistitkosítás kezeléseparancsra.
Az Adatbázis-titkosítás kezelése párbeszédpanelen ellenőrizze, hogy a TDE be van-e kapcsolva, és hogy milyen aszimmetrikus kulcs titkosítja a DEK-t.
Másik lehetőségként a következő Transact-SQL szkriptet is végrehajthatja. A 3 titkosítási állapot egy titkosított adatbázist jelöl.
USE MASTER SELECT * FROM sys.asymmetric_keys -- Check which databases are encrypted using TDE SELECT d.name, dek.encryption_state FROM sys.dm_database_encryption_keys AS dek JOIN sys.databases AS d ON dek.database_id = d.database_id;
Jegyzet
A
tempdb
adatbázis automatikusan titkosítva lesz, amikor bármely adatbázis engedélyezi a TDE-t.
Biztonsági másolatok titkosítása a Key Vaultból származó aszimmetrikus kulcs használatával
A titkosított biztonsági mentések az SQL Server 2014-től (12.x) kezdve támogatottak. A következő példa létrehoz és visszaállít egy biztonsági másolatot, amely egy adat titkosítási kulcsot tartalmaz, amelyet a kulcstartóban lévő aszimmetrikus kulcs véd.
Az adatbázismotor a Microsoft Entra alkalmazás hitelesítő adataival fér hozzá a Key Vaulthoz az adatbázis betöltése során. Javasoljuk, hogy hozzon létre egy másik ügyfél-azonosítót és titkos kulcsot, a(z) 1. lépésszerint, az adatbázismotorhoz, hogy korlátozza a megadott Key Vault jogosultságokat.
Sql Server-hitelesítő adatok létrehozása az adatbázismotorhoz a biztonsági mentés titkosításához
Módosítsa az alábbi Transact-SQL szkriptet a következő módokon:
Szerkessze a
IDENTITY
argumentumot (ContosoDevKeyVault
), hogy az az Azure Key Vault-ra mutasson.- Ha globális Azure-használ, cserélje le a
IDENTITY
argumentumot az Azure Key Vault nevére a II. részből. - Ha magánfelhőt használ az Azure rendszerében (például Azure Government, a Microsoft Azure, amelyet a 21Vianet üzemeltet, vagy az Azure Germany esetében), akkor a
IDENTITY
argumentumot helyettesítse a II. rész 3. lépésében visszaadott Tároló URI-val. Ne szerepeltesse a "https://" kifejezést a Tároló URI-jában.
- Ha globális Azure-használ, cserélje le a
Cserélje le az
SECRET
argumentum első részét a Microsoft Entra alkalmazás ügyfélazonosítójára a-ből az 1. lépés szerint. Ebben a példában a ügyfélazonosító isEF5C8E094D2A4A769998D93440D8115D
.Fontos
El kell távolítania a kötőjeleket a(z) ügyfélazonosító-ből.
Töltse ki a
SECRET
argumentum második részét az I. rész Titkos ügyfélkódjával. Ebben a példában az I. rész titkos ügyfélkódjaReplace-With-AAD-Client-Secret
. ASECRET
argumentum utolsó sztringje betűk és számok hosszú sorozata lesz, kötőjelek nélkül.USE master; CREATE CREDENTIAL Azure_EKM_Backup_cred WITH IDENTITY = 'ContosoDevKeyVault', -- for global Azure -- WITH IDENTITY = 'ContosoDevKeyVault.vault.usgovcloudapi.net', -- for Azure Government -- WITH IDENTITY = 'ContosoDevKeyVault.vault.azure.cn', -- for Microsoft Azure operated by 21Vianet -- WITH IDENTITY = 'ContosoDevKeyVault.vault.microsoftazure.de', -- for Azure Germany SECRET = 'EF5C8E094D2A4A769998D93440D8115DReplace-With-AAD-Client-Secret' FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov;
Egy SQL Server-bejelentkezés létrehozása az adatbázismotor biztonsági mentések titkosításához
Hozzon létre egy SQL Server-bejelentkezést, amelyet az adatbázismotor használ a titkosítási biztonsági mentésekhez, és adja hozzá az 1. lépésből származó hitelesítő adatokat. Ez a Transact-SQL példa ugyanazt a kulcsot használja, amelyet korábban importált.
Fontos
A biztonsági mentés titkosításához nem használhatja ugyanazt az aszimmetrikus kulcsot, ha már használta ezt a kulcsot a TDE-hez (a fenti példa) vagy az oszlopszintű titkosításhoz (a következő példában).
Ez a példa a kulcstartóban tárolt
CONTOSO_KEY_BACKUP
aszimmetrikus kulcsot használja, amely a főadatbázishoz korábban importálható vagy hozható létre a IV. rész 5. lépésében.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 Backup_Login FROM ASYMMETRIC KEY CONTOSO_KEY_BACKUP; GO -- Alter the Encrypted Backup Login to add the credential for use by -- the Database Engine to access the key vault ALTER LOGIN Backup_Login ADD CREDENTIAL Azure_EKM_Backup_cred ; GO
Az adatbázis biztonsági mentése
Készítsen biztonsági másolatot a titkosítást meghatározó adatbázisról a kulcstartóban tárolt aszimmetrikus kulccsal.
Az alábbi példában vegye figyelembe, hogy ha az adatbázist már TDE-vel titkosították, és az aszimmetrikus kulcs
CONTOSO_KEY_BACKUP
eltér a TDE aszimmetrikus kulcsától, a biztonsági mentést a TDE aszimmetrikus kulccsal ésCONTOSO_KEY_BACKUP
is titkosítja. A cél SQL Server-példánynak mindkét kulcsra szüksége lesz a biztonsági mentés visszafejtéséhez.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_BACKUP]); GO
Adatbázis- visszaállítása
A TDE-vel titkosított adatbázis biztonsági mentésének visszaállításához a cél SQL Server-példánynak először rendelkeznie kell a titkosításhoz használt aszimmetrikus Key Vault-kulcs másolatával. Ez így valósulna meg:
Ha a TDE-hez használt eredeti aszimmetrikus kulcs már nincs a Key Vaultban, állítsa vissza a Key Vault kulcsának biztonsági mentését, vagy importálja újra a kulcsot egy helyi HSM-ből. Fontos: Ahhoz, hogy a kulcs ujjlenyomata egyezzen az adatbázis biztonsági mentésében rögzített ujjlenyomattal, a kulcsot el kell nevezni a Key Vault-kulcs nevének, mint korábban.
Alkalmazza az 1. és a 2. lépést a cél SQL Server-példányra.
Miután a cél SQL Server-példány hozzáfér a biztonsági mentés titkosításához használt aszimmetrikus kulcs(ok)hoz, állítsa vissza az adatbázist a kiszolgálón.
Minta visszaállítási kód:
RESTORE DATABASE [DATABASE_TO_BACKUP] FROM DISK = N'[PATH TO BACKUP FILE]' WITH FILE = 1, NOUNLOAD, REPLACE; GO
A biztonsági mentési lehetőségekről további információt BIZTONSÁGI MENTÉS (Transact-SQL)című témakörben talál.
Oszlopszintű titkosítás a Key Vaultból származó aszimmetrikus kulcs használatával
Az alábbi példa egy szimmetrikus kulcsot hoz létre, amelyet az aszimmetrikus kulcs véd a kulcstárban. Ezután a szimmetrikus kulcs az adatbázisban lévő adatok titkosítására szolgál.
Fontos
Nem használhatja ugyanazt az aszimmetrikus kulcsot az oszlopszintű titkosításhoz, ha már használta ezt a kulcsot a biztonsági mentés titkosításához.
Ez a példa a kulcstartóban tárolt CONTOSO_KEY_COLUMNS
aszimmetrikus kulcsot használja, amely korábban importálható vagy létrehozható, a Bővíthető kulcskezeléshez az Azure Key Vaulthasználatával történő beállítási lépéseinek 3. lépésében leírtak szerint. Az aszimmetrikus kulcs ContosoDatabase
adatbázisban való használatához újra végre kell hajtania a CREATE ASYMMETRIC KEY
utasítást, hogy a ContosoDatabase
adatbázis hivatkozással rendelkezzen a kulcsra.
USE [ContosoDatabase];
GO
-- Create a reference to the key in the key vault
CREATE ASYMMETRIC KEY CONTOSO_KEY_COLUMNS
FROM PROVIDER [AzureKeyVault_EKM_Prov]
WITH PROVIDER_KEY_NAME = 'ContosoDevRSAKey2',
CREATION_DISPOSITION = OPEN_EXISTING;
-- Create the data encryption key.
-- The data encryption key can be created using any SQL Server
-- supported algorithm or key length.
-- The DEK will be protected by the asymmetric key in the key vault
CREATE SYMMETRIC KEY DATA_ENCRYPTION_KEY
WITH ALGORITHM=AES_256
ENCRYPTION BY ASYMMETRIC KEY CONTOSO_KEY_COLUMNS;
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_COLUMNS;
--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;
Lásd még:
A bővíthető kulcskezelés beállítási lépései az Azure Key Vault használatával
Bővíthető kulcskezelés az Azure Key Vault
EKM-szolgáltató által engedélyezett kiszolgálókonfigurációs beállítás
SQL Server csatlakozó karbantartás & hibaelhárítás