Migrace certifikátu databáze chráněné transparentním šifrováním dat do služby Azure SQL Managed Instance
Platí pro: Azure SQL Managed Instance
Při migraci databáze chráněné službou transparentní šifrování dat (TDE) do azure SQL Managed Instance pomocí možnosti nativního obnovení je potřeba před obnovením databáze migrovat odpovídající certifikát z instance SQL Serveru. Tento článek vás provede procesem ruční migrace certifikátu do služby Azure SQL Managed Instance:
- Export certifikátu do souboru Personal Information Exchange (.pfx)
- Extrahování certifikátu ze souboru do řetězce base-64
- Nahrání pomocí rutiny PowerShellu
Alternativní možnost použití plně spravované služby pro bezproblémovou migraci databáze chráněné transparentním šifrováním dat i odpovídajícího certifikátu najdete v tématu Postup migrace místní databáze do služby Azure SQL Managed Instance pomocí služby Azure Database Migration Service.
Důležité
Migrovaný certifikát se používá pouze k obnovení databáze chráněné transparentním šifrováním dat. Brzy po dokončení obnovení se migrovaný certifikát nahradí jiným ochranou, buď certifikátem spravovaným službou, nebo asymetrickým klíčem z trezoru klíčů v závislosti na typu transparentního šifrování dat nastaveného v instanci.
Požadavky
K dokončení kroků v tomto článku budete potřebovat následující:
- Nástroj příkazového řádku Pvk2pfx nainstalovaný na místním serveru nebo jiném počítači s přístupem k certifikátu, který se exportuje do souboru. Nástroj Pvk2Pfx je součástí sady Enterprise Windows Driver Kit, samostatné prostředí příkazového řádku.
- Prostředí Windows PowerShell nainstalované ve verzi 5.0 nebo vyšší.
Ujistěte se, že máte následující:
Poznámka:
Tento článek používá modul Azure Az PowerShell, což je doporučený modul PowerShellu pro interakci s Azure. Pokud chcete začít s modulem Az PowerShell, projděte si téma věnované instalaci Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.
Důležité
Modul Azure Resource Manager v PowerShellu je stále podporovaný službou Azure SQL Managed Instance, ale veškerý budoucí vývoj je určený pro modul Az.Sql. Tyto rutiny najdete v tématu AzureRM.Sql. Argumenty pro příkazy v modulu Az a v modulech AzureRM jsou podstatně identické.
Spuštěním následujících příkazů v PowerShellu nainstalujte/aktualizujte modul:
Install-Module -Name Az.Sql
Update-Module -Name Az.Sql
Export certifikátu transparentního šifrování dat do souboru .pfx
Certifikát je možné exportovat přímo ze zdrojové instance SQL Serveru nebo z úložiště certifikátů, pokud tam je uložený.
Export certifikátu ze zdrojové instance SQL Serveru
Pomocí následujících kroků exportujte certifikát pomocí aplikace SQL Server Management Studio a převeďte ho do formátu .pfx. Obecné názvy TDE_Cert a full_path se používají pro názvy certifikátů a souborů a cesty v krocích. Nahraďte je skutečnými názvy.
V nástroji SSMS otevřete nové okno dotazu a připojte se ke zdrojové instanci SQL Serveru.
Pomocí následujícího skriptu vypíšete databáze chráněné transparentním šifrováním dat a získáte název certifikátu, který chrání šifrování databáze, které se má migrovat:
USE master GO SELECT db.name as [database_name], cer.name as [certificate_name] FROM sys.dm_database_encryption_keys dek LEFT JOIN sys.certificates cer ON dek.encryptor_thumbprint = cer.thumbprint INNER JOIN sys.databases db ON dek.database_id = db.database_id WHERE dek.encryption_state = 3
Následujícím skriptem exportujte certifikát do dvojice souborů (.cer a .pvk), které obsahují veřejný a privátní klíč:
USE master GO BACKUP CERTIFICATE TDE_Cert TO FILE = 'c:\full_path\TDE_Cert.cer' WITH PRIVATE KEY ( FILE = 'c:\full_path\TDE_Cert.pvk', ENCRYPTION BY PASSWORD = '<SomeStrongPassword>' )
Pomocí konzoly PowerShellu zkopírujte informace o certifikátu z dvojice nově vytvořených souborů do souboru .pfx pomocí nástroje Pvk2Pfx:
.\pvk2pfx -pvk c:/full_path/TDE_Cert.pvk -pi "<SomeStrongPassword>" -spc c:/full_path/TDE_Cert.cer -pfx c:/full_path/TDE_Cert.pfx
Export certifikátu z úložiště certifikátů
Pokud je certifikát uložený v úložišti certifikátů místního počítače SQL Serveru, můžete ho exportovat pomocí následujícího postupu:
Otevřete konzolu PowerShellu a spuštěním následujícího příkazu otevřete modul snap-in Certifikáty konzoly Microsoft Management Console:
certlm
V modulu snap-in Certifikáty konzoly MMC rozbalte cestu Osobní > certifikáty a zobrazte seznam certifikátů.
Klikněte pravým tlačítkem myši na certifikát a klikněte na Exportovat.
Podle průvodce exportujte certifikát a privátní klíč do formátu .pfx.
Nahrání certifikátu do azure SQL Managed Instance pomocí rutiny Azure PowerShellu
Začněte s přípravnými kroky v prostředí PowerShell:
# import the module into the PowerShell session Import-Module Az # connect to Azure with an interactive dialog for sign-in Connect-AzAccount # list subscriptions available and copy id of the subscription target the managed instance belongs to Get-AzSubscription # set subscription for the session Select-AzSubscription <subscriptionId>
Po dokončení všech přípravných kroků spusťte následující příkazy pro nahrání certifikátu zakódovaného do cílové spravované instance s kódováním base-64:
# If you are using PowerShell 6.0 or higher, run this command: $fileContentBytes = Get-Content 'C:/full_path/TDE_Cert.pfx' -AsByteStream # If you are using PowerShell 5.x, uncomment and run this command instead of the one above: # $fileContentBytes = Get-Content 'C:/full_path/TDE_Cert.pfx' -Encoding Byte $base64EncodedCert = [System.Convert]::ToBase64String($fileContentBytes) $securePrivateBlob = $base64EncodedCert | ConvertTo-SecureString -AsPlainText -Force $password = "<password>" $securePassword = $password | ConvertTo-SecureString -AsPlainText -Force Add-AzSqlManagedInstanceTransparentDataEncryptionCertificate -ResourceGroupName "<resourceGroupName>" ` -ManagedInstanceName "<managedInstanceName>" -PrivateBlob $securePrivateBlob -Password $securePassword
Certifikát je nyní dostupný pro zadanou spravovanou instanci a zálohu odpovídající databáze chráněné transparentním šifrováním dat je možné úspěšně obnovit.
Poznámka:
Nahraný certifikát není viditelný v zobrazení katalogu sys.certificates. Pokud chcete potvrdit úspěšné nahrání certifikátu, můžete spustit příkaz RESTORE FILELISTONLY .
Další kroky
V tomto článku jste zjistili, jak migrovat certifikát, který chrání šifrovací klíč databáze pomocí transparentní šifrování dat, z místní instance SQL Serveru nebo instance SQL Serveru IaaS do služby Azure SQL Managed Instance.
Informace o obnovení zálohy databáze do spravované instance Azure SQL najdete v tématu Obnovení zálohy databáze do spravované instance Azure SQL.