Oktatóanyag: Az Always Encrypted használatának első lépései VBS-enklávékkal az Azure SQL Database-ben
A következőre vonatkozik: Azure SQL Database
Ez az oktatóanyag bemutatja, hogyan kezdheti el az Always Encrypted használatát biztonságos enklávékkal az Azure SQL Database-ben virtualizációalapú biztonsági (VBS) enklávékkal. A következőt jeleníti meg:
- Környezet létrehozása az Always Encrypted teszteléséhez és kiértékeléséhez VBS-enklávékkal.
- 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.
Előfeltételek
- Aktív Azure-előfizetés. Ha még nincs előfizetése, hozzon létre egy ingyenes fiókot. Ahhoz, hogy az előfizetés erőforrásokat tudjon létrehozni, a Közreműködő vagy a Tulajdonos szerepkör tagjának kell lennie.
- Nem kötelező, de ajánlott az oszlop főkulcsának tárolása az Always Encryptedhez: kulcstartó az Azure Key Vaultban. A kulcstartók létrehozásáról további információt a gyorsútmutatóban talál : Kulcstartó létrehozása az Azure Portal használatával.
- Ha a kulcstartó a hozzáférési szabályzat engedélymodellt használja, győződjön meg arról, hogy rendelkezik a következő kulcsengedélyekkel a kulcstartóban: , , , , ,
wrap key
sign
verify
.unwrap key
create
list
get
Lásd: Key Vault hozzáférési szabályzat hozzárendelése. - Ha az Azure szerepköralapú hozzáférés-vezérlési (RBAC) engedélymodellt használja, győződjön meg arról, hogy tagja a Key Vault kriptográfiai tisztviselői szerepkörének a kulcstartóhoz. Lásd: Hozzáférés biztosítása a Key Vault kulcsaihoz, tanúsítványaihoz és titkos kulcsaihoz azure-beli szerepköralapú hozzáférés-vezérléssel.
- Ha a kulcstartó a hozzáférési szabályzat engedélymodellt használja, győződjön meg arról, hogy rendelkezik a következő kulcsengedélyekkel a kulcstartóban: , , , , ,
Eszközkövetelmények
Ehhez az oktatóanyaghoz az SQL Server Management Studio (SSMS) szükséges. A VBS-enklávék engedélyezéséhez használhatja a PowerShellt vagy az Azure CLI-t.
Töltse le az SQL Server Management Studio (SSMS) legújabb verzióját.
1. lépés: Kiszolgáló és adatbázis létrehozása és konfigurálása
Ebben a lépésben létrehoz egy új Azure SQL Database logikai kiszolgálót és egy új adatbázist.
Nyissa meg a rövid útmutatót: Egyetlen adatbázis létrehozása – Azure SQL Database , és kövesse az Egyetlen adatbázis létrehozása szakaszban található utasításokat egy új Azure SQL Database logikai kiszolgáló és egy új adatbázis létrehozásához.
Fontos
Győződjön meg arról, hogy contosoHR néven (és nem mintaadatbázisként) létrehoz egy üres adatbázist.
2. lépés: VBS-enklávé engedélyezése
Ebben a lépésben engedélyezni fog egy VBS-enklávét az adatbázisban, amely az Always Encrypted biztonságos enklávékkal való titkosításához szükséges. Ha engedélyezni szeretné a VBS-enklávékat az adatbázisban, a preferáltEnclaveTypeadatbázistulajdonságot VBS-re kell állítania.
Nyissa meg az Azure Portalt , és keresse meg azt az adatbázist, amelyhez engedélyezni szeretné a biztonságos enklávékat.
A Biztonsági beállítások területen válassza az Adattitkosítás lehetőséget.
Az Adattitkosítás menüben válassza az Always Encrypted lapot.
Állítsa be a biztonságos enklávék engedélyezését ON értékre. Ha már be van állítva ON értékre, folytassa a következő lépéssel.
A Mindig titkosított konfiguráció mentéséhez válassza a Mentés lehetőséget.
3. lépés: Az adatbázis feltöltése
Ebben a lépésben létrehoz egy táblát, és feltölti néhány olyan adattal, amelyet később titkosít és lekérdez.
Nyissa meg az SSMS-t, és csatlakozzon a ContosoHR-adatbázishoz azon az Azure SQL logikai kiszolgálón, amelyet anélkül hozott létre, hogy engedélyezve van az Always Encrypted az adatbázis-kapcsolatban.
A kiszolgálóhoz Csatlakozás párbeszédpanelen adja meg a kiszolgáló teljes nevét (például myserver135.database.windows.net), és adja meg a rendszergazda felhasználónevet és a kiszolgáló létrehozásakor megadott jelszót.
Válassza a Beállítások lehetőséget>>, és válassza a Csatlakozás ion Properties (Tulajdonságok) lapot. Jelölje ki a ContosoHR-adatbázist (nem az alapértelmezett adatbázist
master
).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égyzet nincs bejelölve.
Válassza a Kapcsolódás lehetőséget.
Hozzon létre egy új, Alkalmazottak nevű táblát.
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]; GO
Adjon hozzá néhány alkalmazotti rekordot az Alkalmazottak táblához.
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és SSMS-példányának használatával az Object Explorerben bontsa ki az adatbázist, és keresse meg a Security>Always Encrypted Kulcsokat.
Új enklávé-kompatibilis oszlop főkulcsának kiépítése:
- Kattintson a jobb gombbal az Always Encrypted Keys ( Mindig titkosított kulcsok ) elemre, és válassza az Új oszlop főkulcsa... lehetőséget.
- Adja meg az új oszlop főkulcsának nevét: CMK1.
- Ellenőrizze, hogy ki van-e jelölve az enklávészámítás engedélyezése . (Alapértelmezés szerint akkor van kiválasztva, ha az adatbázishoz engedélyezve van egy biztonságos enklávé – ezt engedélyezni kell, mivel az adatbázis a DC sorozatú hardverkonfigurációt használja.)
- Válassza az Azure Key Vault (ajánlott) vagy a Windows Tanúsítványtároló (aktuális felhasználó vagy helyi gép) lehetőséget.
- Ha az Azure Key Vaultot választja, jelentkezzen be az Azure-ba, válassza ki a használni kívánt kulcstartót tartalmazó Azure-előfizetést, és válassza ki a kulcstartót. Új kulcs létrehozásához válassza a Kulcs létrehozása lehetőséget.
- Ha a Windows tanúsítványtárolót választja, a Tanúsítvány létrehozása gombra kattintva hozzon létre egy új tanúsítványt.
- Válassza az OK lehetőséget.
Hozzon létre egy új enklávé-kompatibilis oszloptitkosítási kulcsot:
- Kattintson a jobb gombbal az Always Encrypted Keys (Mindig titkosított kulcsok) elemre, és válassza az Új oszloptitkosítási kulcs lehető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.
- Válassza az OK lehetőséget.
5. lépés: Egyes oszlopok titkosítása a helyé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 Standard kiadás LECT-lekérdezést az adatokon.
Nyisson meg egy új SSMS-példányt, és csatlakozzon az adatbázishoz úgy, hogy az Always Encrypted engedélyezve van az adatbázis-kapcsolathoz.
Indítsa el az SSMS új példányát.
A kiszolgálóhoz Csatlakozás párbeszédpanelen adja meg a kiszolgáló teljes nevét (például myserver135.database.windows.net), és adja meg a rendszergazda felhasználónevet és a kiszolgáló létrehozásakor megadott jelszót.
Válassza a Beállítások lehetőséget>>, és válassza a Csatlakozás ion Properties (Tulajdonságok) lapot. Jelölje ki a ContosoHR-adatbázist (nem az alapértelmezett adatbázist
master
).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ése lehetőséget.
A protokoll beállítása Nincs értékre. Tekintse meg az alábbi képernyőképet.
Válassza a Kapcsolódás lehetőséget.
Ha a rendszer kéri, hogy engedélyezze a paraméterezést az Always Encrypted-lekérdezésekhez, válassza az Engedélyezés lehetőséget.
Ugyanazt az SSMS-példányt használva (az Always Encrypted engedélyezve van), nyisson meg egy új lekérdezési ablakot, és az alábbi utasítások futtatásával titkosítsa az SSN és a Fizetés oszlopokat.
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:
Az ALTER DATABA Standard kiadás SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE utasítás törli az adatbázis lekérdezésterv-gyorsítótárát a fenti szkriptben. A tábla módosítása után törölnie kell az összes olyan köteg és tárolt eljárás tervét, amely hozzáfér a táblához a paraméterek titkosítási információinak frissítéséhez.
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
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 Always Encryptedt engedélyező SSMS-példányban győződjön meg arról, hogy az Always Encrypted paraméterezése is engedélyezve van.
- Válassza az Eszközök lehetőséget az SSMS főmenüjében.
- Válassza a Beállítások...lehetőséget.
- Lépjen a Lekérdezésvégrehajtási SQL Server Speciális parancsra.>>
- Győződjön meg arról, hogy az Always Encrypted paraméterezésének engedélyezése be van jelölve.
- Válassza az OK lehetőséget.
Nyisson meg egy új lekérdezési ablakot, illessze be az alábbi lekérdezésbe, és hajtsa végre. 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 újra ugyanazt a lekérdezést az SSMS-példányban, amely nem rendelkezik always encrypted engedélyezve. Hiba kell, hogy legyen.
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-keretrendszer-alkalmazá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 kompatibilis oszlopokon véletlenszerű titkosítással
Kapcsolódó információk
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: