Enkripsi cadangan

Berlaku untuk:SQL Server

Artikel ini menyediakan gambaran umum opsi enkripsi untuk cadangan SQL Server. Ini termasuk detail penggunaan, manfaat, dan praktik yang direkomendasikan untuk mengenkripsi selama pencadangan.

Gambaran Umum

Mulai SQL Server 2014 (12.x), SQL Server memiliki kemampuan untuk mengenkripsi data saat membuat cadangan. Dengan menentukan algoritma enkripsi dan enkripsi (Sertifikat atau Kunci Asimetris) saat membuat cadangan, Anda dapat membuat file cadangan terenkripsi. Semua tujuan penyimpanan: penyimpanan lokal dan Azure didukung. Selain itu, opsi enkripsi dapat dikonfigurasi untuk pencadangan terkelola SQL Server ke operasi Microsoft Azure, fitur baru yang diperkenalkan di SQL Server 2014 (12.x).

Untuk mengenkripsi selama pencadangan, Anda harus menentukan algoritma enkripsi, dan enkripsi untuk mengamankan kunci enkripsi. Berikut ini adalah opsi enkripsi yang didukung:

  • Algoritma Enkripsi: Algoritma enkripsi yang didukung adalah: AES 128, AES 192, AES 256, dan Triple DES

  • Enkripsi: Sertifikat atau Kunci asimetris

Perhatian

Sangat penting untuk mencadangkan sertifikat atau kunci asimetris, dan sebaiknya ke lokasi yang berbeda dari file cadangan yang digunakan untuk mengenkripsi. Tanpa sertifikat atau kunci asimetris, Anda tidak dapat memulihkan cadangan, merender file cadangan tidak dapat digunakan. Sertifikat yang disimpan dalam database sistem mandiri juga harus dicadangkan.

Memulihkan cadangan terenkripsi: Pemulihan SQL Server tidak memerlukan parameter enkripsi apa pun untuk ditentukan selama pemulihan. Ini memang mengharuskan sertifikat atau kunci asimetris yang digunakan untuk mengenkripsi file cadangan tersedia pada instans yang Anda pulihkan. Akun pengguna yang melakukan pemulihan harus memiliki VIEW DEFINITION izin pada sertifikat atau kunci. Jika Anda memulihkan cadangan terenkripsi ke instans yang berbeda, Anda harus memastikan bahwa sertifikat tersedia pada instans tersebut.
Urutan untuk memulihkan database terenkripsi ke lokasi baru adalah:

  1. SERTIFIKAT CADANGAN (Transact-SQL) di database lama
  2. CREATE MASTER KEY (Transact-SQL) di database lokasi master baru
  3. CREATE CERTIFICATE (Transact-SQL) dari sertifikat cadangan database lama yang diimpor ke lokasi di server baru
  4. Memulihkan database ke lokasi baru (SQL Server)

Jika Anda memulihkan cadangan dari database terenkripsi TDE, sertifikat TDE harus tersedia pada instans yang Anda pulihkan. Untuk informasi selengkapnya, lihat Memindahkan database yang dilindungi TDE ke SQL Server lain.

Keuntungan

  1. Mengenkripsi cadangan database membantu mengamankan data: SQL Server menyediakan opsi untuk mengenkripsi data cadangan saat membuat cadangan.

  2. Enkripsi juga dapat digunakan untuk database yang dienkripsi menggunakan TDE.

  3. Enkripsi didukung untuk pencadangan yang dilakukan oleh cadangan terkelola SQL Server ke Microsoft Azure, yang menyediakan keamanan tambahan untuk cadangan di luar situs.

  4. Fitur ini mendukung beberapa algoritma enkripsi hingga AES 256 bit. Ini memberi Anda opsi untuk memilih algoritma yang selaras dengan kebutuhan Anda.

  5. Anda dapat mengintegrasikan kunci enkripsi dengan penyedia Extensible Key Management (EKM).

Prasyarat

Berikut ini adalah prasyarat untuk mengenkripsi cadangan:

  1. Buat kunci master database untuk master database: Kunci master database (DMK) adalah kunci konten yang digunakan untuk melindungi kunci privat sertifikat dan kunci asimetris yang ada dalam database. Untuk informasi selengkapnya, lihat SQL Server dan Kunci Enkripsi Database (Mesin Database).

  2. Buat sertifikat atau kunci asimetris untuk digunakan untuk enkripsi cadangan. Untuk informasi selengkapnya tentang membuat sertifikat, lihat MEMBUAT SERTIFIKAT (Transact-SQL). Untuk informasi selengkapnya tentang membuat kunci asimetris, lihat MEMBUAT ASYMMETRIC KEY (Transact-SQL).

    Penting

    Hanya kunci asimetris yang berada di Extensible Key Management (EKM) yang didukung.

Batasan

