A TDE-vel védett adatbázis tanúsítványának migrálása az Azure SQL Managed Instance-be
A következőre vonatkozik: Felügyelt Azure SQL-példány
Ha a natív visszaállítási beállítással migrál egy transzparens adattitkosítás (TDE) által védett adatbázist a felügyelt Azure SQL-példányba, az SQL Server-példány megfelelő tanúsítványát át kell telepíteni az adatbázis-visszaállítás előtt. Ez a cikk végigvezeti a tanúsítvány manuális migrálásának folyamatán a felügyelt Azure SQL-példányra:
- A tanúsítvány exportálása személyes adatcsere -fájlba (.pfx)
- A tanúsítvány kinyerése fájlból egy base-64 sztringbe
- Feltöltés PowerShell-parancsmaggal
Ha egy teljes körűen felügyelt szolgáltatást használ egy TDE-vel védett adatbázis és egy megfelelő tanúsítvány zökkenőmentes migrálásához, olvassa el a helyszíni adatbázis azure sql managed instance-be való migrálását az Azure Database Migration Service használatával.
Fontos
A migrált tanúsítvány csak a TDE által védett adatbázis visszaállítására szolgál. A visszaállítás befejezése után a migrált tanúsítványt egy másik védő váltja fel, vagy egy szolgáltatás által felügyelt tanúsítványra vagy a kulcstartó aszimmetrikus kulcsára a példányon beállított TDE típusától függően.
Előfeltételek
A cikkben leírt lépések elvégzéséhez a következő előfeltételekre lesz szüksége:
- Telepített Pvk2Pfx parancssori eszköz egy helyszíni kiszolgálón vagy egy olyan számítógépen, amely hozzáfér a fájlként exportált tanúsítványhoz. A Pvk2Pfx eszköz az Enterprise Windows Driver Kit része, amely egy önálló parancssori környezet.
- Telepített Windows PowerShell, 5.0-s vagy újabb verzió.
Győződjön meg róla, hogy rendelkezik az alábbiakkal:
- Telepített és frissített Azure PowerShell-modul.
- Az.Sql modul.
Feljegyzés
Ez a cikk az Azure Az PowerShell-modult használja, amely az Azure-ral való interakcióhoz ajánlott PowerShell-modul. Az Az PowerShell-modul használatának megkezdéséhez lásd az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.
Fontos
A PowerShell Azure Resource Manager modult továbbra is támogatja az Azure SQL Managed Instance, de minden jövőbeli fejlesztés az Az.Sql modulhoz tartozik. Ezekhez a parancsmagokhoz lásd: AzureRM.Sql. Az Az modulban és az AzureRM-modulokban található parancsok argumentumai lényegében azonosak.
Futtassa a következő parancsokat a PowerShellben a modul telepítéséhez/frissítéséhez:
Install-Module -Name Az.Sql
Update-Module -Name Az.Sql
A TDE-tanúsítvány exportálása .pfx fájlba
A tanúsítvány exportálható közvetlenül a forrás SQL Server-példányból vagy a tanúsítványtárolóból, ha az ott van.
A tanúsítvány exportálása a forrás SQL Server-példányból
Az alábbi lépésekkel exportálhatja a tanúsítványt az SQL Server Management Studióval, és .pfx formátumúvá alakíthatja. A lépések során a rendszer az általános TDE_Cert és full_path nevet használja a tanúsítványokhoz, a fájlnevekhez és az elérési utakhoz. Ezeket a gyakorlatban a tényleges nevekre kell cserélni.
Az SSMS-ben nyisson meg egy új lekérdezési ablakot, és csatlakozzon a forrás SQL Server-példányhoz.
A következő szkripttel listázhatja a TDE által védett adatbázisokat, és lekérheti a migrálni kívánt adatbázis titkosítását védő tanúsítvány nevét:
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
A következő szkriptet futtatva a tanúsítványt két fájlba (.cer és .pvk) exportálhatja, megőrizve a nyilvános és a titkos kulcs adatait:
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>' )
A PowerShell-konzol használatával másolja a tanúsítványadatokat egy újonnan létrehozott fájlpárból egy .pfx fájlba a Pvk2Pfx eszközzel:
.\pvk2pfx -pvk c:/full_path/TDE_Cert.pvk -pi "<SomeStrongPassword>" -spc c:/full_path/TDE_Cert.cer -pfx c:/full_path/TDE_Cert.pfx
Tanúsítvány exportálása tanúsítványtárolóból
Ha a tanúsítvány az SQL Server helyi számítógép tanúsítványtárolójában van tárolva, a következő lépésekkel exportálható:
Nyissa meg a PowerShell-konzolt, és hajtsa végre a következő parancsot a Microsoft Felügyeleti konzol Tanúsítványok beépülő moduljának megnyitásához:
certlm
A Tanúsítványok MMC beépülő modulban bontsa ki a személyes > tanúsítványok elérési útját a tanúsítványok listájának megtekintéséhez.
Kattintson a jobb gombbal a tanúsítványra, és válassza az Exportálás parancsot.
A varázslót követve exportálhatja a tanúsítványt és a titkos kulcsot .pfx formátumba.
A tanúsítvány feltöltése felügyelt Azure SQL-példányba egy Azure PowerShell-parancsmag használatával
Előkészítő lépések a PowerShellben:
# 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>
Az összes előkészítési lépés elvégzése után futtassa a következő parancsokat a base-64 kódolású tanúsítvány feltöltéséhez a cél felügyelt példányra:
# 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
A tanúsítvány már elérhető a megadott felügyelt példány számára, és a megfelelő TDE által védett adatbázis biztonsági mentése sikeresen visszaállítható.
Feljegyzés
A feltöltött tanúsítvány nem látható a sys.certificates katalógusnézetben. A tanúsítvány sikeres feltöltésének megerősítéséhez futtassa a RESTORE FILELISTONLY parancsot.
Következő lépések
Ebből a cikkből megtudhatja, hogyan migrálhat egy adatbázis titkosítási kulcsát védő tanúsítványt transzparens adattitkosítás a helyszíni vagy az IaaS SQL Server-példányból a felügyelt Azure SQL-példányba.
Az adatbázis biztonsági mentésének visszaállítása felügyelt Azure SQL-példányra című cikkből megtudhatja, hogyan állíthatja vissza az adatbázis biztonsági mentését a felügyelt Azure SQL-példányra.