Putar SQL Managed Instance yang diaktifkan oleh keytab yang dikelola pelanggan Azure Arc

Artikel ini menjelaskan cara memutar keytabs yang dikelola pelanggan untuk SQL Managed Instance yang diaktifkan oleh Azure Arc. Keytabs ini digunakan untuk mengaktifkan login Direktori Aktif untuk instans terkelola.

Prasyarat:

Sebelum melanjutkan artikel ini, Anda harus memiliki konektor direktori aktif dalam mode keytab yang dikelola pelanggan dan SQL Managed Instance yang diaktifkan oleh Azure Arc yang dibuat.

Cara memutar keytabs yang dikelola pelanggan dalam instans terkelola

Langkah-langkah berikut perlu diikuti untuk memutar tab kunci:

  1. Dapatkan kvno nilai untuk pembuatan kredensial saat ini untuk akun Direktori Aktif SQL MI.
  2. Buat file keytab baru dengan entri untuk pembuatan kredensial saat ini. Secara khusus, kvno nilai harus cocok dari langkah (1.) di atas.
  3. Perbarui file keytab baru dengan entri baru untuk kredensial baru untuk akun Direktori Aktif SQL MI.
  4. Buat rahasia kubernetes yang menyimpan konten file keytab baru di namespace yang sama dengan SQL MI.
  5. Edit spesifikasi SQL MI untuk mengarahkan pengaturan rahasia keytab Direktori Aktif ke rahasia baru ini.
  6. Ubah kata sandi di domain Direktori Aktif.

Kami telah menyediakan skrip PowerShell dan bash berikut yang akan mengurus langkah 1-5 untuk Anda:

  • rotate-sqlmi-keytab.sh - Skrip bash ini menggunakan ktutil atau adutil (jika --use-adutil bendera ditentukan) untuk menghasilkan keytab baru untuk Anda.
  • rotate-sqlmi-keytab.ps1 - Skrip PowerShell ini menggunakan ktpass.exe untuk menghasilkan keytab baru untuk Anda.

Menjalankan skrip di atas akan menghasilkan file keytab berikut untuk pengguna arcsqlmi@CONTOSO.COM, rahasia sqlmi-keytab-secret-kvno-2-3 , dan namespace test:

KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------
   2 02/16/2023 17:12:05 arcsqlmiuser@CONTOSO.COM (aes256-cts-hmac-sha1-96) 
   2 02/16/2023 17:12:05 arcsqlmiuser@CONTOSO.COM (arcfour-hmac) 
   2 02/16/2023 17:12:05 MSSQLSvc/arcsqlmi.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96) 
   2 02/16/2023 17:12:05 MSSQLSvc/arcsqlmi.contoso.com@CONTOSO.COM (arcfour-hmac) 
   2 02/16/2023 17:12:05 MSSQLSvc/arcsqlmi.contoso.com:31433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 
   2 02/16/2023 17:12:05 MSSQLSvc/arcsqlmi.contoso.com:31433@CONTOSO.COM (arcfour-hmac) 
   3 02/16/2023 17:13:41 arcsqlmiuser@CONTOSO.COM (aes256-cts-hmac-sha1-96) 
   3 02/16/2023 17:13:41 arcsqlmiuser@CONTOSO.COM (arcfour-hmac) 
   3 02/16/2023 17:13:41 MSSQLSvc/arcsqlmi.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96) 
   3 02/16/2023 17:13:41 MSSQLSvc/arcsqlmi.contoso.com@CONTOSO.COM (arcfour-hmac) 
   3 02/16/2023 17:13:41 MSSQLSvc/arcsqlmi.contoso.com:31433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 
   3 02/16/2023 17:13:41 MSSQLSvc/arcsqlmi.contoso.com:31433@CONTOSO.COM (arcfour-hmac)

Dan spesifikasi updated-secret.yaml berikut:

apiVersion: v1
kind: Secret
type: Opaque
metadata:
  name: sqlmi-keytab-secret-kvno-2-3
  namespace: test
data:
  keytab:
    <keytab-contents>

Terakhir, ubah kata sandi untuk arcsqlmi akun pengguna di pengontrol domain untuk domain contoso.comDirektori Aktif :

  1. Buka Manajer Server pada pengendali domain untuk domain contoso.comDirektori Aktif . Anda dapat mencari Manajer Server atau membukanya melalui menu Mulai.

  2. Buka Alat>Pengguna Direktori Aktif dan Komputer

    Screenshot of Active Directory Users and Computers.

  3. Pilih pengguna yang ingin Anda ubah kata sandinya. Klik kanan untuk memilih pengguna. Pilih Atur ulang kata sandi:

    Screenshot of the control to reset the password for an Active Directory user account.

  4. Masukkan kata sandi baru dan pilih OK.

Pemecahan masalah kesalahan setelah rotasi

Jika ada kesalahan saat mencoba menggunakan Autentikasi Direktori Aktif setelah menyelesaikan rotasi keytab, file berikut dalam arc-sqlmi kontainer dalam pod SQL MI adalah tempat yang baik untuk mulai menyelidiki akar penyebabnya:

  • security.log file yang terletak di /var/opt/mssql/log - File log ini memiliki log untuk interaksi SQL dengan domain Direktori Aktif.
  • errorlog file yang terletak di /var/opt/mssql/log - File log ini berisi log dari SQL Server yang berjalan pada kontainer.
  • mssql.keytab file terletak di - Verifikasi bahwa file keytab ini berisi entri yang baru diperbarui /var/run/secrets/managed/keytabs/mssql dan cocok dengan file keytab yang dibuat dengan menggunakan skrip yang disediakan di atas. File keytab dapat dibaca menggunakan klist perintah yaitu. klist -k mssql.keytab -e

Selain itu, setelah mendapatkan Tiket Pemberian Tiket (TGT) kerberos dengan menggunakan kinit perintah, verifikasi kvno pengguna SQL cocok dengan yang tertinggi kvno dalam mssql.keytab file dalam arc-sqlmi kontainer. Misalnya, untuk arcsqlmi@CONTOSO.COM pengguna:

  • Dapatkan TGT kerberos dari domain Direktori Aktif dengan menjalankan kinit arcsqlmi@CONTOSO.COM. Ini akan meminta input pengguna untuk kata sandi untuk arcsqlmi pengguna.
  • Setelah ini berhasil, kvno dapat dikueri dengan menjalankan kvno arcsqlmi@CONTOSO.COM.

Kita juga dapat mengaktifkan pengelogan kinit debug untuk perintah dengan menjalankan yang berikut: KRB5_TRACE=/dev/stdout kinit -V arcsqlmi@CONTOSO.COM. Ini meningkatkan verbositas dan menghasilkan log ke stdout saat perintah sedang dijalankan.