TDE korumalı veritabanının sertifikasını Azure SQL Yönetilen Örneği’ne geçirme

Şunlar için geçerlidir:Azure SQL Yönetilen Örneği

yerel geri yükleme seçeneğini kullanarak Saydam Veri Şifrelemesi (TDE) ile korunan bir veritabanını Azure SQL Yönetilen Örneği geçirirken, veritabanı geri yüklemesinden önce SQL Server örneğinden ilgili sertifikanın geçirilmesi gerekir. Bu makalede, sertifikanın el ile Azure SQL Yönetilen Örneği geçiş işleminde size yol gösterilir:

  • Sertifikayı Kişisel Bilgi Değişimi (.pfx) dosyasına aktarma
  • Sertifikayı bir dosyadan base-64 dizesine ayıklama
  • PowerShell cmdlet'ini kullanarak karşıya yükleme

Hem TDE korumalı veritabanının hem de ilgili sertifikanın sorunsuz geçişi için tam olarak yönetilen bir hizmet kullanan alternatif bir seçenek için bkz. Azure Veritabanı Geçiş Hizmeti kullanarak şirket içi veritabanınızı Azure SQL Yönetilen Örneği geçirme.

Önemli

Geçirilen sertifika yalnızca TDE korumalı veritabanını geri yüklemek için kullanılır. Geri yükleme tamamlandıktan hemen sonra geçirilen sertifika, örnekte ayarladığınız TDE türüne bağlı olarak hizmet tarafından yönetilen bir sertifika veya anahtar kasasından asimetrik bir anahtar olan farklı bir koruyucuyla değiştirilir.

Önkoşullar

Bu makaledeki adımları tamamlayabilmeniz için şu önkoşullar gereklidir:

  • Şirket içi sunucuya veya dosya olarak dışarı aktarılan sertifikaya erişimi olan başka bir bilgisayara yüklenmiş Pvk2Pfx komut satırı aracı. Pvk2Pfx aracı, bağımsız bir komut satırı ortamı olan Enterprise Windows Driver Kit'in bir parçasıdır.
  • Windows PowerShell sürüm 5.0 veya üstü yüklenmiş olmalıdır.

Aşağıdakilere sahip olduğunuzdan emin olun:

Not

Bu makalede, Azure ile etkileşim için önerilen PowerShell modülü olan Azure Az PowerShell modülü kullanılır. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Önemli

PowerShell Azure Resource Manager modülü Azure SQL Yönetilen Örneği tarafından hala desteklenmektedir, ancak gelecekteki tüm geliştirmeler Az.Sql modülüne yöneliktir. Bu cmdlet'ler için bkz . AzureRM.Sql. Az modülündeki ve AzureRM modüllerindeki komutların bağımsız değişkenleri önemli ölçüde aynıdır.

Modülü yüklemek/güncelleştirmek için PowerShell'de aşağıdaki komutları çalıştırın:

Install-Module -Name Az.Sql
Update-Module -Name Az.Sql

TDE sertifikasını bir .pfx dosyasına dışarı aktarma

Sertifika doğrudan kaynak SQL Server örneğinden veya orada tutulduysa sertifika deposundan dışarı aktarılabilir.

Sertifikayı kaynak SQL Server örneğinden dışarı aktarma

Sertifikayı SQL Server Management Studio ile dışarı aktarmak ve .pfx biçimine dönüştürmek için aşağıdaki adımları kullanın. TDE_Cert ve full_path genel adları, adımlar aracılığıyla sertifika ve dosya adları ve yolları için kullanılır. Bunlar gerçek adlarla değiştirilmelidir.

  1. SSMS'de yeni bir sorgu penceresi açın ve kaynak SQL Server örneğine bağlanın.

  2. TDE korumalı veritabanlarını listelemek ve geçirilecek veritabanının şifrelemesini koruyan sertifikanın adını almak için aşağıdaki betiği kullanın:

    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
    

    List of TDE certificates

  3. Sertifikayı, ortak ve özel anahtar bilgilerinin tutulduğu dosya çiftine (.cer ve .pvk) dışarı aktarmak için şu betiği yürütün:

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

    Backup TDE certificate

  4. Pvk2Pfx aracını kullanarak yeni oluşturulan bir dosya çiftinden .pfx dosyasına sertifika bilgilerini kopyalamak için PowerShell konsolunu kullanın:

    .\pvk2pfx -pvk c:/full_path/TDE_Cert.pvk  -pi "<SomeStrongPassword>" -spc c:/full_path/TDE_Cert.cer -pfx c:/full_path/TDE_Cert.pfx
    

Sertifikayı bir sertifika deposundan dışarı aktarma

Sertifika SQL Server yerel makine sertifika deposunda tutulursa, aşağıdaki adımlar kullanılarak dışarı aktarılabilir:

  1. PowerShell konsolunu açın ve Aşağıdaki komutu yürüterek Microsoft Yönetim Konsolu'nun Sertifikalar ek bileşenini açın:

    certlm
    
  2. Sertifikalar MMC ek bileşeninde, sertifika listesini görmek için Kişisel > Sertifikalar yolunu genişletin.

  3. Sertifikaya sağ tıklayın ve Dışarı Aktar'a tıklayın.

  4. Sertifikayı ve özel anahtarı .pfx biçiminde dışarı aktarmak için sihirbazı izleyin.

Azure PowerShell cmdlet'ini kullanarak sertifikayı Azure SQL Yönetilen Örneği yükleme

  1. PowerShell’deki hazırlık adımlarını başlatın:

    # 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. Tüm hazırlık adımları tamamlandıktan sonra aşağıdaki komutları çalıştırarak base-64 kodlanmış sertifikayı hedef yönetilen örneğe yükleyin:

    # 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
    

Sertifika artık belirtilen yönetilen örnek tarafından kullanılabilir ve karşılık gelen TDE korumalı veritabanının yedeklemesi başarıyla geri yüklenebilir.

Not

Karşıya yüklenen sertifika sys.certificates katalog görünümünde görünmez. Sertifikanın başarıyla karşıya yüklendiğini onaylamak için RESTORE FILELISTONLY komutunu çalıştırabilirsiniz.

Sonraki adımlar

Bu makalede, Saydam Veri Şifrelemesi olan bir veritabanının şifreleme anahtarını koruyan sertifikayı şirket içi veya IaaS SQL Server örneğinden Azure SQL Yönetilen Örneği geçirmeyi öğrendiniz.

Veritabanı yedeğini Azure SQL Yönetilen Örneği geri yüklemeyi öğrenmek için bkz. Veritabanı yedeğini Azure SQL Yönetilen Örneği geri yükleme.