Sdílet prostřednictvím


Kurz: Začínáme používat funkci Always Encrypted s enklávy VBS ve službě Azure SQL Database

Platí pro:Azure SQL Database

V tomto kurzu se naučíte, jak začít používat funkci Always Encrypted se zabezpečenými enklávy ve službě Azure SQL Database pomocí enkláv založených na virtualizaci. Zobrazí se vám:

  • Vytvoření prostředí pro testování a vyhodnocení funkce Always Encrypted pomocí enkláv VBS
  • Postup šifrování místních dat a vydávání bohatých důvěrných dotazů na šifrované sloupce pomocí aplikace SQL Server Management Studio (SSMS).

Požadavky

Požadavky na nástroje

Pro účely tohoto kurzu se vyžaduje SQL Server Management Studio (SSMS). K povolení enkláv VBS můžete použít PowerShell nebo Azure CLI.

Stáhněte si nejnovější verzi aplikace SQL Server Management Studio (SSMS).

Krok 1: Vytvoření a konfigurace serveru a databáze

V tomto kroku vytvoříte nový logický server Azure SQL Database a novou databázi.

Přejděte do rychlého startu: Vytvoření izolované databáze – Azure SQL Database a postupujte podle pokynů v části Vytvoření izolované databáze a vytvořte nový logický server Azure SQL Database a novou databázi.

Důležité

Ujistěte se, že vytvoříte prázdnou databázi s názvem ContosoHR (a ne ukázkovou databází).

Krok 2: Povolení enklávy VBS

V tomto kroku povolíte enklávu VBS v databázi, která se vyžaduje pro funkci Always Encrypted se zabezpečenými enklávami. Pokud chcete povolit enklávy VBS ve vaší databázi, musíte nastavit vlastnost databáze preferredEnclaveTypena VBS.

  1. Otevřete Azure Portal a vyhledejte databázi, pro kterou chcete povolit zabezpečené enklávy.

  2. V nastavení zabezpečení vyberte Šifrování dat.

  3. V nabídce Šifrování dat vyberte kartu Always Encrypted.

  4. Nastavte Povolit zabezpečené enklávy na ZAPNUTO. Pokud je již nastavená na ZAPNUTO , pokračujte dalším krokem.

    Snímek obrazovky s povolením zabezpečených enkláv u existující databáze na webu Azure Portal

  5. Vyberte Uložit a uložte konfiguraci funkce Always Encrypted.

Krok 3: Naplnění databáze

V tomto kroku vytvoříte tabulku a naplníte ji některými daty, která později zašifrujete a dotazujete.

  1. Otevřete SSMS a připojte se k databázi ContosoHR na logickém serveru Azure SQL, který jste vytvořili bez povolené funkce Always Encrypted v připojení k databázi.

    1. V dialogovém okně Připojit k serveru zadejte plně kvalifikovaný název serveru (například myserver135.database.windows.net) a zadejte uživatelské jméno správce a heslo, které jste zadali při vytváření serveru.

    2. Vyberte Možnosti >> a vyberte kartu Vlastnosti připojení. Nezapomeňte vybrat databázi ContosoHR (ne výchozí databázi). master

    3. Vyberte kartu s názvem Always Encrypted.

    4. Ujistěte se, že políčko Povolit funkci Always Encrypted (šifrování sloupce) není zaškrtnuté.

      Snímek obrazovky připojení k serveru pomocí SSMS bez povolené funkce Always Encrypted

    5. Vyberte Připojit.

  2. Vytvořte novou tabulku s názvem 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. Přidejte do Employees tabulky několik záznamů o zaměstnancích.

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

Krok 4: Poskytnutí klíčů s podporou enklávy

V tomto kroku vytvoříte hlavní klíč sloupce a šifrovací klíč sloupce, který umožňuje výpočty enklávy.

  1. Pomocí instance SSMS z předchozího kroku rozbalte v Průzkumníku objektů svou databázi a přejděte na Zabezpečení>Klíče Always Encrypted.

  2. Zřízení nového hlavního sloupcového klíče s podporou enklávy:

    1. Klikněte pravým tlačítkem myši na Always Encrypted Keys a vyberte Nový hlavní klíč sloupce....

    2. Zadejte název nového hlavního klíče sloupce: CMK1.

    3. Ověřte, že Povolit výpočty enklávy je vybráno. (Ve výchozím nastavení je vybraná, pokud je pro databázi povolená zabezpečená enkláva – měla by být povolená, protože vaše databáze používá konfiguraci hardwaru řady DC.)

    4. Vyberte službu Azure Key Vault (doporučeno) nebo Úložiště certifikátů Windows (aktuální uživatel nebo místní počítač).

      • Pokud vyberete Azure Key Vault, přihlaste se k Azure, vyberte předplatné Azure obsahující trezor klíčů, který chcete použít, a vyberte svůj trezor klíčů. Vyberte Vygenerovat klíč a vytvořte nový klíč.
      • Pokud vyberete Úložiště certifikátů systému Windows, vyberte tlačítko Generovat certifikát a vytvořte nový certifikát.
    5. Vyberte OK.

  3. Vytvořte nový šifrovací klíč sloupce s podporou enklávy:

    1. Klikněte pravým tlačítkem myši na Vždy zašifrované klíče (Always Encrypted Keys) a vyberte Nový šifrovací klíč sloupce (New Column Encryption Key).
    2. Zadejte název nového šifrovacího klíče sloupce: CEK1.
    3. V rozevíracím seznamu Hlavní klíč sloupce vyberte hlavní klíč sloupce, který jste vytvořili v předchozích krocích.
    4. Vyberte OK.

