Melakukan migrasi sertifikat database yang dilindungi TDE ke Azure SQL Managed Instance
Berlaku untuk: Azure SQL Managed Instance
Saat Anda memigrasikan database yang dilindungi oleh Transparent Data Encryption (TDE) ke Azure SQL Managed Instance menggunakan opsi pemulihan asli, sertifikat yang sesuai dari instans SQL Server perlu dimigrasikan sebelum pemulihan database. Artikel ini memandu Anda melalui proses migrasi manual sertifikat ke Azure SQL Managed Instance:
- Mengekspor sertifikat ke file Pertukaran Informasi Pribadi (.pfx)
- Mengekstrak sertifikat dari file ke string dasar-64
- Mengunggahnya menggunakan cmdlet PowerShell
Untuk opsi alternatif menggunakan layanan terkelola penuh untuk migrasi mulus database yang dilindungi TDE dan sertifikat terkait, lihat Cara memigrasikan database lokal Anda ke Azure SQL Managed Instance menggunakan Azure Database Migration Service.
Penting
Sertifikat yang dimigrasikan digunakan untuk memulihkan database yang dilindungi TDE saja. Segera setelah pemulihan selesai, sertifikat yang dimigrasikan akan digantikan oleh pelindung yang berbeda, baik sertifikat yang dikelola layanan atau kunci asimetris dari key vault, tergantung pada jenis TDE yang Anda tetapkan pada instans.
Prasyarat
Untuk menyelesaikan langkah-langkah dalam artikel ini, Anda memerlukan prasyarat berikut:
- Alat baris perintah Pvk2Pfx diinstal pada server lokal atau komputer lain dengan akses ke sertifikat yang diekspor sebagai file. Alat Pvk2Pfx adalah bagian dari Enterprise Windows Driver Kit, lingkungan baris perintah mandiri.
- Windows PowerShell versi 5.0 atau lebih tinggi terinstal.
Pastikan Anda mengaktifkan tindakan berikut:
- Modul Azure PowerShell diinstal dan diperbarui.
- Modul Az.Sql.
Catatan
Artikel ini menggunakan modul Azure Az PowerShell, yang merupakan modul PowerShell yang direkomendasikan untuk berinteraksi dengan Azure. Untuk mulai menggunakan modul Az PowerShell, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
Penting
Modul PowerShell Azure Resource Manager masih didukung oleh Azure SQL Managed Instance, tetapi semua pengembangan di masa mendatang adalah untuk modul Az.Sql. Untuk cmdlet ini, lihat AzureRM.Sql. Argumen untuk perintah dalam modul Az dan dalam modul AzureRM secara substansial identik.
Jalankan perintah berikut di PowerShell untuk menginstal/memperbarui modul:
Install-Module -Name Az.Sql
Update-Module -Name Az.Sql
Mengekspor sertifikat TDE ke file .pfx
Sertifikat dapat diekspor langsung dari sumber SQL Server instance, atau dari penyimpanan sertifikat jika disimpan di sana.
Mengekspor sertifikat dari contoh SQL Server instance
Gunakan langkah-langkah berikut untuk mengekspor sertifikat dengan SQL Server Management Studio dan mengonversinya menjadi format .pfx. Nama generik TDE_Cert dan full_path digunakan untuk sertifikat dan nama file dan jalur melalui tahapan. Mereka harus diganti dengan nama yang sebenarnya.
Di SSMS, buka jendela kueri baru dan sambungkan ke sumber SQL Server instance.
Gunakan skrip berikut ini untuk mencantumkan database yang dilindungi TDE dan dapatkan nama sertifikat yang melindungi enkripsi database untuk dimigrasikan:
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
Jalankan skrip berikut untuk mengekspor sertifikat ke sepasang file (.cer dan .pvk), menyimpan informasi kunci publik dan privat:
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>' )
Gunakan konsol PowerShell untuk menyalin informasi sertifikat dari sepasang file yang baru dibuat ke file .pfx, menggunakan alat 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
Mengekspor sertifikat dari penyimpanan sertifikat
Jika sertifikat disimpan di penyimpanan sertifikat mesin lokal SQL Server, sertifikat dapat diekspor menggunakan langkah-langkah berikut:
Buka konsol PowerShell dan jalankan perintah berikut untuk membuka snap-in Sertifikat Konsol Manajemen Microsoft:
certlm
Dalam snap-in Sertifikat MMC, perluas jalur Personal > Sertifikat untuk melihat daftar sertifikat.
Klik kanan sertifikat dan klik Ekspor.
Ikuti panduan untuk mengekspor sertifikat dan kunci privat ke format .pfx.
Unggah sertifikat ke Azure SQL Managed Instance menggunakan cmdlet Azure PowerShell
Mulai dengan langkah-langkah persiapan di 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>
Setelah semua langkah persiapan selesai, jalankan perintah berikut untuk mengunggah sertifikat dasar-64 yang dikodekan ke instans terkelola target:
# 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
Sertifikat sekarang tersedia untuk instans terkelola yang ditentukan, dan cadangan database yang dilindungi TDE yang sesuai berhasil dipulihkan.
Catatan
Sertifikat yang diunggah tidak terlihat dalam tampilan katalog sys.certificates. Untuk mengonfirmasi keberhasilan pengunggahan sertifikat, Anda dapat menjalankan perintah RESTORE FILELISTONLY .
Langkah berikutnya
Dalam artikel ini, Anda mempelajari cara memigrasikan sertifikat yang melindungi kunci enkripsi database dengan Transparent Data Encryption, dari instans di tempat atau IaaS SQL Server ke Azure SQL Managed Instance.
Lihat Memulihkan cadangan database ke Azure SQL Managed Instance untuk mempelajari cara memulihkan cadangan database ke Azure SQL Managed Instance.