Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
- Aktivní předplatné Azure. Pokud žádné nemáte, vytvořte si bezplatný účet. Abyste mohli vytvářet prostředky, musíte být členem role Přispěvatel nebo role Vlastník předplatného.
- Volitelné, ale doporučuje se uložit hlavní klíč sloupce pro Always Encrypted do trezoru klíčů ve službě Azure Key Vault. Informace o tom, jak vytvořit trezor klíčů, najdete v tématu Rychlý start: Vytvoření trezoru klíčů pomocí webu Azure Portal.
- Pokud trezor klíčů používá model oprávnění zásad přístupu, ujistěte se, že máte v trezoru klíčů následující oprávnění:
get,list,create,unwrap key,wrap key,verify,sign. Viz Přiřazení zásad přístupu ke službě Key Vault. - Pokud používáte model oprávnění řízení přístupu na základě role (RBAC) Azure, ujistěte se, že jste členem role kryptografického důstojníka služby Key Vault pro váš trezor klíčů. Viz Poskytnutí přístupu ke klíčům, certifikátům a tajným kódům služby Key Vault pomocí řízení přístupu na základě role v Azure.
- Pokud trezor klíčů používá model oprávnění zásad přístupu, ujistěte se, že máte v trezoru klíčů následující oprávnění:
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.
Otevřete Azure Portal a vyhledejte databázi, pro kterou chcete povolit zabezpečené enklávy.
V nastavení zabezpečení vyberte Šifrování dat.
V nabídce Šifrování dat vyberte kartu Always Encrypted.
Nastavte Povolit zabezpečené enklávy na ZAPNUTO. Pokud je již nastavená na ZAPNUTO , pokračujte dalším krokem.
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.
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.
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.
Vyberte Možnosti >> a vyberte kartu Vlastnosti připojení. Nezapomeňte vybrat databázi ContosoHR (ne výchozí databázi).
masterVyberte kartu s názvem Always Encrypted.
Ujistěte se, že políčko Povolit funkci Always Encrypted (šifrování sloupce) není zaškrtnuté.
Vyberte Připojit.
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]; GOPřidejte do
Employeestabulky 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.
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.
Zřízení nového hlavního sloupcového klíče s podporou enklávy:
Klikněte pravým tlačítkem myši na Always Encrypted Keys a vyberte Nový hlavní klíč sloupce....
Zadejte název nového hlavního klíče sloupce:
CMK1.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.)
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.
Vyberte OK.
Vytvořte nový šifrovací klíč sloupce s podporou enklávy:
- 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).
- Zadejte název nového šifrovacího klíče sloupce:
CEK1. - V rozevíracím seznamu Hlavní klíč sloupce vyberte hlavní klíč sloupce, který jste vytvořili v předchozích krocích.
- 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.
Otevřete novou instanci SSMS a připojte se k vaší databázi, kde je pro připojení povolena funkce Always Encrypted.
Spusťte novou instanci aplikace SSMS.
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.
Vyberte Možnosti >> a vyberte kartu Vlastnosti připojení. Nezapomeňte vybrat databázi ContosoHR (ne výchozí databázi).
masterVyberte kartu s názvem Always Encrypted.
Zaškrtněte políčko Povolit funkci Always Encrypted (šifrování sloupce).
Vyberte Povolit zabezpečené enklávy.
Nastavte Protocol na Žádný.
Vyberte Připojit.
Pokud se zobrazí výzva k povolení parametrizace pro dotazy Always Encrypted, vyberte Povolit.
Pomocí stejné instance SSMS (s povolenou funkcí Always Encrypted) otevřete nové okno dotazu a zašifrujte
SSNSalarysloupce 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_CACHEvymaž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ů.Pokud chcete ověřit, že
SSNjsou sloupceSalaryteď š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íchSSNaSalarysloupcí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.
V instanci SSMS s povolenou funkcí Always Encrypted se ujistěte, že je povolená také parametrizace funkce Always Encrypted.
- V hlavní nabídce aplikace SSMS vyberte Nástroje .
- Vyberte Možnosti....
- Přejděte na Spuštění dotazů>SQL Server>Pokročilé.
- Ujistěte se, že je zaškrtnuté povolení parametrizace pro funkci Always Encrypted .
- Vyberte OK.
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;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ů:
- Kurz: Vývoj aplikace .NET pomocí funkce Always Encrypted se zabezpečenými enklávy
- Kurz: Vývoj aplikace rozhraní .NET Framework pomocí funkce Always Encrypted se zabezpečenými enklávy
- Kurz: Vytváření a používání indexů ve sloupcích povolených enklávou pomocí randomizovaného šifrování