Putar kunci Always Encrypted menggunakan SQL Server Management Studio

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Artikel ini menjelaskan tugas untuk memutar kunci master kolom Always Encrypted dan kunci enkripsi kolom dengan SQL Server Management Studio (SSMS).

Untuk gambaran umum manajemen kunci Always Encrypted, termasuk rekomendasi praktik terbaik dan pertimbangan keamanan penting, lihat Gambaran Umum manajemen kunci untuk Always Encrypted.

Catatan

Menggunakan kunci master kolom yang disimpan di HSM terkelola di Azure Key Vault memerlukan SSMS 18.9 atau versi yang lebih baru.

Memutar Kunci Master Kolom

Rotasi kunci master kolom adalah proses mengganti kunci master kolom yang ada dengan kunci master kolom baru. Anda mungkin perlu memutar kunci jika telah disusupi, atau untuk mematuhi kebijakan organisasi Anda atau peraturan kepatuhan yang mengamanatkan kunci kriptografi harus diputar secara teratur. Rotasi kunci master kolom melibatkan dekripsi kunci enkripsi kolom yang dilindungi dengan kunci master kolom saat ini, mengenkripsi ulang menggunakan kunci master kolom baru, dan memperbarui metadata kunci.

Langkah 1: Memprovisikan kunci master kolom baru

Ikuti langkah-langkah dalam Memprovisikan Kunci Master Kolom dengan Dialog Kunci Master Kolom Baru.

Langkah 2: Mengenkripsi kunci enkripsi kolom dengan kunci master kolom baru

Kunci master kolom biasanya melindungi satu atau beberapa kunci enkripsi kolom. Setiap kunci enkripsi kolom memiliki nilai terenkripsi yang disimpan dalam database, yaitu produk mengenkripsi kunci enkripsi kolom dengan kunci master kolom. Dalam langkah ini, enkripsi setiap kunci enkripsi kolom yang dilindungi dengan kunci master kolom yang Anda putar, dengan kunci master kolom baru, dan simpan nilai terenkripsi baru dalam database. Akibatnya, setiap kunci enkripsi kolom yang terpengaruh oleh rotasi akan memiliki dua nilai terenkripsi: satu nilai dienkripsi dengan kunci master kolom yang ada, dan nilai baru yang dienkripsi dengan kunci master kolom baru.

  1. Menggunakan Object Explorer, navigasikan ke folder Kunci Master Kolom Kunci>Selalu Dienkripsi Keamanan>dan temukan kunci master kolom yang Anda putar.
  2. Klik kanan pada kunci master kolom dan pilih Putar.
  3. Dalam dialog Rotasi Kunci Master Kolom, pilih nama kunci master kolom baru Anda, yang Anda buat di Langkah 1, di bidang Target.
  4. Tinjau daftar kunci enkripsi kolom, yang dilindungi oleh kunci master kolom yang ada. Kunci ini akan dipengaruhi oleh rotasi.
  5. Klik OK.