Krok 5: Zašifrování některých sloupců

V tomto kroku zašifrujete data uložená ve sloupcích SSN a Salary uvnitř enklávy na straně serveru a poté otestujete dotaz SELECT na data.

  1. Otevřete novou instanci SSMS a připojte se k vaší databázi, kde je pro připojení povolena funkce Always Encrypted.

    1. Spusťte novou instanci aplikace SSMS.

    2. V dialogovém okně Připojit k serveru zadejte plně kvalifikovaný název serveru (například myserver135.database.windows.net) a zadejte uživatelské jméno správce a heslo, které jste zadali při vytváření serveru.

    3. Vyberte Možnosti >> a vyberte kartu Vlastnosti připojení. Nezapomeňte vybrat databázi ContosoHR (ne výchozí databázi). master

    4. Vyberte kartu s názvem Always Encrypted.

    5. Zaškrtněte políčko Povolit funkci Always Encrypted (šifrování sloupce).

    6. Vyberte Povolit zabezpečené enklávy.

    7. Nastavte Protocol na Žádný.

      Snímek obrazovky s dialogovým oknem SSMS Connect to Server (Always Encrypted) s protokolem ověření identity nastaveným na None (Žádný).

    8. Vyberte Připojit.

    9. Pokud se zobrazí výzva k povolení parametrizace pro dotazy Always Encrypted, vyberte Povolit.

  2. Pomocí stejné instance SSMS (s povolenou funkcí Always Encrypted) otevřete nové okno dotazu a zašifrujte SSNSalary sloupce spuštěním následujících příkazů.

    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;
    

    Poznámka:

    Příkaz ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE vymaže mezipaměť plánu dotazu pro databázi ve výše uvedeném skriptu. Po změně tabulky je potřeba vymazat plány pro všechny dávky a uložené procedury, které přistupují k tabulce, aby se aktualizovaly informace o šifrování parametrů.

  3. Pokud chcete ověřit, že SSN jsou sloupce Salary teď šifrované, otevřete v instanci SSMS nové okno dotazu bez povolení funkce Always Encrypted pro připojení k databázi a spusťte následující příkaz. Okno dotazu by mělo vracet šifrované hodnoty v polích SSN a Salary sloupcích. Pokud spustíte stejný dotaz pomocí instance SSMS s povolenou funkcí Always Encrypted, měli byste vidět dešifrovaná data.

    SELECT * FROM [HR].[Employees];
    

Krok 6: Spuštění pokročilých dotazů na šifrované sloupce

Pro šifrované sloupce můžete spouštět pokročilé dotazy. Některé zpracování dotazů se provede uvnitř enklávy na straně serveru.

  1. V instanci SSMS s povolenou funkcí Always Encrypted se ujistěte, že je povolená také parametrizace funkce Always Encrypted.

    1. V hlavní nabídce aplikace SSMS vyberte Nástroje .
    2. Vyberte Možnosti....
    3. Přejděte na Spuštění dotazů>SQL Server>Pokročilé.
    4. Ujistěte se, že je zaškrtnuté povolení parametrizace pro funkci Always Encrypted .
    5. Vyberte OK.
  2. Otevřete nové okno dotazu, vložte následující dotaz a spusťte ho. Dotaz by měl vrátit hodnoty prostého textu a řádky, které splňují zadaná kritéria hledání.

    DECLARE @SSNPattern [char](11) = '%6818';
    DECLARE @MinSalary [money] = $1000;
    SELECT * FROM [HR].[Employees]
    WHERE SSN LIKE @SSNPattern AND [Salary] >= @MinSalary;
    
  3. Opakujte stejný dotaz v instanci SSMS, která nemá povolenou funkci Always Encrypted. Mělo by dojít k selhání.

Výukové materiály

Po dokončení tohoto kurzu můžete přejít na jeden z následujících kurzů: