Aktifkan Always Encrypted dengan enklave aman untuk kolom terenkripsi yang sudah ada

Berlaku untuk: SQL Server 2019 (15.x) dan yang lebih baru - Hanya Windows Azure SQL Database

Artikel ini menjelaskan cara membuka kunci fungsionalitas Always Encrypted dengan enklave aman, dan mengaktifkan komputasi enklave untuk kolom terenkripsi yang ada.

Jika Anda memiliki kolom yang sudah ada yang dienkripsi dengan kunci yang tidak diaktifkan enklave, Anda dapat membuat kolom yang dienkripsi dengan kunci berkemampuan enklave. Melakukannya akan memungkinkan Anda menggunakan enklave aman dalam kueri pada kolom Anda.

Anda dapat mengaktifkan komputasi enklave untuk kolom terenkripsi yang ada dengan beberapa cara berbeda, tergantung pada:

  • Cakupan/granularitas: Ingin mengaktifkan fungsionalitas enklave untuk subset kolom, atau untuk semua kolom yang dilindungi dengan kunci master kolom tertentu?
  • Ukuran data: Berapa ukuran tabel yang berisi kolom yang ingin Anda jadikan berkemampuan enklave?
  • Apakah Anda juga ingin mengubah jenis enkripsi untuk kolom Anda? Ingat bahwa hanya enkripsi acak yang mendukung komputasi yang kaya (pencocokan pola, operator perbandingan). Jika kolom Anda dienkripsi menggunakan enkripsi deterministik, Anda juga harus mengenkripsi ulang dengan enkripsi acak untuk membuka komputasi yang kaya.

Bagian berikut menjelaskan tiga pendekatan untuk mengaktifkan enklave untuk kolom yang ada.

Metode 1: Putar kunci master kolom untuk menggantinya dengan kunci master kolom yang diaktifkan enklave

Mengganti kunci master kolom yang ada (yang tidak diaktifkan enklave) dengan kunci master kolom baru yang diaktifkan enklave secara efektif membuat semua kunci enkripsi kolom (terkait dengan kunci master kolom) juga diaktifkan enklave.

  • Pro:

    • Tidak melibatkan enkripsi ulang data, jadi biasanya pendekatan tercepat. Ini adalah pendekatan yang direkomendasikan untuk kolom yang berisi data dalam jumlah besar, yang sudah diaktifkan untuk komputasi yang kaya, dan menggunakan enkripsi deterministik.
    • Dapat mengaktifkan fungsionalitas enklave untuk beberapa kolom dalam skala besar. Mengganti kunci master kolom dengan kunci master kolom yang diaktifkan enklave membuat semua kunci enkripsi kolom dan semua kolom terenkripsi yang terkait dengan kunci master kolom asli, yang diaktifkan enklave.
  • Kontra:

    • Tidak mendukung perubahan jenis enkripsi dari deterministik ke acak. Meskipun membuka kunci enkripsi di tempat untuk kolom yang dienkripsi menggunakan enkripsi deterministik, itu tidak memungkinkan komputasi yang kaya. Anda harus mengenkripsi ulang kolom menggunakan enkripsi acak.
    • Tidak memungkinkan Anda mengonversi beberapa kolom yang terkait dengan kunci master kolom tertentu secara selektif.
    • Memperkenalkan overhead manajemen kunci. Anda harus membuat kunci master kolom baru dan membuatnya tersedia untuk aplikasi yang mengkueri kolom yang terkena dampak.

Untuk informasi tentang cara memutar kunci master kolom, lihat Memutar kunci yang diaktifkan enklave.

Metode 2: Putar kunci master kolom dan enkripsi ulang kolom menggunakan enkripsi acak di tempat

Metode ini melibatkan eksekusi Metode 1 sebagai langkah pertama, lalu mengenkripsi ulang kolom. Kolom dimulai menggunakan enkripsi deterministik, lalu dienkripsi ulang dengan enkripsi acak untuk membuka kunci kueri yang kaya.

  • Pro:

    • Mengenkripsi ulang data di tempat. Ini adalah metode yang direkomendasikan jika Anda perlu mengaktifkan kueri kaya untuk kolom terenkripsi yang saat ini menggunakan enkripsi deterministik dan berisi data dalam jumlah besar. Langkah 1 (rotasi kunci master kolom) membuka enkripsi di tempat untuk kolom menggunakan enkripsi deterministik, dan langkah 2 (mengenkripsi ulang kolom) dapat dilakukan di tempat.
    • Dapat mengaktifkan fungsionalitas enklave untuk beberapa kolom dalam skala besar.
  • Kontra:

    • Tidak memungkinkan Anda mengonversi beberapa kolom yang terkait dengan kunci master kolom tertentu secara selektif.
    • Ini memperkenalkan overhead manajemen kunci. Anda harus membuat kunci master kolom baru dan membuatnya tersedia untuk aplikasi yang mengkueri kolom yang terkena dampak.

Untuk informasi tentang cara memutar kunci master kolom dan mengenkripsi ulang kolom di tempat untuk memutar kunci enkripsi kolom, lihat Memutar kunci yang diaktifkan enklave.

Metode 3: Mengenkripsi ulang kolom yang dipilih dengan kunci enkripsi kolom yang diaktifkan enklave di sisi klien

Metode ini melibatkan enkripsi ulang kolom dengan kunci enkripsi kolom yang diaktifkan enklave, mengaktifkan kueri kaya dengan enkripsi acak. Karena kunci enkripsi kolom saat ini tidak diaktifkan enklave, Anda tidak dapat mengenkripsi ulang kolom di tempat. Gunakan wizard Always Encrypted atau cmdlet Set-SqlColumnEncryption untuk mengenkripsi ulang kolom database.

  • Pro:

    • Memungkinkan Anda mengaktifkan fungsionalitas enklave secara selektif (enkripsi di tempat dan kueri kaya, jika Anda mengenkripsi ulang kolom dengan enkripsi acak) untuk satu kolom atau subset kecil kolom.
    • Ini dapat mengaktifkan komputasi yang kaya untuk kolom dalam satu langkah.
  • Kontra:

    • Untuk mengenkripsi ulang data, alat akan memindahkannya keluar dari database, yang dapat memakan waktu lama dan rentan terhadap kesalahan jaringan.
    • Ini memperkenalkan overhead manajemen kunci. Anda harus membuat kunci master kolom baru dan membuatnya tersedia untuk aplikasi yang mengkueri kolom yang terkena dampak.

Untuk informasi selengkapnya tentang cara memutar enkripsi kolom melalui alat sisi klien, lihat Memutar kunci Always Encrypted menggunakan SQL Server Management Studio dan Memutar kunci Always Encrypted menggunakan PowerShell.

Langkah berikutnya