Dela via


Självstudie: Komma igång med Always Encrypted med VBS-enklaver i Azure SQL Database

gäller för:Azure SQL Database

I den här självstudien lär du dig hur du kommer igång med Always Encrypted med säkra enklaver i Azure SQL Database med hjälp av virtualiseringsbaserade säkerhetsenklaver (VBS). Den visar dig:

  • Så här skapar du en miljö för testning och utvärdering av Always Encrypted med VBS-enklaver.
  • Så här krypterar du data på plats och utfärdar omfattande konfidentiella frågor mot krypterade kolumner med hjälp av SQL Server Management Studio (SSMS).

Förutsättningar

Verktygskrav

SQL Server Management Studio (SSMS) krävs för den här självstudien. Du kan välja att använda antingen PowerShell eller Azure CLI för att aktivera VBS-enklaver.

Ladda ned den senaste versionen av SQL Server Management Studio (SSMS).

Steg 1: Skapa och konfigurera en server och en databas

I det här steget skapar du en ny logisk Azure SQL Database-server och en ny databas.

Gå till snabbstart: Skapa en enkel databas – Azure SQL Database och följ anvisningarna i avsnittet Skapa en enkel databas för att skapa en ny logisk Azure SQL Database-server och en ny databas.

Viktigt!

Se till att du skapar en tom databas med namnet ContosoHR (och inte en exempeldatabas).

Steg 2: Aktivera en VBS-enklav

I det här steget aktiverar du en VBS-enklav i databasen, som krävs för Always Encrypted med säkra enklaver. Om du vill aktivera VBS-enklaver i databasen måste du ange preferredEnclaveTypedatabasens egenskap till VBS.

  1. Öppna Azure-portalen och leta reda på databasen som du vill aktivera säkra enklaver för.

  2. I inställningarna för Security väljer du datakryptering.

  3. På menyn datakryptering väljer du fliken Always Encrypted.

  4. Sätt Aktivera säkra enklaver till ON. Om den redan är inställd på , fortsätt med nästa steg.

    Skärmbild av aktivering av säkra enklaver i en befintlig databas i Azure-portalen.

  5. Välj Spara för att spara din Always Encrypted-konfiguration.

Steg 3: Fyll i databasen

I det här steget skapar du en tabell och fyller den med vissa data som du senare krypterar och frågar efter.

  1. Öppna SSMS och anslut till ContosoHR-databasen på den logiska Azure SQL-servern som du skapade utan Always Encrypted aktiverat i databasanslutningen.

    1. I dialogrutan Anslut till server anger du det fullständigt kvalificerade namnet på servern (till exempel myserver135.database.windows.net) och anger administratörsanvändarnamnet och lösenordet som du angav när du skapade servern.

    2. Välj Alternativ >> och välj fliken Anslutningsegenskaper. Se till att välja ContosoHR- databas (inte standarddatabasen master).

    3. Välj fliken Always Encrypted.

    4. Kontrollera att kryssrutan Aktivera Always Encrypted (kolumnkryptering) inte är markerad .

      Skärmbild av Anslut till server med SSMS utan Always Encrypted aktiverat.

    5. Välj Anslut.

  2. Skapa en ny tabell med namnet Employees.

    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. Lägg till några medarbetarposteringar i tabellen Employees.

    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);
    

Steg 4: Etablera enklaveraktiverade nycklar

I det här steget skapar du en kolumnhuvudnyckel och en kolumnkrypteringsnyckel som tillåter enklaverberäkningar.

  1. Med hjälp av SSMS-instansen från föregående steg i Object Explorerexpanderar du databasen och navigerar till Security>Always Encrypted Keys.

  2. Etablera en ny huvudnyckel för enklaveraktiverad kolumn:

    1. Högerklicka på Always Encrypted Keys och välj Ny kolumnhuvudnyckel....
    2. Ange ett namn för den nya kolumnhuvudnyckeln: CMK1.
    3. Kontrollera Tillåt enklaverberäkningar har valts. (Den väljs som standard om en säker enklav är aktiverad för databasen – den bör vara aktiverad eftersom databasen använder dc-seriens maskinvarukonfiguration.)
    4. Välj antingen Azure Key Vault (rekommenderas) eller Windows Certificate Store (aktuell användare eller lokal dator).
      • Om du väljer Azure Key Vault loggar du in på Azure, väljer en Azure-prenumeration som innehåller ett nyckelvalv som du vill använda och väljer ditt nyckelvalv. Välj Generera nyckel för att skapa en ny nyckel.
      • Om du väljer Windows Certificate Store väljer du knappen Generera certifikat för att skapa ett nytt certifikat. Skärmbilden av valet tillåt enklavberäkningar i SSMS när du skapar en ny kolumnhuvudnyckel.
    5. Välj OK.
  3. Skapa en ny enklavaktiverad kolumnkrypteringsnyckel:

    1. Högerklicka på Always Encrypted Keys och välj ny kolumnkrypteringsnyckel.
    2. Ange ett namn för den nya kolumnkrypteringsnyckeln: CEK1.
    3. I listrutan Kolumnhuvudnyckel väljer du den kolumnhuvudnyckel som du skapade i föregående steg.
    4. Välj OK.

