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

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.

  1. Nyissa meg az Azure Portalt , és keresse meg azt az adatbázist, amelyhez engedélyezni szeretné a biztonságos enklávékat.

  2. A Biztonsági beállítások területen válassza az Adattitkosítás lehetőséget.

  3. Az Adattitkosítás menüben válassza az Always Encrypted lapot.

  4. Á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.

    Screenshot of enabling secure enclaves on an existing database in the Azure portal.

  5. 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.

  1. 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.

    1. 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.

    2. 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ázistmaster).

    3. Válassza az Always Encrypted (Mindig titkosított) lapot.

    4. Győződjön meg arról, hogy az Always Encrypted (oszloptitkosítás) engedélyezése jelölőnégyzet nincs bejelölve.

      Screenshot of Connect to Server using SSMS without Always Encrypted enabled.

    5. Válassza a Kapcsolódás lehetőséget.

  2. 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
    
  3. 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.

  1. 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.

  2. Új enklávé-kompatibilis oszlop főkulcsának kiépítése:

    1. Kattintson a jobb gombbal az Always Encrypted Keys ( Mindig titkosított kulcsok ) elemre, és válassza az Új oszlop főkulcsa... lehetőséget.
    2. Adja meg az új oszlop főkulcsának nevét: CMK1.
    3. 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.)
    4. 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. Screenshot of the allow enclave computations selection in SSMS when creating a new column master key.
    5. Válassza az OK lehetőséget.
  3. Hozzon létre egy új enklávé-kompatibilis oszloptitkosítási kulcsot:

    1. 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.
    2. Adja meg az új oszloptitkosítási kulcs nevét: CEK1.
    3. Az Oszlop főkulcs legördülő listájában válassza ki az előző lépésekben létrehozott oszlopmintakulcsot.
    4. 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.

  1. 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.

    1. Indítsa el az SSMS új példányát.

    2. 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.

    3. 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ázistmaster).

    4. Válassza az Always Encrypted (Mindig titkosított) lapot.

    5. Jelölje be az Always Encrypted (oszloptitkosítás) engedélyezése jelölőnégyzetet.

    6. Válassza a Biztonságos enklávék engedélyezése lehetőséget.

    7. A protokoll beállítása Nincs értékre. Tekintse meg az alábbi képernyőképet.

      Screenshot of the SSMS Connect to Server dialog Always Encrypted tab, with attestation protocol set to None.

    8. Válassza a Kapcsolódás lehetőséget.

    9. 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.

  2. 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.

  3. 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.

  1. 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.

    1. Válassza az Eszközök lehetőséget az SSMS főmenüjében.
    2. Válassza a Beállítások...lehetőséget.
    3. Lépjen a Lekérdezésvégrehajtási SQL Server Speciális parancsra.>>
    4. Győződjön meg arról, hogy az Always Encrypted paraméterezésének engedélyezése be van jelölve.
    5. Válassza az OK lehetőséget.
  2. 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;
    
  3. 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:

Kapcsolódó információk