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 2019 (15.x) és újabb verziók Windows rendszeren
Ez az oktatóanyag bemutatja, hogyan kezdheti el az Always Encrypted szolgáltatást biztonságos enklávékkal az SQL Serverben. A következőt jeleníti meg:
- Alapszintű környezet létrehozása az Always Encrypted teszteléséhez és kiértékeléséhez biztonságos enklávékkal, attesztáció nélkül konfigurálva.
- Adatok helyben történő titkosítása és gazdag bizalmas lekérdezések kiadása titkosított oszlopokon az SQL Server Management Studio (SSMS) használatával.
Ha szeretné megtudni, hogyan állíthatja be az Always Encrypted szolgáltatást biztonságos enklávékkal a Host Guardian Service segítségével az enklávé igazolásához, tekintse meg a Oktatóanyag: Az Always Encrypted első lépései biztonságos enklávékkal az SQL Serverben, igazolással a HGS használatával című útmutatót.
Előfeltételek
Az SQL Server-példányt (más néven SQL Server-számítógépet) futtató számítógépnek az alábbi követelményeknek kell megfelelnie:
- SQL Server 2019 (15.x) vagy újabb.
- Windows 10 vagy újabb, Windows Server 2019 vagy újabb.
- Cpu-támogatás virtualizálási technológiákhoz:
- Intel VT-x kiterjesztett oldaltáblákkal.
- AMD-V gyorsított virtualizációs indexeléssel.
- Ha az SQL Servert virtuális gépen futtatja:
- Az Azure-ban használjon 2. generációs virtuálisgép-méretet (ajánlott), vagy használjon 1. generációs virtuálisgép-méretet, ha engedélyezve van a beágyazott virtualizálás. Tekintse meg az egyes virtuálisgép-méretek dokumentációját annak megállapításához, hogy az 1. generációs virtuális gépek mely méretei támogatják a beágyazott virtualizálást.
- Győződjön meg róla, hogy a Hyper-V 2016 vagy újabb verzióján (az Azure-on kívül) a virtuális gépe egy 2. generációs VM (ajánlott), vagy pedig egy 1. generációs VM, amelyen engedélyezve van a beágyazott virtualizáció. További információ: 1. vagy 2. generációs virtuális gép létrehozása a Hyper-V-ben? és Beágyazott virtualizálás konfigurálása.
- A VMware vSphere 6.7 vagy újabb verziójában engedélyezze a virtuális gép virtualizáláson alapuló biztonsági támogatását a VMware dokumentációjában leírtak szerint.
- Más hipervizorok és nyilvános felhők is támogathatják a beágyazott virtualizálási képességeket, amelyek lehetővé teszik az Always Encryptedt a VBS Enklávékkal is. A kompatibilitási és konfigurációs utasításokért tekintse meg a virtualizálási megoldás dokumentációját.
- Az SQL Server Management Studio (SSMS)legújabb verziója. Másik lehetőségként telepítheti az SSMS-t egy másik gépre.
Figyelmeztetés
Éles környezetben az SSMS vagy más kulcskezelő eszközök futtatása az SQL Server számítógépen csökkentheti az Always Encrypted használatának biztonsági előnyeit. Általában ajánlott az ilyen eszközök futtatása egy másik gépen. További információ: A kulcskezelés biztonsági szempontjai.
1. lépés: Győződjön meg arról, hogy a virtualizációalapú biztonság (VBS) engedélyezve van
Jelentkezzen be rendszergazdaként az SQL Server-számítógépre, nyisson meg egy emelt szintű Windows PowerShell-konzolt, és futtassa a msinfo32.exe. Ellenőrizze, hogy fut-e a VBS. Amennyiben fut a VBS, ugorja át a szakasz további lépéseit, és lépjen tovább a következő szakaszra.
A VBS engedélyezéséhez futtassa a következő parancsmagot a PowerShell-munkamenetben.
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard -Name EnableVirtualizationBasedSecurity -Value 1Ha az SQL Server-számítógép egy virtuális gép, egy olyan fizikai gép, amely nem támogatja az UEFI biztonságos rendszerindítást, vagy egy fizikai gép, amely nem rendelkezik IOMMU-val, el kell távolítania a platformbiztonsági funkciókhoz szükséges VBS-követelményeket. Távolítsa el a biztonságos rendszerindításra és az IOMMU-ra vonatkozó követelményt, ha a következő parancsot futtatja az SQL Server-számítógépen egy emelt szintű PowerShell-konzolon:
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard -Name RequirePlatformSecurityFeatures -Value 0Indítsa újra az SQL Server-számítógépet a VBS online állapotba helyezéséhez.
Restart-ComputerIsmételje meg az 1. lépést annak ellenőrzéséhez, hogy fut-e a VBS.
2. lépés: Az Always Encrypted engedélyezése biztonságos enklávékkal az SQL Serveren
Ebben a lépésben engedélyezni fogja az Always Encrypted funkcióját enklávékkal az Ön SQL Server-példányában.
Az SSMS használatával csatlakozzon az SQL Server-példányhoz a sysadminként anélkül hogy az adatbázis-kapcsolathoz engedélyezve lenne az Always Encrypted.
Indítsa el az SSMS-eket.
A Csatlakozás a kiszolgálóhoz párbeszédpanelen adja meg a kiszolgáló nevét, válasszon ki egy hitelesítési módszert, és adja meg a hitelesítő adatait.
Válassza a Beállítások lehetőséget >> , és válassza az Always Encrypted (Mindig titkosított ) lapot.
Győződjön meg arról, hogy az Always Encrypted (oszloptitkosítás) engedélyezése jelölőnégyzetet ne jelölje be.
Válassza a Csatlakozás lehetőséget.
Nyisson meg egy új lekérdezési ablakot, és hajtsa végre az alábbi utasítást a biztonságos enklávé típus virtualizáláson alapuló biztonságra (VBS) való beállításához.
EXEC sys.sp_configure 'column encryption enclave type', 1; RECONFIGURE;Indítsa újra az SQL Server-példányt az előző módosítás érvénybe lépéséhez. A példányt az SSMS-ben úgy indíthatja újra, hogy a jobb gombbal rá kattint az Object Explorerben, majd az Újraindítás lehetőséget választja. Ha a példány újraindul, csatlakozzon újra hozzá.
A következő lekérdezés futtatásával győződjön meg arról, hogy a biztonságos enklávé be van töltve:
SELECT [name], [value], [value_in_use] FROM sys.configurations WHERE [name] = 'column encryption enclave type';A lekérdezésnek a következő eredményt kell visszaadnia:
név value használati érték oszloptitkosítási enklávé típusa 1 1
3. lépés: Mintaadatbázis létrehozása
Ebben a lépésben létrehoz egy adatbázist néhány mintaadattal, amelyet később titkosít.
Az előző lépés SSMS-példányával hajtsa végre az alábbi utasítást egy lekérdezési ablakban egy új, ContosoHR nevű adatbázis létrehozásához.
CREATE DATABASE [ContosoHR];Hozzon létre egy új, Alkalmazottak nevű táblát.
USE [ContosoHR]; GO CREATE SCHEMA [HR]; GO CREATE TABLE [HR].[Employees] ( [EmployeeID] [int] IDENTITY(1,1) NOT NULL, [SSN] [char](11) NOT NULL, [FirstName] [nvarchar](50) NOT NULL, [LastName] [nvarchar](50) NOT NULL, [Salary] [money] NOT NULL ) ON [PRIMARY];Adjon hozzá néhány alkalmazotti rekordot az Alkalmazottak táblához.
USE [ContosoHR]; GO INSERT INTO [HR].[Employees] ([SSN] ,[FirstName] ,[LastName] ,[Salary]) VALUES ('795-73-9838' , N'Catherine' , N'Abel' , $31692); INSERT INTO [HR].[Employees] ([SSN] ,[FirstName] ,[LastName] ,[Salary]) VALUES ('990-00-6818' , N'Kim' , N'Abercrombie' , $55415);
4. lépés: Enklávé-kompatibilis kulcsok kiépítése
Ebben a lépésben létre fog hozni egy oszlop főkulcsát és egy oszloptitkosítási kulcsot, amely lehetővé teszi az enklávészámítást.
Az előző lépésben használt SSMS-példány segítségével, a Object Explorerterületen nyissa meg az adatbázisát, majd navigáljon a Biztonsági>Always Encrypted Keysrészhez.
Új enklávé-kompatibilis oszlop főkulcsának kiépítése:
Kattintson a jobb gombbal a Mindig titkosított kulcsok elemre, és válassza az Új oszlopmester kulcs...lehetőséget.
Válassza ki az oszlop főkulcsának nevét: CMK1.
Győződjön meg arról, hogy a Windows Tanúsítványtárolót (jelenlegi felhasználó vagy helyi gép) vagy az Azure Key Vaultot választja.
Válassza az Enklávészámítás engedélyezése lehetőséget.
Ha az Azure Key Vaultot választotta, jelentkezzen be az Azure-ba, és válassza ki a kulcstartót. Az Always Encrypted kulcstartójának létrehozásáról további információt a Kulcstartók kezelése az Azure Portalon című témakörben talál.
Ha már létezik, válassza ki a tanúsítványt vagy az Azure Key Value-kulcsot, vagy a Tanúsítvány létrehozása gombra kattintva hozzon létre egy újat.
Kattintson az OK gombra.
Hozzon létre egy új enklávé-kompatibilis oszloptitkosítási kulcsot:
- Kattintson jobb gombbal a Mindig titkosított kulcsokra, majd válassza az Új oszlop titkosítási kulcslehetőséget.
- Adja meg az új oszloptitkosítási kulcs nevét: CEK1.
- Az Oszlop főkulcs legördülő listájában válassza ki az előző lépésekben létrehozott oszlopmintakulcsot.
- Kattintson az OK gombra.
5. lépés: Titkosítsa néhány oszlopot a helyükön
Ebben a lépésben titkosítja az SSN és a Fizetés oszlopban tárolt adatokat a kiszolgálóoldali enklávéban, majd tesztel egy SELECT lekérdezést az adatokon.
Nyisson meg egy új SSMS-példányt, és csatlakozzon az SQL Server-példányhoz úgy, hogy az Always Encrypted engedélyezve van az adatbázis-kapcsolathoz.
Indítsa el az SSMS új példányát.
A Csatlakozás a kiszolgálóhoz párbeszédpanelen adja meg a kiszolgáló nevét, válasszon ki egy hitelesítési módszert, és adja meg a hitelesítő adatait.
Válassza a Beállítások lehetőséget >> , és válassza az Always Encrypted (Mindig titkosított ) lapot.
Jelölje be az Always Encrypted (oszloptitkosítás) engedélyezése jelölőnégyzetet.
Válassza a Biztonságos enklávék engedélyezéselehetőséget.
Állítsa a(z) protokollt a(z) Nincsértékre.
Válassza a Csatlakozás lehetőséget.
Ha a rendszer kéri az Always Encrypted-lekérdezések paraméterezésének engedélyezését, válassza a Engedélyezéslehetőséget.
Ha ugyanazt az SSMS-példányt használja (az Always Encrypted engedélyezve van), nyisson meg egy új lekérdezési ablakot, és az alábbi lekérdezések futtatásával titkosítsa az SSN és a Fizetés oszlopokat.
USE [ContosoHR]; GO ALTER TABLE [HR].[Employees] ALTER COLUMN [SSN] [char] (11) COLLATE Latin1_General_BIN2 ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = [CEK1], ENCRYPTION_TYPE = Randomized, ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256') NOT NULL WITH (ONLINE = ON); ALTER TABLE [HR].[Employees] ALTER COLUMN [Salary] [money] ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = [CEK1], ENCRYPTION_TYPE = Randomized, ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256') NOT NULL WITH (ONLINE = ON); ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;Megjegyzés:
Vegye figyelembe, hogy az ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE utasítás az adatbázis lekérdezésterv-gyorsítótárának törlésére szolgál a fenti szkriptben. A tábla módosítása után az összes feladatra és tárolt eljárásra vonatkozó tervet (amelyek hozzáférnek a táblához) törölni kell, hogy a paraméterek titkosítási információit frissítse.
Az SSN és a Salary oszlopok titkosításának ellenőrzéséhez nyisson meg egy új lekérdezési ablakot az SSMS-példányban anélkül , hogy az Always Encrypted engedélyezve lett az adatbázis-kapcsolathoz, és hajtsa végre az alábbi utasítást. A lekérdezési ablaknak titkosított értékeket kell visszaadnia az SSN és a Fizetés oszlopban. Ha ugyanazt a lekérdezést az Always Encrypted funkcióval rendelkező SSMS-példány használatával hajtja végre, akkor a visszafejtett adatokat kell látnia.
SELECT * FROM [HR].[Employees];
6. lépés: Gazdag lekérdezések futtatása titkosított oszlopokon
Most már gazdag lekérdezéseket futtathat a titkosított oszlopokon. A lekérdezések feldolgozása a kiszolgálóoldali enklávéban történik.
Az SSMS-példányban Always Encrypted engedélyezve van, győződjön meg arról, hogy az Always Encrypted paraméterezése is engedélyezve van.
- Válassza a Eszközök lehetőséget az SSMS főmenüjéből.
- Válassza a lehetőségeket....
- Navigáljon a lekérdezés-végrehajtás>SQL Server>Speciálispontra.
- Győződjön meg arról, hogy Az Always Encrypted paraméterezésének engedélyezése jelölőnégyzet be van jelölve.
- Kattintson az OK gombra.
Nyisson meg egy új lekérdezési ablakot, illessze be és hajtsa végre az alábbi lekérdezést. A lekérdezésnek egyszerű szöveges értékeket és a megadott keresési feltételeknek megfelelő sorokat kell visszaadnia.
DECLARE @SSNPattern [char](11) = '%6818'; DECLARE @MinSalary [money] = $1000; SELECT * FROM [HR].[Employees] WHERE SSN LIKE @SSNPattern AND [Salary] >= @MinSalary;Próbálja meg újra ugyanazt a lekérdezést az SSMS-példányban, amely nem rendelkezik always encrypted engedélyezve, és jegyezze fel a felmerülő hibát.
Következő lépések
Az oktatóanyag elvégzése után az alábbi oktatóanyagok egyikére léphet:
- oktatóanyag: .NET-alkalmazás fejlesztése az Always Encrypted használatával biztonságos enklávékkal
- oktatóanyag: .NET-keretrendszeralkalmazás fejlesztése az Always Encrypted használatával biztonságos enklávékkal
- Oktatóanyag: Indexek létrehozása és használata enklávéval engedélyezett oszlopokon véletlenszerű titkosítás használatával