Berikut ini adalah batasan yang berlaku untuk opsi enkripsi:

  • Jika Anda menggunakan kunci asimetris untuk mengenkripsi data cadangan, hanya kunci asimetris yang berada di penyedia EKM yang didukung.

  • SQL Server Express dan SQL Server Web tidak mendukung enkripsi selama pencadangan. Namun memulihkan dari cadangan terenkripsi ke instans SQL Server Express atau SQL Server Web didukung.

  • Versi SQL Server sebelumnya tidak dapat membaca cadangan terenkripsi.

  • Menambahkan ke opsi set cadangan yang ada tidak didukung untuk cadangan terenkripsi.

Izin

Akun yang melakukan operasi pencadangan pada database terenkripsi memerlukan izin tertentu.

  • db_backupoperator peran tingkat database pada database yang sedang dicadangkan. Ini diperlukan terlepas dari enkripsi.

  • VIEW DEFINITION izin pada sertifikat dalam master database.

    Contoh berikut memberikan izin yang sesuai untuk sertifikat.

    USE [master]
    GO
    GRANT VIEW DEFINITION ON CERTIFICATE::[<SERVER_CERT>] TO [<db_account>]
    GO
    

Catatan

Akses ke sertifikat TDE tidak diperlukan untuk mencadangkan atau memulihkan database yang dilindungi TDE.

Metode enkripsi cadangan

Bagian berikut memberikan pengenalan singkat untuk langkah-langkah mengenkripsi data selama pencadangan. Untuk panduan lengkap tentang berbagai langkah mengenkripsi cadangan Anda menggunakan Transact-SQL, lihat Membuat Cadangan Terenkripsi.

Menggunakan SQL Server Management Studio

Anda bisa mengenkripsi cadangan saat membuat cadangan database dalam salah satu kotak dialog berikut:

  1. Mencadangkan Database (Halaman Opsi Cadangan) Pada halaman Opsi Cadangan, Anda dapat memilih Enkripsi, dan menentukan algoritma enkripsi dan sertifikat atau kunci asimetris yang akan digunakan untuk enkripsi.

  2. Menggunakan Wizard Rencana Pemeliharaan Saat Anda memilih tugas pencadangan, pada tab Opsi dari halaman Tentukan Pencadangan ()Tugas , Anda dapat memilih Enkripsi Cadangan, dan menentukan algoritma enkripsi dan sertifikat atau kunci yang akan digunakan untuk enkripsi.

Menggunakan Transact-SQL

Berikut ini adalah contoh pernyataan Transact-SQL untuk mengenkripsi file cadangan:

BACKUP DATABASE [MYTestDB]
TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\MyTestDB.bak'
WITH
  COMPRESSION,
  ENCRYPTION
   (
   ALGORITHM = AES_256,
   SERVER CERTIFICATE = BackupEncryptCert
   ),
  STATS = 10
GO

Untuk sintaks pernyataan Transact-SQL lengkap, lihat BACKUP (Transact-SQL).

Menggunakan PowerShell

Contoh ini membuat opsi enkripsi dan menggunakannya sebagai nilai parameter dalam Backup-SqlDatabase cmdlet untuk membuat cadangan terenkripsi.

$encryptionOption = New-SqlBackupEncryptionOption -Algorithm Aes256 -EncryptorType ServerCertificate -EncryptorName "BackupCert"

Backup-SqlDatabase -ServerInstance . -Database "<myDatabase>" -BackupFile "<myDatabase>.bak" -CompressionOption On -EncryptionOption $encryptionOption

Buat cadangan sertifikat enkripsi dan kunci ke lokasi selain komputer lokal Tempat instans diinstal. Untuk memperhitungkan skenario pemulihan bencana, pertimbangkan untuk menyimpan cadangan sertifikat atau kunci ke lokasi di luar situs. Anda tidak dapat memulihkan cadangan terenkripsi tanpa sertifikat yang digunakan untuk mengenkripsi cadangan.

Untuk memulihkan cadangan terenkripsi, sertifikat asli yang digunakan saat cadangan diambil dengan thumbprint yang cocok harus tersedia pada instans yang Anda pulihkan. Oleh karena itu, sertifikat tidak boleh diperpanjang pada kedaluwarsa atau diubah dengan cara apa pun. Perpanjangan dapat mengakibatkan pembaruan sertifikat yang memicu perubahan thumbprint, oleh karena itu membuat sertifikat tidak valid untuk file cadangan. Akun yang melakukan pemulihan harus memiliki izin VIEW DEFINITION pada sertifikat atau kunci asimetris yang digunakan untuk mengenkripsi selama pencadangan.

Pencadangan database Grup Ketersediaan biasanya dilakukan pada replika cadangan pilihan. Jika Anda memulihkan cadangan pada replika selain dari tempat cadangan diambil, pastikan bahwa sertifikat asli yang digunakan untuk pencadangan tersedia pada replika yang Anda pulihkan.

Jika database diaktifkan TDE, pilih sertifikat atau kunci asimetris yang berbeda untuk mengenkripsi database dan cadangan untuk meningkatkan keamanan.