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
V tomto článku nainstalujete a nakonfigurujete konektor SQL Serveru pro Azure Key Vault.
Rozšiřitelná správa klíčů pomocí služby Azure Key Vault (AKV) je k dispozici pro SQL Server v linuxových prostředích počínaje kumulativní aktualizací SQL Serveru 2022 (16.x). Postupujte podle stejných pokynů, ale přeskočte kroky 3 a 4.
Požadavky
Než začnete používat službu Azure Key Vault s vaší instancí SQL Serveru, ujistěte se, že splňujete následující požadavky:
Musíte mít předplatné Azure.
Nainstalujte Azure PowerShell verze 5.2.0 nebo novější.
Vytvořte tenanta Microsoft Entra.
Abyste se seznámili s principy úložiště pro správu klíčů EKM (Extensible Key Management) ve službě Azure Key Vault, přečtěte si rozšiřitelné správy klíčů pomocí služby Azure Key Vault (SQL Server).
Je možné upravit registr na počítači s SQL Serverem.
Nainstalujte verzi redistribuovatelných balíčků Visual Studio C++, která je založena na verzi SQL Serveru, který používáte:
Verze SQL Serveru Distribuovatelná verze sady Visual Studio C++ 2008, 2008 R2, 2012, 2014 Distribuovatelné balíčky visual C++ pro Visual Studio 2013 2016, 2017, 2019, 2022 Redistribuovatelné balíčky Visual C++ pro Visual Studio 2015 Seznamte se s Přístupem ke službě Azure Key Vault za bránou firewall , pokud plánujete používat konektor SQL Serveru pro Azure Key Vault za bránou firewall nebo proxy serverem.
Poznámka
V SQL Serveru 2022 (16.x) CU 14 a novějších verzích SQL Server v Linuxu podporuje TDE Extensible Key Management se službou Azure Key Vault. Kroky 3 a 4 v této příručce se pro SQL Server v Linuxu nevyžadují.
Krok 1: Nastavení služebního principu Microsoft Entra
Pokud chcete SQL serveru udělit oprávnění k přístupu k trezoru klíčů Azure, potřebujete účet hlavní služby v Microsoft Entra ID.
Přihlaste se k webu Azure Portal a proveďte jednu z následujících akcí:
Vyberte tlačítko Microsoft Entra ID .
Vyberte Další služby a potom v podokně Všechny služby zadejte Microsoft Entra ID.
Pomocí následujícího příkazu zaregistrujte aplikaci v Microsoft Entra ID. Podrobné pokyny najdete v části Získání identity pro aplikaci v blogovém příspěvku služby Azure Key Vault, azure Key Vault – krok za krokem.
V části Správa prostředku Microsoft Entra ID vyberte Registrace aplikací.
Na stránce Registrace aplikací vyberte Nová registrace.
V podokně Registrace aplikace zadejte uživatelské jméno aplikace a pak vyberte Zaregistrovat.
V levém podokně vyberte Certifikáty a tajné klíče >> klienta Nové tajné klíče klienta.
V části Přidat tajný klíč klienta zadejte popis a odpovídající vypršení platnosti a pak vyberte Přidat. Nemůžete zvolit období vypršení platnosti delší než 24 měsíců. Další informace naleznete v tématu Přidání tajného klíče klienta.
V podokně Certifikáty a tajné kódy v části Hodnota vyberte tlačítko Kopírovat vedle hodnoty tajného klíče klienta, který se má použít k vytvoření asymetrického klíče v SQL Serveru.
V levém podokně vyberte Přehled a potom v poli ID aplikace (klienta) zkopírujte hodnotu, která se má použít k vytvoření asymetrického klíče na SQL Serveru.
Krok 2: Vytvoření trezoru klíčů
Vyberte metodu, kterou chcete použít k vytvoření trezoru klíčů.
Poznámka
Podporovány jsou pouze Azure Key Vault a Azure Key Vault Managed HSM. Cloud HSM Azure se nepodporuje.
Vytvoření trezoru klíčů pomocí webu Azure Portal
Pomocí portálu Azure můžete vytvořit klíčové úložiště a pak do něj přidat entitu Microsoft Entra.
Vytvořte skupinu prostředků.
Všechny prostředky Azure, které vytvoříte prostřednictvím webu Azure Portal, musí být obsažené ve skupině prostředků, kterou vytvoříte pro umístění trezoru klíčů. Název prostředku v tomto příkladu je DocsSampleRG. Zvolte vlastní skupinu prostředků a název trezoru klíčů, protože všechny názvy trezorů klíčů musí být globálně jedinečné.
V podokně Vytvořit skupinu prostředků v části Podrobnosti projektu zadejte hodnoty a pak vyberte Zkontrolovat a vytvořit.
V Azure portálu vyhledejte nebo vyberte službu Trezory klíčů a vytvořte trezor klíčů. Vyberte Vytvořit.
V podokně Vytvořit trezor klíčů vyberte kartu Základy . Zadejte příslušné hodnoty pro kartu. Doporučujeme také povolit ochranu před vyprázdněním.
Na kartě Konfigurace přístupu máte možnost vybrat řízení přístupu na základě role Azure nebo zásady přístupu k trezoru. Projdeme obě možnosti, ale doporučuje se možnost řízení přístupu na základě role v Azure . Další informace najdete v tématu Přehled modelu Accessu.
Kartu Sítě můžete ponechat jako výchozí nebo můžete nakonfigurovat nastavení sítě pro trezor klíčů. Pokud používáte bránu firewall s trezorem klíčů, musí být povolená možnost Povolit důvěryhodným službám Microsoftu obejít bránu firewall , pokud nepoužíváte připojení privátního koncového bodu. Další informace najdete v tématu Konfigurace bran firewall služby Azure Key Vault a virtuálních sítí.
Vyberte Zkontrolovat a vytvořit a vytvořte úložiště klíčů.
Řízení přístupu na základě role v Azure
Doporučenou metodou je použít řízení přístupu na základě rolí (RBAC) Azure pro přiřazení oprávnění k trezoru klíčů. Tato metoda umožňuje přiřadit oprávnění uživatelům, skupinám a aplikacím na podrobnější úrovni. K trezoru klíčů můžete přiřadit oprávnění v rovině správy (přiřazení rolí Azure) a v rovině dat (zásady přístupu trezoru klíčů). Pokud můžete použít jenom zásady přístupu, můžete tuto část přeskočit a přesunout se na část Zásady přístupu trezoru. Pro více informací o oprávněních RBAC pro Azure Key Vault navštivte Azure vestavěné role pro operace na datovém plánu Key Vault.
Přejděte k prostředku trezoru klíčů, který jste vytvořili, a vyberte nastavení Řízení přístupu (IAM).
Vyberte Přidat>Přidat přiřazení role.
Aplikace EKM potřebuje k provádění operací zabalení a rozbalení roli uživatele šifrování šifrovací služby Key Vault . Vyhledejte uživatele šifrování šifrovací služby Key Vault a vyberte roli. Vyberte Další.
Na kartě Členové vyberte možnost Vybrat členy a vyhledejte aplikaci Microsoft Entra, kterou jste vytvořili v kroku 1. Vyberte aplikaci a pak tlačítko Vybrat .
Výběrem možnosti Zkontrolovat a přiřadit dvakrát dokončete přiřazení role.
Uživatel, který klíč vytváří, potřebuje roli správce služby Key Vault . Vyhledejte správce služby Key Vault a vyberte roli. Vyberte Další.
Stejně jako v předchozích krocích přidejte člena, který vytváří klíč, a přiřaďte roli.
Zásady přístupu k trezoru
Poznámka
Pokud používáte možnost řízení přístupu na základě role v Azure , můžete tuto část přeskočit. Pokud měníte model oprávnění, můžete to udělat tak, že přejdete do nabídky konfigurace Accessu v trezoru klíčů. Ujistěte se, že máte správná oprávnění ke správě trezoru klíčů. Další informace najdete v tématu Povolení oprávnění Azure RBAC ve službě Key Vault.
Na kartě Konfigurace přístupu vyberte Zásady přístupu trezoru. Pokud používáte existující trezor klíčů, můžete v prostředku trezoru klíčů vybrat nabídku Zásady přístupu a vybrat Vytvořit.
V podokně Vytvořit zásadu přístupu vyberte v možnostech operace správy klíčů oprávnění Získat a zobrazit seznam. V možnostech kryptografických operací vyberte Odvinout klíč a Zabalit klíč. Vybrat další
Na kartě Hlavní vyberte aplikaci, která byla vytvořena v kroku 1.
Vyberte Další a pak Vytvořit.
Vytvoření klíče
V podokně Key Vault vyberte Klíče a pak vyberte možnost Generovat/Importovat. Otevře se podokno Vytvořit klíč . Zadejte název trezoru klíčů. Vyberte možnost Generovat a zadejte název klíče. Konektor SQL Serveru vyžaduje, aby název klíče používal pouze znaky "a-z", "A-Z", "0-9" a "-" s limitem 26 znaků.
Použijte typ klíče RSA a velikost klíče RSA jako 2048. EKM v současné době podporuje pouze klíč RSA. Podle potřeby nastavte data aktivace a vypršení platnosti a nastavte povolenou hodnotu Ano.
Osvědčené postupy
Pokud chcete zajistit rychlé obnovení klíče a mít přístup k datům mimo Azure, doporučujeme následující osvědčené postupy:
Vytvořte šifrovací klíč místně na místním zařízení modulu hardwarového zabezpečení (HSM). Nezapomeňte použít asymetrický klíč RSA 2048 nebo 3072, aby ho SQL Server podporoval.
Naimportujte šifrovací klíč do trezoru klíčů Azure. Tento proces je popsaný v dalších částech.
Před prvním použitím klíče v trezoru klíčů Azure proveďte zálohu klíče trezoru klíčů Azure pomocí rutiny
Backup-AzureKeyVaultKeyPowerShellu.Vždy, když provedete jakékoli změny klíče (například přidání seznamů ACL, značek nebo atributů klíčů), nezapomeňte provést další zálohování klíčů trezoru klíčů Azure.
Poznámka
Zálohování klíče je operace klíče služby Azure Key Vault, která vrací soubor, který se dá uložit kamkoli.
Použití konektoru SQL Serveru pro Azure Key Vault za firewallem nebo proxy serverem může ovlivnit výkon, pokud je provoz zpožděný nebo blokovaný. Seznamte se s Přístupem ke službě Azure Key Vault za bránou firewall , abyste měli jistotu, že jsou zavedená správná pravidla.
Volitelné – Konfigurace spravovaného HSM služby Azure Key Vault (modul hardwarového zabezpečení)
Spravovaný HSM služby Azure Key Vault (modul hardwarového zabezpečení) se podporuje pro SQL Server a SQL Server na virtuálních počítačích Azure při použití nejnovější verze konektoru SQL Serveru i Azure SQL. Spravovaný HSM je plně spravovaná vysoce dostupná služba HSM s jedním tenantem. Spravovaný HSM poskytuje bezpečný základ pro kryptografické operace a úložiště klíčů. Spravovaný HSM je navržený tak, aby splňoval nejvyšší požadavky na zabezpečení a dodržování předpisů.
V kroku 2 jsme zjistili, jak vytvořit trezor klíčů a klíč ve službě Azure Key Vault. Volitelně můžete použít spravovaný HSM služby Azure Key Vault k uložení nebo vytvoření klíče, který se má použít s konektorem SQL Serveru. Tady jsou kroky:
Vytvořte spravovaný HSM služby Azure Key Vault. Můžete to provést pomocí webu Azure Portal vyhledáním služby Azure Key Vault Managed HSM a vytvořením nového prostředku nebo pomocí Azure CLI, PowerShellu nebo šablony ARM.
Aktivujte spravovaný HSM. K aktivaci HSM mohou pouze určení správci, kteří byli přiřazeni během vytváření spravovaného HSM. Můžete to provést tak, že na webu Azure Portal vyberete spravovaný prostředek HSM výběrem možnosti Stáhnout doménu zabezpečení v nabídce Přehled prostředku. Potom postupujte podle některého z rychlých startů a aktivujte spravovaný HSM.
Udělte oprávnění pro aplikaci Microsoft Entra pro přístup ke spravovanému HSM. Role správce spravovaného HSM neuděluje oprávnění k vytvoření klíče. Podobně jako krok 2 aplikace EKM potřebuje roli uživatele šifrování spravovaného HSM crypto nebo spravovaného uživatele kryptografických služeb HSM k provádění operací zabalení a rozbalení. Při přidávání objektu zabezpečení pro přiřazení role zvolte typ podnikové aplikace . Další informace najdete v tématu Místní předdefinované role RBAC pro managed HSM.
V nabídce spravované služby HSM služby Azure Key Vault v části Nastavení vyberte Klíče. V okně Klíče vyberte Vygenerovat, importovat nebo obnovit zálohu a vytvořit klíč nebo importovat existující klíč.
Poznámka
Při vytváření přihlašovacích údajů pro přístup ke spravovanému HSM se
<name of Managed HSM>.managedhsm.azure.netidentita nachází v přehledu spravovaného HSM služby Azure Key Vault jako identifikátor URI HSM na webu Azure Portal.Algoritmus RSA-HSM_2048 a RSA-HSM_3072 jsou podporovány počínaje kumulativní aktualizací SQL Serveru 2022 (16.x) 13.
Automatická rotace klíčů je podporována ve spravovaném HSM systému Azure Key Vault. Další informace najdete v tématu Konfigurace automatické obměně klíčů ve službě Azure Managed HSM.
Sql Server Connector verze 15.0.2000.440 nebo novější se vyžaduje pro podporu spravovaného HSM služby Azure Key Vault.
Managed HSM podporuje připojení privátních koncových bodů. Další informace najdete v tématu Integrace spravovaného HSM se službou Azure Private Link. V této konfiguraci musí být pro nastavení síťování spravovaného HSM služby Azure Key Vault povolena možnost obcházení důvěryhodných služeb Microsoftu.
Krok 3: Instalace konektoru SQL Serveru
Stáhněte konektor SQL Serveru z webu Microsoft Download Center. Stahování by měl provést správce počítače s SQL Serverem.
Poznámka
- Konektor SQL Serveru verze 1.0.0.440 a starší byly nahrazeny a již nejsou podporovány v produkčních prostředích. Při upgradu konektoru SQL Serveru použijte pokyny na stránce Údržba konektoru SQL Serveru a řešení potíží v části Upgrade konektoru SQL Serveru.
- Počínaje verzí 1.0.3.0 hlásí konektor SQL Serveru relevantní chybové zprávy do protokolů událostí Systému Windows pro účely řešení potíží.
- Od verze 1.0.4.0 existuje podpora privátních cloudů Azure, včetně Azure provozovaných společností 21Vianet, Azure Germany a Azure Government.
- Ve verzi 1.0.5.0 došlo k zásadní změně z hlediska algoritmu kryptografického otisku. Po upgradu na verzi 1.0.5.0 může dojít k selhání obnovení databáze. Další informace najdete v tématu Chyba 33111 při obnovování záloh ze starších verzí konektoru SQL Serveru pro Microsoft Azure Key Vault.
- Od verze 1.0.5.0 (časové razítko: září 2020) konektor SQL Serveru podporuje filtrování zpráv a logiky opakování síťových požadavků.
- Od aktualizace verze 1.0.5.0 (časové razítko: listopad 2020) podporuje konektor SQL Serveru RSA 2048, RSA 3072, RSA-HSM 2048 a RSA-HSM 3072.
- Počínaje aktualizovanou verzí 1.0.5.0 (časové razítko: listopad 2020) můžete odkazovat na konkrétní verzi klíče ve službě Azure Key Vault.
Ve výchozím nastavení je konektor nainstalován v C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault. Toto umístění lze během instalace změnit. Pokud ho změníte, upravte skripty v další části.
Konektor nemá žádné rozhraní, ale pokud je úspěšně nainstalovaný, Microsoft.AzureKeyVaultService.EKM.dll se na počítač nainstaluje. Toto sestavení je knihovna DLL pro kryptografického poskytovatele EKM, kterou je nutné zaregistrovat v SQL Serveru pomocí příkazu CREATE CRYPTOGRAPHIC PROVIDER.
Instalace konektoru SQL Serveru také umožňuje volitelně stáhnout ukázkové skripty pro šifrování SQL Serveru.
Vysvětlení kódu chyby, nastavení konfigurace nebo úlohy údržby konektoru SQL Serveru najdete tady:
Krok 4: Přidání klíče registru pro podporu poskytovatele EKM
Varování
Úpravy registru by měly provádět uživatelé, kteří přesně vědí, co dělají. Pokud registr upravíte nesprávně, může dojít k vážným problémům. Pro přidání ochrany zálohujte registr před úpravou. Pokud dojde k problému, můžete registr obnovit.
Úpravu registru by měl provést správce počítače s SQL Serverem.
Ujistěte se, že je SQL Server nainstalovaný a spuštěný.
Spuštěním příkazu regedit otevřete Editor registru.
V
SQL Server Cryptographic Providervytvořte klíč registruHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft. Úplná cesta jeHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider.Klikněte pravým tlačítkem myši na
SQL Server Cryptographic Providerklíč registru a vyberte Oprávnění.Udělte uživatelskému účtu, na kterém běží služba SQL Serveru, oprávnění
SQL Server Cryptographic Providerklíče registru.
Vyberte Použít a pak OK.
Zavřete Editor registru a restartujte službu SQL Serveru.
Poznámka
Pokud používáte transparentní šifrování dat s EKM nebo Azure Key Vault v instanci clusteru s podporou převzetí služeb, musíte dokončit další krok pro přidání
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Providerdo rutiny kontrolního bodu registru clusteru, aby se registr mohl synchronizovat mezi uzly. Synchronizace usnadňuje obnovení databáze po selhání a rotaci klíčů.Pokud chcete přidat klíč registru do rutiny kontrolního bodu registru clusteru, spusťte v PowerShellu následující příkaz:
Add-ClusterCheckpoint -RegistryCheckpoint "SOFTWARE\Microsoft\SQL Server Cryptographic Provider" -Resourcename "SQL Server"
Krok 5: Konfigurace SQL Serveru
Poznámku o minimálních úrovních oprávnění potřebných pro každou akci v této části najdete v tématu B. Nejčastější dotazy.
Konfigurace databáze master
Spusťte sqlcmd nebo otevřete SQL Server Management Studio.
Nakonfigurujte SQL Server tak, aby používal EKM spuštěním následujícího skriptu Transact-SQL:
-- Enable advanced options. USE master; GO EXEC sp_configure 'show advanced options', 1; GO RECONFIGURE; GO -- Enable EKM provider EXEC sp_configure 'EKM provider enabled', 1; GO RECONFIGURE;Zaregistrujte konektor SQL Serveru jako poskytovatele EKM pro SQL Server.
Vytvořte kryptografického zprostředkovatele pomocí konektoru SQL Server, což je poskytovatel EKM pro Azure Key Vault. V tomto příkladu je název zprostředkovatele
AzureKeyVault_EKM.CREATE CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM FROM FILE = 'C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll'; GOPoznámka
Délka cesty k souboru nesmí překročit 256 znaků.
Nastavte přihlašovací údaje SQL Serveru pro přihlášení k SQL Serveru pro použití trezoru klíčů.
Přihlašovací údaje musí být přidány do každého přihlášení, které bude provádět šifrování pomocí klíče z trezoru klíčů. Může to zahrnovat:
Přihlašovací jméno správce SQL Serveru, které používá trezor klíčů k nastavení a správě scénářů šifrování SQL Serveru.
Jiná přihlášení SQL Serveru, která můžou povolit transparentní šifrování dat (TDE) nebo jiné funkce šifrování SQL Serveru.
Mezi přihlašovacími údaji a přihlášeními je mapování 1:1. To znamená, že každé přihlášení musí mít jedinečné přihlašovací údaje.
Upravte tento Transact-SQL skript následujícími způsoby:
Upravte argument
IDENTITY(DocsSampleEKMKeyVault) tak, aby odkazovat na službu Azure Key Vault.- Pokud používáte globální Azure, nahraďte
IDENTITYargument názvem služby Azure Key Vault z kroku 2: Vytvoření trezoru klíčů. - Pokud používáte privátní cloud Azure (například Azure Government, Microsoft Azure provozovaný společností 21Vianet nebo Azure Germany), nahraďte
IDENTITYargument identifikátorem URI trezoru vráceným v kroku 3 části Vytvoření trezoru klíčů a klíče pomocí PowerShellu. Nezahrnujtehttps://do identifikátoru URI trezoru klíčů.
- Pokud používáte globální Azure, nahraďte
Nahraďte první část argumentu
SECRETID klienta Microsoft Entra z kroku 1: Nastavení Microsoft Entra service principal. V tomto příkladu je ID klientad956f6b9xxxxxxx.Důležitý
Nezapomeňte odebrat pomlčky z ID aplikace (klienta).
Dokončete druhou část argumentu
SECRETpomocí klientského tajemství z Krok 1: Nastavení instančního objektu Microsoft Entra. V tomto příkladu je tajný klíč klientayrA8X~PldtMCvUZPxxxxxxxx. Konečný řetězec argumentuSECRETbude dlouhá posloupnost písmen a číslic bez pomlček (s výjimkou oddílu Tajný klíč klienta v případě, že tajný klíč klienta obsahuje pomlčky).USE master; CREATE CREDENTIAL sysadmin_ekm_cred WITH IDENTITY = 'DocsSampleEKMKeyVault', -- for public Azure -- WITH IDENTITY = 'DocsSampleEKMKeyVault.vault.usgovcloudapi.net', -- for Azure Government -- WITH IDENTITY = 'DocsSampleEKMKeyVault.vault.azure.cn', -- for Microsoft Azure operated by 21Vianet -- WITH IDENTITY = 'DocsSampleEKMKeyVault.vault.microsoftazure.de', -- for Azure Germany -- WITH IDENTITY = '<name of Managed HSM>.managedhsm.azure.net', -- for Managed HSM (HSM URI in the Azure portal resource) --<----Application (Client) ID ---><--Microsoft Entra app (Client) ID secret--> SECRET = 'd956f6b9xxxxxxxyrA8X~PldtMCvUZPxxxxxxxx' FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM; -- Add the credential to the SQL Server administrator's domain login ALTER LOGIN [<domain>\<login>] ADD CREDENTIAL sysadmin_ekm_cred;
Příklad použití proměnných pro
CREATE CREDENTIALargument a programové odebrání pomlček z ID klienta naleznete v tématu CREATE CREDENTIAL.Otevřete klíč služby Azure Key Vault v instanci SQL Serveru.
Bez ohledu na to, jestli jste vytvořili nový klíč nebo importovali asymetrický klíč, jak je popsáno v kroku 2: Vytvoření trezoru klíčů, musíte klíč otevřít. Otevřete ho zadáním názvu klíče v následujícím skriptu Transact-SQL.
Důležitý
Nezapomeňte nejprve dokončit požadavky registru pro tento krok.
- Nahraďte
EKMSampleASYKeynázvem, který má mít klíč na SQL Serveru. - Nahraďte
ContosoRSAKey0názvem vašeho klíče ve službě Azure Key Vault nebo spravovaném HSM. Níže je příklad klíče bez verze.
CREATE ASYMMETRIC KEY EKMSampleASYKey FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0', CREATION_DISPOSITION = OPEN_EXISTING;Počínaje aktualizovanou verzí 1.0.5.0 konektoru SQL Serveru můžete odkazovat na konkrétní verzi klíče ve službě Azure Key Vault:
CREATE ASYMMETRIC KEY EKMSampleASYKey FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0/1a4d3b9b393c4678831ccc60def75379', CREATION_DISPOSITION = OPEN_EXISTING;V předchozím ukázkovém skriptu
1a4d3b9b393c4678831ccc60def75379představuje konkrétní verzi klíče, který se použije. Pokud tento skript použijete, nezáleží na tom, jestli klíč aktualizujete novou verzí. Verze klíče (například)1a4d3b9b393c4678831ccc60def75379se vždy použije pro databázové operace.- Nahraďte
Vytvořte nové přihlášení pomocí asymetrického klíče na SQL Serveru, který jste vytvořili v předchozím kroku.
--Create a Login that will associate the asymmetric key to this login CREATE LOGIN TDE_Login FROM ASYMMETRIC KEY EKMSampleASYKey;Vytvořte nové přihlášení z asymetrického klíče na SQL Serveru. Zahoďte mapování přihlašovacích údajů z kroku 5: Nakonfigurujte SQL Server tak, aby bylo možné namapovat přihlašovací údaje na nové přihlášení.
--Now drop the credential mapping from the original association ALTER LOGIN [<domain>\<login>] DROP CREDENTIAL sysadmin_ekm_cred;Upravte nové přihlášení a přiřaďte přihlašovací údaje EKM k novému přihlášení.
--Now add the credential mapping to the new Login ALTER LOGIN TDE_Login ADD CREDENTIAL sysadmin_ekm_cred;
Nakonfigurujte uživatelskou databázi tak, aby byla šifrovaná.
Vytvořte testovací databázi, která se bude šifrovat pomocí klíče služby Azure Key Vault.
--Create a test database that will be encrypted with the Azure Key Vault key CREATE DATABASE TestTDE;Vytvořte šifrovací klíč databáze pomocí
ASYMMETRIC KEY(EKMSampleASYKey).USE <DB Name>; --Create an ENCRYPTION KEY using the ASYMMETRIC KEY (EKMSampleASYKey) CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER ASYMMETRIC KEY EKMSampleASYKey;Zašifrujte testovací databázi. Povolte TDE (transparentní šifrování dat) nastavením
ENCRYPTION ON.--Enable TDE by setting ENCRYPTION ON ALTER DATABASE TestTDE SET ENCRYPTION ON;
Podrobnosti registru
Spuštěním následujícího dotazu Transact-SQL v databázi
masterzobrazte asymetrický klíč použitý.SELECT name, algorithm_desc, thumbprint FROM sys.asymmetric_keys;Příkaz vrátí:
name algorithm_desc thumbprint EKMSampleASYKey RSA_2048 <key thumbprint>V uživatelské databázi (
TestTDE) spusťte následující Transact-SQL dotaz, který zobrazí použitý šifrovací klíč.SELECT encryptor_type, encryption_state_desc, encryptor_thumbprint FROM sys.dm_database_encryption_keys WHERE database_id = DB_ID('TestTDE');Příkaz vrátí:
encryptor_type encryption_state_desc encryptor_thumbprint ASYMMETRIC KEY ENCRYPTED <key thumbprint>
Odklidit
Vyčistěte testovací objekty. Odstraňte všechny objekty vytvořené v tomto testovacím skriptu.
-- CLEAN UP USE master; GO ALTER DATABASE [TestTDE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DROP DATABASE [TestTDE]; GO ALTER LOGIN [TDE_Login] DROP CREDENTIAL [sysadmin_ekm_cred]; DROP LOGIN [TDE_Login]; GO DROP CREDENTIAL [sysadmin_ekm_cred]; GO USE master; GO DROP ASYMMETRIC KEY [EKMSampleASYKey]; DROP CRYPTOGRAPHIC PROVIDER [AzureKeyVault_EKM]; GOUkázkové skripty najdete v blogu o transparentním šifrování dat SQL Serveru a rozšiřitelné správě klíčů pomocí služby Azure Key Vault.
Klíč registru
SQL Server Cryptographic Providerse po odstranění tohoto klíče nebo po odstranění všech klíčů EKM automaticky nevymaže. Musí se vyčistit ručně. Čištění klíče registru by mělo být provedeno s extrémní opatrností, protože čištění registru může předčasně přerušit funkčnost EKM. Pokud chcete klíč registru vyčistit, odstraňte klíč registruSQL Server Cryptographic ProvidernaHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.
Troubleshoot
Pokud se klíč registru HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider nevytvořil nebo nejsou udělena požadovaná oprávnění, následující příkaz DDL selže:
CREATE ASYMMETRIC KEY EKMSampleASYKey
FROM PROVIDER [AzureKeyVault_EKM]
WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0',
CREATION_DISPOSITION = OPEN_EXISTING;
Msg 33049, Level 16, State 2, Line 65
Key with name 'ContosoRSAKey0' does not exist in the provider or access is denied. Provider error code: 2058. (Provider Error - No explanation is available, consult EKM Provider for details)
Tajemství klientů, která brzy vyprší
Pokud přihlašovací údaje mají tajný klíč klienta, jehož platnost brzy vyprší, můžete k přihlašovacím údajům přiřadit nový tajný klíč.
Aktualizujte tajný klíč původně vytvořený v Kroku 1: Nastavení Instančního Objektu Microsoft Entra
Pomocí následujícího kódu upravte přihlašovací údaje pomocí stejné identity a nového tajného kódu. Nahraďte
<New Secret>novým tajným kódem:ALTER CREDENTIAL sysadmin_ekm_cred WITH IDENTITY = 'DocsSampleEKMKeyVault', SECRET = '<New Secret>';Restartujte službu SQL Serveru.
Poznámka
Pokud používáte EKM ve skupině dostupnosti, budete muset změnit přihlašovací údaje a restartovat službu SQL Serveru na všech uzlech skupiny dostupnosti.
Otočení asymetrického klíče pomocí nového klíče AKV nebo nové verze klíče AKV
Poznámka
- Při ruční obměně klíče AKV, SQL Server podporuje jak klíče AKV bez verze, tak i klíče s verzí, a není nutné používat jiný klíč AKV.
- Původní klíč AKV lze otočit vytvořením nové verze, která může nahradit předchozí klíč vytvořený na SQL Serveru.
- Pro ruční rotaci klíčů musí být vytvořen nový asymetrický klíč SQL Serveru, který odkazuje na klíč bez verze nebo na verzovaný klíč, který byl rotován v AKV. Pro nový asymetrický klíč SQL Serveru se klíč AKV bez verze automaticky zvolí pomocí nejvyšší verze klíče v AKV. Pro klíč s konkrétní verzí je nutné uvést nejvyšší verzi v AKV pomocí syntaxe
WITH PROVIDER_KEY_NAME = <key_name>/<version>. Šifrovací klíč databáze můžete změnit tak, aby se znovu zašifruje pomocí nového asymetrického klíče. Stejný název klíče (verzovaný nebo bez verze) lze použít se zásadami rotace AKV. Pro verzi klíče musí být přidána aktuální verze. Pro klíč bez verze použijte vždy stejný název klíče.
SQL Server nemá mechanismus pro automatickou obměnu asymetrického klíče používaného pro transparentní šifrování dat. Postup ručního otočení asymetrického klíče je následující.
Přihlašovací údaje použité v počátečním nastavení (
sysadmin_ekm_cred) je možné znovu použít také pro obměně klíčů. Volitelně můžete vytvořit nové přihlašovací údaje pro nový asymetrický klíč.CREATE CREDENTIAL <new_credential_name> WITH IDENTITY = <key vault>, SECRET = 'existing/new secret' FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM;Přidejte přihlašovací údaje do objektu zabezpečení:
ALTER LOGIN [domain\userName]; ADD CREDENTIAL <new_credential_name>;Vytvořte nový asymetrický klíč na základě nového klíče (po otočení klíče). Nový klíč může být klíč bez verze (
ContosoRSAKey0v našem příkladu) nebo klíč s verzí (ContosoRSAKey0/1a4d3b9b393c4678831ccc60def75379kde1a4d3b9b393c4678831ccc60def75379je verze aktualizovaného klíče v AKV):CREATE ASYMMETRIC KEY <new_ekm_key_name> FROM PROVIDER [AzureKeyVault_EKM] WITH PROVIDER_KEY_NAME = <new_key_from_key_vault>, CREATION_DISPOSITION = OPEN_EXISTING;Vytvořte nové přihlášení z nového asymetrického klíče:
CREATE LOGIN <new_login_name> FROM ASYMMETRIC KEY <new_ekm_key_name>;Odstraňte přihlašovací údaje z hlavní entity:
ALTER LOGIN [domain\username] DROP CREDENTIAL <new_credential_name>;Namapujte přihlašovací údaje AKV na nové přihlášení:
ALTER LOGIN <new_login_name>; ADD CREDENTIAL <new_credential_name>;Upravte šifrovací klíč databáze (DEK) a přešifrujte ho pomocí nového asymetrického klíče:
USE [databaseName]; GO ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER ASYMMETRIC KEY <new_ekm_key_name>;Můžete ověřit nový asymetrický klíč a šifrovací klíč použitý v databázi:
SELECT encryptor_type, encryption_state_desc, encryptor_thumbprint FROM sys.dm_database_encryption_keys WHERE database_id = DB_ID('databaseName');Tento kryptografický otisk by měl odpovídat klíči registru v cestě
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider\Azure Key Vault\<key_vault_url>\<thumbprint>a poskytnout vámKeyUripro otočený klíč.
Důležitý
Obměna logické ochrany TDE serveru znamená přepnutí na nový asymetrický klíč nebo certifikát, který chrání klíč pro šifrování databáze (DEK). Obměny klíčů je online operace a dokončení by mělo trvat jenom několik sekund, protože se tím dešifruje a znovu zašifruje klíč DEK a ne celá databáze.
Po rotaci neodstraňovat předchozí verze klíče. Při obměně klíčů se některá data stále šifrují pomocí předchozích klíčů, jako jsou starší zálohy databáze, zálohované soubory protokolů, soubory virtuálních protokolů (VLF) a soubory transakčních protokolů. Pro obnovení databáze nebo obnovení databáze se můžou vyžadovat i předchozí klíče.