Sdílet prostřednictvím


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í:

Ujistěte se, že máte následující:

  • Nainstalovaný a aktualizovaný modul Azure PowerShellu
  • Modul Az.Sql

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.

  1. V nástroji SSMS otevřete nové okno dotazu a připojte se ke zdrojové instanci SQL Serveru.

  2. 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
    

    Seznam certifikátů transparentního šifrování dat

  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>'
    )
    

    Záložní certifikát transparentního šifrování dat

  4. 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:

  1. 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
    
  2. V modulu snap-in Certifikáty konzoly MMC rozbalte cestu Osobní > certifikáty a zobrazte seznam certifikátů.

  3. Klikněte pravým tlačítkem myši na certifikát a klikněte na Exportovat.

  4. 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

  1. 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>
    
  2. 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.