Memecahkan masalah umum untuk Always Encrypted dengan enclave aman

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

Artikel ini menjelaskan cara mengidentifikasi dan mengatasi masalah umum yang mungkin Anda temukan saat menjalankan pernyataan Transact-SQL (TSQL) menggunakan Always Encrypted dengan enklave aman.

Untuk informasi tentang cara menjalankan kueri menggunakan enklave aman, lihat Menjalankan pernyataan Transact-SQL menggunakan enklave aman.

Kesalahan koneksi database

Untuk menjalankan pernyataan menggunakan enklave aman, Anda perlu mengaktifkan Always Encrypted, menentukan protokol pengesahan dan, jika berlaku, URL pengesahan, untuk koneksi database, seperti yang dijelaskan dalam Prasyarat untuk menjalankan pernyataan menggunakan enklave aman. Namun, koneksi Anda akan gagal jika Anda menentukan protokol pengesahan tetapi Azure SQL Database atau instans SQL Server target Anda tidak mendukung enklave aman, atau salah dikonfigurasi.

Kesalahan pengesahan saat menggunakan Microsoft Azure Attestation

Catatan

Bagian ini hanya berlaku untuk Azure SQL Database dengan enklave Intel SGX.

Sebelum driver klien mengirimkan pernyataan T-SQL ke server logis Azure SQL untuk dieksekusi, driver memicu alur kerja pengesahan enclave berikut menggunakan Microsoft Azure Attestation.

  1. Driver klien meneruskan URL pengesahan yang ditentukan dalam koneksi database ke server logis Azure SQL.
  2. Server logis Azure SQL mengumpulkan bukti tentang enclave, lingkungan hostingnya, dan kode yang berjalan di dalam enclave. Server kemudian mengirimkan permintaan pengesahan ke penyedia pengesahan, yang direferensikan di URL pengesahan.
  3. Penyedia pengesahan memvalidasi bukti terhadap kebijakan yang dikonfigurasi dan mengeluarkan token pengesahan ke server logis Azure SQL. Penyedia pengesahan menandatangani token pengesahan dengan kunci pribadinya.
  4. Server logis Azure SQL mengirimkan token pengesahan ke driver klien.
  5. Klien menghubungi penyedia pengesahan di URL pengesahan yang ditentukan untuk mengambil kunci publiknya dan memverifikasi tanda tangan dalam token pengesahan.

Kesalahan dapat terjadi pada berbagai langkah alur kerja di atas karena kesalahan konfigurasi. Berikut adalah kesalahan pengesahan umum, akar penyebabnya, dan langkah-langkah pemecahan masalah yang direkomendasikan:

  • Server logika Azure SQL Anda tidak dapat terhubung ke penyedia pengesahan di Azure Attestation (langkah 2 dari alur kerja di atas), yang ditentukan dalam URL pengesahan. Kemungkinan penyebabnya meliputi:
    • URL pengesahan salah atau tidak lengkap. Untuk informasi selengkapnya, lihat Menentukan URL pengesahan untuk kebijakan pengesahan Anda.
    • Penyedia pengesahan telah dihapus secara tidak sengaja.
    • Firewall dikonfigurasi untuk penyedia pengesahan, tetapi tidak memperbolehkan akses ke layanan Microsoft.
    • Galat jaringan terputus-terputus menyebabkan penyedia pengesahan tidak tersedia.
  • Server logis Azure SQL Anda tidak berwenang untuk mengirim permintaan pengesahan ke penyedia pengesahan. Pastikan administrator penyedia pengesahan Anda telah menambahkan server database ke peran Pembaca Pengesahan.
  • Validasi kebijakan pengesahan gagal (pada langkah 3 dari alur kerja di atas).
    • Kebijakan pengesahan yang salah adalah akar kemungkinan penyebabnya. Pastikan Anda menggunakan kebijakan yang direkomendasikan Microsoft. Untuk informasi selengkapnya, lihat Membuat dan mengonfigurasi penyedia pengesahan.
    • Validasi kebijakan mungkin juga gagal sebagai akibat dari pelanggaran keamanan yang mengorbankan enklave sisi server.
  • Aplikasi klien Anda tidak dapat terhubung ke penyedia pengesahan dan mengambil kunci penandatanganan publik (di langkah 5). Kemungkinan penyebabnya meliputi:
    • Konfigurasi firewall antara aplikasi Anda dan penyedia pengesahan dapat memblokir koneksi. Untuk memecahkan masalah koneksi yang diblokir, verifikasi bahwa Anda dapat tersambung ke titik akhir OpenId penyedia pengesahan Anda. Misalnya, gunakan browser web dari komputer yang menghosting aplikasi Anda untuk melihat apakah Anda dapat terhubung ke titik akhir OpenID. Untuk informasi selengkapnya, lihat Konfigurasi Metadata - Dapatkan.