SQL Server Management Studio akan mendapatkan metadata kunci enkripsi kolom yang dilindungi dengan kunci master kolom lama, dan metadata kunci master kolom lama dan baru. Kemudian, SSMS akan menggunakan metadata kunci master kolom untuk mengakses penyimpanan kunci yang berisi kunci master kolom lama dan mendekripsi kunci enkripsi kolom. Selanjutnya, SSMS akan mengakses penyimpanan kunci yang menyimpan kunci master kolom baru untuk menghasilkan serangkaian nilai terenkripsi baru dari kunci enkripsi kolom, dan kemudian akan menambahkan nilai baru ke metadata (menghasilkan dan mengeluarkan pernyataan ALTER COLUMN ENCRYPTION KEY (Transact-SQL ).

Catatan

Pastikan setiap kunci enkripsi kolom, dienkripsi dengan kunci master kolom lama, tidak dienkripsi dengan kunci master kolom lainnya. Dengan kata lain, setiap kunci enkripsi kolom, yang terpengaruh oleh rotasi, harus memiliki satu nilai terenkripsi dalam database. Jika ada kunci enkripsi kolom yang terpengaruh memiliki lebih dari satu nilai terenkripsi, Anda perlu menghapus nilai sebelum dapat melanjutkan rotasi (lihat Langkah 4 tentang cara menghapus nilai terenkripsi kunci enkripsi kolom).

Langkah 3: Konfigurasikan aplikasi Anda dengan kunci master kolom baru

Dalam langkah ini, Anda perlu memastikan bahwa semua aplikasi klien Anda yang mengkueri kolom database yang dilindungi dengan kunci master kolom yang Anda putar dapat mengakses kunci master kolom baru (yaitu, kolom database yang dienkripsi dengan kunci enkripsi kolom yang dienkripsi dengan kunci master kolom, sedang diputar). Langkah ini tergantung pada jenis penyimpanan kunci kunci kunci master kolom baru Anda. Contohnya:

  • Jika kunci master kolom baru adalah sertifikat yang disimpan di Penyimpanan Sertifikat Windows, Anda perlu menyebarkan sertifikat ke lokasi penyimpanan sertifikat yang sama (Pengguna Saat Ini atau Komputer lokal) sebagai lokasi yang ditentukan di jalur kunci kunci master kolom Anda dalam database. Aplikasi harus dapat mengakses sertifikat:
    • Jika sertifikat disimpan di lokasi penyimpanan sertifikat Pengguna Saat Ini, sertifikat perlu diimpor ke penyimpanan Pengguna Saat Ini dari identitas Windows aplikasi (pengguna).
    • Jika sertifikat disimpan di lokasi penyimpanan sertifikat komputer lokal, identitas Windows aplikasi harus memiliki izin untuk mengakses sertifikat.
  • Jika kunci master kolom baru disimpan di Microsoft Azure Key Vault, aplikasi harus diimplementasikan sehingga dapat mengautentikasi ke Azure dan memiliki izin untuk mengakses kunci.

Untuk detailnya, lihat Membuat dan menyimpan kunci master kolom untuk Always Encrypted.

Catatan

Pada titik ini dalam rotasi, kunci master kolom lama dan kunci master kolom baru valid dan dapat digunakan untuk mengakses data.

Langkah 4: Bersihkan nilai kunci enkripsi kolom yang dienkripsi dengan kunci master kolom lama

Setelah Mengonfigurasi semua aplikasi untuk menggunakan kunci master kolom baru, hapus nilai kunci enkripsi kolom yang dienkripsi dengan kunci master kolom lama dari database. Menghapus nilai lama akan memastikan Anda siap untuk rotasi berikutnya (ingat, setiap kunci enkripsi kolom, dilindungi dengan kunci master kolom yang akan diputar, harus memiliki satu nilai terenkripsi).

Alasan lain untuk membersihkan nilai lama sebelum mengarsipkan atau menghapus kunci master kolom lama, adalah terkait performa: saat mengkueri kolom terenkripsi, driver klien yang didukung Always Encrypted mungkin perlu mencoba mendekripsi dua nilai: nilai lama dan yang baru. Driver tidak tahu mana dari dua kunci master kolom yang valid di lingkungan aplikasi sehingga driver akan mengambil kedua nilai terenkripsi dari server. Jika mendekripsi salah satu nilai gagal, karena dilindungi dengan kunci master kolom adalah bahwa tidak tersedia (misalnya, kunci master kolom lama yang telah dihapus dari penyimpanan), driver akan mencoba mendekripsi nilai lain menggunakan kunci master kolom baru.

Peringatan

Jika Anda menghapus nilai kunci enkripsi kolom sebelum kunci master kolom yang sesuai telah tersedia untuk aplikasi, aplikasi tidak akan lagi dapat mendekripsi kolom database.

  1. Menggunakan Object Explorer, navigasikan ke folder Kunci Selalu Terenkripsi Keamanan>dan temukan kunci master kolom yang ada yang ingin Anda ganti.
  2. Klik kanan pada kunci master kolom yang ada dan pilih Bersihkan.
  3. Tinjau daftar nilai kunci enkripsi kolom yang akan dihapus.
  4. Klik OK.

SQL Server Management Studio akan mengeluarkan pernyataan ALTER COLUMN ENCRYPTION KEY (Transact-SQL) untuk menghilangkan nilai terenkripsi kunci enkripsi kolom yang dienkripsi dengan kunci master kolom lama.

Langkah 5: Hapus metadata untuk kunci master kolom lama Anda

Jika Anda memilih untuk menghapus definisi kunci master kolom lama dari database, gunakan langkah-langkah di bawah ini.

  1. Menggunakan Object Explorer, navigasikan ke folder Kunci Master Kolom Kunci>Selalu Dienkripsi Keamanan>dan temukan kunci master kolom lama yang akan dihapus dari database.
  2. Klik kanan pada kunci master kolom lama dan pilih Hapus. (Ini akan menghasilkan dan mengeluarkan Pernyataan DROP COLUMN MASTER KEY (Transact-SQL) untuk menghapus metadata kunci master kolom.)
  3. Klik OK.

Catatan

Sangat disarankan agar Anda tidak menghapus kunci master kolom lama secara permanen setelah rotasi. Sebagai gantinya, Anda harus menyimpan kunci master kolom lama di penyimpanan kuncinya saat ini atau mengarsipkannya di tempat aman lainnya. Jika Anda memulihkan database dari file cadangan ke titik waktu sebelum kunci master kolom baru dikonfigurasi, Anda akan memerlukan kunci lama untuk mengakses data.

Izin untuk memutar kunci master kolom

Memutar kunci master kolom memerlukan izin database berikut:

  • UBAH KUNCI MASTER KOLOM APA PUN - diperlukan untuk membuat metadata untuk kunci master kolom baru dan menghapus metadata untuk kunci master kolom lama.
  • UBAH KUNCI ENKRIPSI KOLOM APA PUN - diperlukan untuk mengubah metadata kunci enkripsi kolom (tambahkan nilai terenkripsi baru).

Anda juga memerlukan izin penyimpanan kunci untuk dapat mengakses kunci master kolom lama dan kunci master kolom baru di penyimpanan kunci mereka. Untuk informasi terperinci tentang izin penyimpanan kunci yang diperlukan untuk operasi manajemen kunci, buka Membuat dan menyimpan kunci master kolom untuk Always Encrypted dan temukan bagian yang relevan untuk penyimpanan kunci Anda.

Memutar Kunci Enkripsi Kolom

Memutar kunci enkripsi kolom melibatkan dekripsi data di semua kolom yang dienkripsi dengan kunci yang akan diputar, dan mengenkripsi ulang data menggunakan kunci enkripsi kolom baru.

Catatan

Memutar kunci enkripsi kolom dapat memakan waktu yang sangat lama jika tabel yang berisi kolom yang dienkripsi dengan kunci yang diputar besar. Saat data sedang dienkripsi ulang, aplikasi Anda tidak dapat menulis ke tabel yang terkena dampak. Oleh karena itu, organisasi Anda perlu merencanakan rotasi kunci enkripsi kolom dengan sangat hati-hati. Untuk memutar kunci enkripsi kolom, gunakan Wizard Always Encrypted.

  1. Buka panduan untuk database Anda: klik kanan database Anda, arahkan ke Tugas, lalu klik Enkripsi Kolom.
  2. Tinjau halaman Pengenalan , lalu klik Berikutnya.
  3. Pada halaman Pilihan Kolom, perluas tabel dan temukan semua kolom yang ingin Anda ganti yang saat ini dienkripsi dengan kunci enkripsi kolom lama.
  4. Untuk setiap kolom yang dienkripsi dengan kunci enkripsi kolom lama, atur Kunci Enkripsi ke kunci baru yang dibuat secara otomatis. Catatan: Atau, Anda dapat membuat kunci enkripsi kolom baru sebelum menjalankan wizard - lihat Menyediakan Kunci Enkripsi Kolom dengan Dialog Kunci Enkripsi Kolom Baru.
  5. Pada halaman Konfigurasi Kunci Master, pilih lokasi untuk menyimpan kunci baru, dan pilih sumber kunci master, lalu klik Berikutnya. Catatan: Jika Anda menggunakan kunci enkripsi kolom yang ada (bukan yang dibuat secara otomatis), tidak ada tindakan yang harus dilakukan di halaman ini.
  6. Pada halaman Validasi, pilih apakah akan segera menjalankan skrip atau membuat skrip PowerShell, lalu klik Berikutnya.
  7. Pada halaman Ringkasan , tinjau opsi yang telah Anda pilih, lalu klik Selesai dan tutup panduan setelah selesai.
  8. Menggunakan Object Explorer, navigasikan ke folder Kunci Keamanan/Selalu Terenkripsi/Kunci Enkripsi Kolom dan temukan kunci enkripsi kolom lama Anda, untuk dihapus dari database. Klik kanan pada kunci dan pilih Hapus.

Izin untuk memutar kunci enkripsi kolom

Memutar kunci enkripsi kolom memerlukan izin database berikut: UBAH KUNCI MASTER KOLOM APA PUN - diperlukan jika Anda menggunakan kunci enkripsi kolom baru yang dibuat secara otomatis (kunci master kolom baru dan metadata barunya juga akan dihasilkan). UBAH KUNCI ENKRIPSI KOLOM APA PUN -diperlukan untuk menambahkan metadata untuk kunci enkripsi kolom baru.

Anda juga memerlukan izin penyimpanan kunci untuk dapat mengakses kunci master kolom untuk kunci enkripsi kolom baru dan lama. Untuk informasi terperinci tentang izin penyimpanan kunci yang diperlukan untuk operasi manajemen kunci, buka Membuat dan menyimpan kunci master kolom untuk Always Encrypted dan temukan bagian yang relevan untuk penyimpanan kunci Anda.

Langkah berikutnya

Lihat Juga