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: SQL Server 2019 (15.x) a novější – jenom Windows
V tomto kurzu se naučíte, jak začít používat funkci Always Encrypted se zabezpečenými enklávy na SQL Serveru. Zobrazí se vám:
- Jak vytvořit základní prostředí pro testování a vyhodnocení funkce Always Encrypted se zabezpečenými enklávami bez konfigurace ověření identity pro enklávy.
- 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).
Pokud chcete zjistit, jak nastavit funkci Always Encrypted se zabezpečenými enklávami pomocí služby Strážce hostitele pro ověření identity enklávy, přečtěte si kurz: Začínáme používat funkci Always Encrypted se zabezpečenými enklávami na SQL Serveru s ověřením identity pomocí služby HGS.
Požadavky
Počítač hostující instanci SQL Serveru (označovaný jako počítač s SQL Serverem) musí splňovat následující požadavky:
- SQL Server 2019 (15.x) nebo novější
- Windows 10 nebo novější, Windows Server 2019 nebo novější.
- Podpora procesoru pro virtualizační technologie:
- Intel VT-x s rozšířenými stránkovacími tabulkami.
- AMD-V s rychlým indexováním virtualizace.
- Pokud na virtuálním počítači používáte SQL Server:
- V Azure použijte velikost virtuálního počítače 2. generace (doporučeno) nebo použijte velikost virtuálního počítače 1. generace s povolenou vnořenou virtualizací. Projděte si dokumentaci k velikosti jednotlivých virtuálních počítačů a zjistěte, které velikosti virtuálních počítačů generace 1 podporují vnořené virtualizace.
- V Hyper-V 2016 nebo novějším (mimo Azure) se ujistěte, že je váš virtuální počítač 2. generace (doporučeno) nebo že se jedná o virtuální počítač 1. generace s povolenou vnořenou virtualizací. Další informace najdete v tématu Vytvoření virtuálního počítače generace 1 nebo 2 v Hyper-V akonfigurace vnořené virtualizace.
- V prostředí VMware vSphere 6.7 nebo novější povolte podporu virtualizačního zabezpečení pro virtuální počítač, jak je popsáno v dokumentaci k VMware.
- Ostatní hypervisory a veřejné cloudy můžou podporovat vnořené virtualizační funkce, které umožňují funkci Always Encrypted s enklávy VBS. V dokumentaci k řešení virtualizace zkontrolujte kompatibilitu a pokyny ke konfiguraci.
- Nejnovější verzi aplikace SQL Server Management Studio (SSMS). Jako alternativu můžete nainstalovat SSMS na jiný počítač.
Výstraha
V produkčních prostředích může spouštění SSMS nebo jiných nástrojů pro správu klíčů na počítači s SQL Serverem snížit výhody zabezpečení používání funkce Always Encrypted. Obecně se doporučuje používat takové nástroje na jiném počítači. Další informace najdete v tématu Důležité informace o zabezpečení správy klíčů.
Krok 1: Ujistěte se, že je povolené zabezpečení na základě virtualizace (VBS).
Přihlaste se k počítači s SQL Serverem jako správce, otevřete konzolu Windows PowerShellu se zvýšenými oprávněními a spusťte msinfo32.exe. Zkontrolujte, jestli je VBS spuštěný. Pokud je VBS spuštěný, přeskočte zbývající kroky v této části a přejděte k další části.
Povolte virtualizační technologii VBS spuštěním následujícího cmdletu v relaci PowerShellu.
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard -Name EnableVirtualizationBasedSecurity -Value 1Pokud je váš počítač s SQL Serverem virtuální počítač, fyzický počítač, který nepodporuje zabezpečené spouštění rozhraní UEFI nebo fyzický počítač, který není vybaven službou IOMMU, musíte odebrat požadavek VBS na funkce zabezpečení platformy. Odeberte požadavek na zabezpečené spouštění a ioMMU spuštěním následujícího příkazu na počítači s SQL Serverem v konzole PowerShellu se zvýšenými oprávněními:
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard -Name RequirePlatformSecurityFeatures -Value 0Restartujte počítač s SQL Serverem znovu, aby se služba VBS dostala do režimu online.
Restart-ComputerOpakujte krok 1 a zkontrolujte, zda běží VBS.
Krok 2: Povolení funkce Always Encrypted se zabezpečenými enklávy na SQL Serveru
V tomto kroku povolíte funkci Always Encrypted pomocí enkláv ve vaší instanci SQL Serveru.
Pomocí aplikace SSMS se připojte k instanci SQL Serveru jako správce systému bez povolení funkce Always Encrypted pro připojení k databázi.
Spusťte SSMS.
V dialogovém okně Připojit k serveru zadejte název serveru, vyberte metodu ověřování a zadejte své přihlašovací údaje.
Vyberte Možnosti >> a vyberte kartu Always Encrypted .
Ujistěte se, že políčko Povolit funkci Always Encrypted (šifrování sloupce) není zaškrtnuté.
Vyberte Připojit.
Otevřete nové okno dotazu a spuštěním následujícího příkazu nastavte typ zabezpečené enklávy na zabezpečení na základě virtualizace (VBS).
EXEC sys.sp_configure 'column encryption enclave type', 1; RECONFIGURE;Restartujte instanci SQL Serveru, aby se projevila předchozí změna. Instanci v nástroji SSMS můžete restartovat tak, že na ni kliknete pravým tlačítkem v Průzkumníku objektů a vyberete Restartovat. Po restartování instance se k ní znovu připojte.
Ověřte, že je nyní načtena zabezpečená enkláva spuštěním následujícího dotazu:
SELECT [name], [value], [value_in_use] FROM sys.configurations WHERE [name] = 'column encryption enclave type';Dotaz by měl vrátit následující výsledek:
název value hodnota v užívání Typ enklávy pro šifrování sloupce 1 1
Krok 3: Vytvoření ukázkové databáze
V tomto kroku vytvoříte databázi s některými ukázkovými daty, která později zašifrujete.
Pomocí instance SSMS z předchozího kroku spusťte následující příkaz v okně dotazu a vytvořte novou databázi s názvem ContosoHR.
CREATE DATABASE [ContosoHR];Vytvořte novou tabulku s názvem Zaměstnanci.
USE [ContosoHR]; GO 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];Do tabulky Employees (Zaměstnanci) přidejte několik záznamů o zaměstnancích .
USE [ContosoHR]; GO 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žňují výpočty v enklávě.
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....
Vyberte název hlavního klíče sloupce: CMK1.
Ujistěte se, že jste vybrali úložiště certifikátů Windows (aktuální uživatel nebo místní počítač) nebo Azure Key Vault.
Vyberte Povolit enklávové výpočty.
Pokud jste vybrali Azure Key Vault, přihlaste se k Azure a vyberte svůj trezor klíčů. Další informace o tom, jak vytvořit trezor klíčů pro funkci Always Encrypted, najdete v tématu Správa trezorů klíčů z webu Azure Portal.
Pokud už certifikát nebo klíč klíč Azure key value existuje, vyberte ho nebo vyberte tlačítko Generovat certifikát a vytvořte nový.
Vyberte OK.
Vytvořte nový šifrovací klíč sloupce s podporou enklávy:
- Klikněte pravým tlačítkem myši na Vždy šifrované klíče a vyberte Nový šifrovací klíč sloupce.
- 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 Plat uvnitř enklávy na straně serveru a pak otestujete dotaz SELECT na data.
Otevřete novou instanci SSMS a připojte se k instanci SQL Serveru pro připojení k databázi s povolenou funkcí Always Encrypted.
Spusťte novou instanci aplikace SSMS.
V dialogovém okně Připojit k serveru zadejte název serveru, vyberte metodu ověřování a zadejte své přihlašovací údaje.
Vyberte Možnosti >> a vyberte kartu 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 sloupce SSN a Plat spuštěním následujících dotazů.
USE [ContosoHR]; GO 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:
Všimněte si příkazu ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE, který 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, a aktualizovat tak informace o šifrování parametrů.
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: Provádění komplexních dotazů na šifrované sloupce
Teď můžete provádět složité dotazy na šifrované sloupce. 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 ho a spusťte následující dotaz. 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, a všimněte si selhání, ke kterému dochází.
Další kroky
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í