Kesalahan pengesahan saat menggunakan Host Guardian Service

Catatan

Bagian ini hanya berlaku untuk SQL Server 2019 (15.x) dan yang lebih baru.

Sebelum driver klien mengirimkan pernyataan T-SQL ke SQL Server untuk dieksekusi, driver memicu alur kerja pengesahan enklave berikut menggunakan Host Guardian Service (HGS).

  1. Driver klien memanggil SQL Server untuk memulai pengesahan.
  2. SQL Server mengumpulkan bukti tentang enklavenya, lingkungan hostingnya, dan kode yang berjalan di dalam enklave. SQL Server meminta sertifikat kesehatan dari instans HGS, mesin yang menghosting SQL Server terdaftar. Untuk informasi selengkapnya, lihat Mendaftarkan komputer dengan Host Guardian Service.
  3. HGS memvalidasi bukti dan menerbitkan sertifikat kesehatan ke SQL Server. HGS menandatangani sertifikat kesehatan dengan kunci privatnya.
  4. SQL Server mengirimkan sertifikat kesehatan ke driver klien.
  5. Driver klien menghubungi HGS di URL pengesahan, yang ditentukan untuk koneksi database, untuk mengambil kunci publik HGS. Driver klien memverifikasi tanda tangan dalam sertifikat kesehatan.

Kesalahan dapat terjadi pada berbagai langkah dalam alur kerja di atas karena kesalahan konfigurasi. Berikut adalah beberapa kesalahan pengesahan umum, akar penyebabnya, dan langkah-langkah pemecahan masalah yang direkomendasikan:

  • SQL Server tidak dapat tersambung ke HGS (langkah 2 dari alur kerja di atas), karena kesalahan jaringan terputus-putus. Untuk memecahkan masalah koneksi, administrator komputer SQL Server harus memverifikasi komputer dapat terhubung ke komputer HGS.
  • Validasi di langkah 3 gagal. Untuk memecahkan masalah validasi:
    • Administrator komputer SQL Server harus bekerja dengan administrator aplikasi klien untuk memverifikasi komputer SQL Server terdaftar dengan instans HGS yang sama dengan instans yang direferensikan dalam URL pengesahan di sisi klien.
    • Administrator komputer SQL Server harus mengonfirmasi komputer SQL Server dapat berhasil membuktikan, dengan mengikuti instruksi di Langkah 5: Konfirmasikan bahwa host dapat berhasil membuktikannya.
  • Aplikasi klien Anda tidak dapat terhubung ke HGS dan mengambil kunci penandatanganan publiknya (di langkah 5). Kemungkinan penyebabnya adalah:
    • Konfigurasi salah satu firewall antara aplikasi Anda dan penyedia pengesahan dapat memblokir koneksi. Verifikasi bahwa mesin yang menghosting aplikasi Anda dapat terhubung ke komputer HGS.

Kesalahan enkripsi di tempat

Bagian ini mencantumkan kesalahan umum yang mungkin Anda temui saat menggunakan ALTER TABLE/ALTER COLUMN untuk enkripsi di tempat (selain kesalahan pengesahan yang dijelaskan di bagian sebelumnya). Untuk informasi selengkapnya, lihat Mengonfigurasi enkripsi kolom di tempat menggunakan Always Encrypted dengan enklave aman.

  • Kunci enkripsi kolom yang coba Anda gunakan untuk mengenkripsi, mendekripsi, atau mengenkripsi ulang data bukanlah kunci yang diaktifkan enklave. Untuk informasi selengkapnya tentang prasyarat untuk enkripsi di tempat, lihat Prasyarat. Untuk informasi tentang cara memprovisikan kunci yang diaktifkan enklave, lihat Memprovisikan kunci yang diaktifkan enklave.
  • Anda belum mengaktifkan komputasi Always Encrypted dan enklave untuk koneksi database. Lihat Prasyarat untuk menjalankan pernyataan menggunakan enklave aman.
  • Pernyataan Anda ALTER TABLE/ALTER COLUMN memicu operasi kriptografi dan mengubah jenis data kolom atau mengatur kolase dengan halaman kode yang berbeda dari halaman kode kolase saat ini. Menggabungkan operasi kriptografi dengan jenis data atau perubahan halaman kolatasi tidak diperbolehkan. Untuk mengatasi masalah, gunakan pernyataan terpisah; satu pernyataan untuk mengubah jenis data atau halaman kode kolase dan pernyataan lain untuk enkripsi di tempat.

Kesalahan saat menjalankan kueri DML rahasia menggunakan enklave aman

Bagian ini mencantumkan kesalahan umum yang mungkin Anda temui saat menjalankan kueri DML rahasia menggunakan enklave aman (selain kesalahan pengesahan yang dijelaskan di bagian sebelumnya).

Langkah berikutnya

Baca juga