Steg 5: Kryptera vissa kolumner på plats

I det här steget krypterar du data som lagras i SSN- och Salary kolumner i enklaven på serversidan och testar sedan en SELECT-fråga på data.

  1. Öppna en ny SSMS-instans och anslut till databasen med Always Encrypted aktiverat för databasanslutningen.

    1. Starta en ny instans av SSMS.

    2. I dialogrutan Anslut till server anger du det fullständigt kvalificerade namnet på servern (till exempel myserver135.database.windows.net) och anger administratörsanvändarnamnet och lösenordet som du angav när du skapade servern.

    3. Välj Alternativ >> och välj fliken Anslutningsegenskaper. Se till att välja ContosoHR- databas (inte standarddatabasen master).

    4. Välj fliken Always Encrypted.

    5. Markera kryssrutan Aktivera Always Encrypted (kolumnkryptering).

    6. Välj Aktivera säkra enklaver.

    7. Ange Protocol till Ingen. Se skärmbilden nedan.

      Skärmbild av fliken Anslut till server i SSMS-dialogrutan Always Encrypted med attesteringsprotokollet inställt på Ingen.

    8. Välj Anslut.

    9. Om du uppmanas att aktivera parameterisering för Always Encrypted-frågor väljer du Aktivera.

  2. Med samma SSMS-instans (med Always Encrypted aktiverat) öppnar du ett nytt frågefönster och krypterar kolumnerna SSN och Salary genom att köra nedanstående instruktioner.

    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;
    

    Anmärkning

    INSTRUKTIONEN ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE rensar frågeplanens cacheminne för databasen i skriptet ovan. När du har ändrat tabellen måste du rensa planerna för alla batchar och lagrade procedurer som har åtkomst till tabellen för att uppdatera krypteringsinformation för parametrar.

  3. Om du vill kontrollera att kolumnerna SSN och Salary nu är krypterade öppnar du ett nytt frågefönster i SSMS-instansen utan Always Encrypted aktiverat för databasanslutningen och kör instruktionen nedan. Frågefönstret ska returnera krypterade värden i kolumnerna SSN och Salary. Om du kör samma fråga med SSMS-instansen med Always Encrypted aktiverat bör du se dekrypterade data.

    SELECT * FROM [HR].[Employees];
    

Steg 6: Kör omfattande frågor mot krypterade kolumner

Du kan köra omfattande frågor mot de krypterade kolumnerna. En del frågebearbetning utförs i din säkra miljö i serversidan.

  1. I SSMS-instansen med Always Encrypted aktiverat kontrollerar du att parameterisering för Always Encrypted också är aktiverad.

    1. Välj Verktyg på huvudmenyn i SSMS.
    2. Välj alternativ....
    3. Gå till Frågekörning>SQL Server>Avancerad.
    4. Kontrollera att Aktivera parameterisering för Always Encrypted är markerat.
    5. Välj OK.
  2. Öppna ett nytt frågefönster, klistra in frågan nedan och kör. Frågan ska returnera oformaterade värden och rader som uppfyller de angivna sökvillkoren.

    DECLARE @SSNPattern [char](11) = '%6818';
    DECLARE @MinSalary [money] = $1000;
    SELECT * FROM [HR].[Employees]
    WHERE SSN LIKE @SSNPattern AND [Salary] >= @MinSalary;
    
  3. Försök med samma fråga igen i SSMS-instansen som inte har Always Encrypted aktiverat. Ett fel kan inträffa.

Nästa steg

När du har slutfört den här självstudien kan du fortsätta med någon av följande självstudier:

Se även