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 preferredEnclaveType na 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 možnost 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 Always Encrypted.

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

      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 Zaměstnanci.

    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. Do tabulky Employees (Zaměstnanci) přidejte 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: Zřízení 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ík objektů databázi a přejděte na klíče Always Encrypted zabezpečení>.

  2. Zřízení nového hlavního klíče sloupce 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 je vybrána možnost Povolit výpočty enklávy. (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. Snímek obrazovky s výběrem výpočtů povolit enklávu v SSMS při vytváření nového hlavního klíče sloupce
    5. Vyberte OK.
  3. Vytvořte nový šifrovací klíč sloupce s podporou enklávy:

    1. Klikněte pravým tlačítkem myši na always Encrypted Keys (Vždy Encrypted Keys ) a vyberte New Column Encryption Key (Nový šifrovací klíč sloupce).
    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 Plat uvnitř enklávy na straně serveru a pak otestujete dotaz SELECT na data.

  1. Otevřete novou instanci SSMS a připojte se k databázi s povolenou funkcí Always Encrypted pro připojení k databázi.

    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 Always Encrypted.

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

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

    7. Nastavte hodnotu Protocol na None (Žádný). Podívejte se na následující snímek obrazovky.

      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 sloupce SSN a Plat 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 sloupce SSN a Plat jsou 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 ve sloupcích SSN a Plat . 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í bohatých dotazů na šifrované sloupce

Pro šifrované sloupce můžete spouštět bohaté 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 k rozšířenému zpracování>dotazů SQL Serveru.>
    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í.

Další kroky

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

Viz také