Bagikan melalui


Putar SQL Managed Instance yang diaktifkan oleh kredensial yang dikelola layanan Azure Arc (pratinjau)

Artikel ini menjelaskan cara memutar kredensial yang dikelola layanan untuk SQL Managed Instance yang diaktifkan oleh Azure Arc. Layanan data Arc menghasilkan berbagai kredensial yang dikelola layanan seperti sertifikat dan login SQL yang digunakan untuk Pemantauan, Pencadangan/Pemulihan, Ketersediaan Tinggi, dll. Kredensial ini dianggap sebagai kredensial sumber daya kustom yang dikelola oleh layanan data Azure Arc.

Rotasi kredensial yang dikelola layanan adalah operasi yang dipicu pengguna yang Anda mulai selama masalah keamanan atau ketika rotasi berkala diperlukan untuk kepatuhan.

Pembatasan

Pertimbangkan batasan berikut saat Anda memutar kredensial terkelola layanan instans terkelola:

  • Grup failover SQL Server tidak didukung.
  • Rotasi yang dijadwalkan sebelumnya secara otomatis tidak didukung.
  • Kunci konten DPAPI yang dikelola layanan, keytab, akun direktori aktif, dan kredensial TDE yang dikelola layanan tidak disertakan dalam rotasi kredensial ini.

Tingkat Tujuan Umum

Selama rotasi kredensial yang dikelola layanan SQL Managed Instance Tujuan Umum, pod Kubernetes instans terkelola dihentikan dan diprovisikan ulang dengan kredensial yang diputar. Proses ini menyebabkan waktu henti yang singkat saat pod instans terkelola baru dibuat. Untuk menangani gangguan, bangun ketahanan ke dalam aplikasi Anda seperti logika coba lagi koneksi, untuk memastikan gangguan minimal. Baca Gambaran Umum pilar keandalan untuk informasi selengkapnya tentang cara merancang ketahanan dan mencoba kembali panduan untuk Layanan Azure.

Tingkat Kritis Bisnis

Selama rotasi kredensial yang dikelola layanan Business Critical SQL Managed Instance dengan lebih dari satu replika:

  • Pod replika sekunder dihentikan dan diprovisikan ulang dengan kredensial yang dikelola layanan yang diputar
  • Setelah replika diprovisikan ulang, replika utama akan gagal ke replika yang diprovisikan ulang
  • Pod utama sebelumnya dihentikan dan diprovisikan ulang dengan kredensial yang dikelola layanan yang diputar, dan menjadi sekunder

Ada saat singkat waktu henti ketika failover terjadi.

Prasyarat:

Sebelum melanjutkan artikel ini, Anda harus memiliki SQL Managed Instance yang diaktifkan oleh sumber daya Azure Arc yang dibuat.

Cara memutar kredensial yang dikelola layanan dalam instans terkelola

Kredensial yang dikelola layanan dikaitkan dengan generasi dalam instans terkelola. Untuk memutar semua kredensial yang dikelola layanan untuk instans terkelola, pembuatan harus ditingkatkan sebesar 1.

Jalankan perintah berikut untuk mendapatkan pembuatan kredensial yang dikelola layanan saat ini dari spesifikasi dan hasilkan generasi baru kredensial yang dikelola layanan. Tindakan ini memicu rotasi kredensial yang dikelola layanan.

rotateCredentialGeneration=$(($(kubectl get sqlmi <sqlmi-name> -o jsonpath='{.spec.update.managedCredentialsGeneration}' -n <namespace>) + 1))
kubectl patch sqlmi <sqlmi-name> --namespace <namespace> --type merge --patch '{ "spec": { "update": { "managedCredentialsGeneration": '$rotateCredentialGeneration'} } }'

managedCredentialsGeneration Mengidentifikasi pembuatan target untuk kredensial yang dikelola layanan. Fitur lainnya seperti konfigurasi dan topologi kubernetes tetap sama.

Cara mengembalikan kredensial yang dikelola layanan dalam instans terkelola

Catatan

Putar kembali diperlukan ketika rotasi kredensial gagal. Putar kembali ke pembuatan kredensial sebelumnya hanya didukung sekali ke n-1 di mana n adalah generasi saat ini.

Jika pemutaran kembali dipicu saat rotasi kredensial sedang berlangsung dan semua replika belum diprovisikan ulang, pemutaran kembali mungkin memakan waktu sekitar 30 menit untuk diselesaikan agar instans terkelola berada dalam status Siap .

Jalankan dua perintah berikut untuk mendapatkan pembuatan kredensial yang dikelola layanan saat ini dari spesifikasi dan pembatalan ke kredensial yang dikelola layanan generasi sebelumnya:

rotateCredentialGeneration=$(($(kubectl get sqlmi <sqlmi-name> -o jsonpath='{.spec.update.managedCredentialsGeneration}' -n <namespace>) - 1))
kubectl patch sqlmi <sqlmi-name> --namespace <namespace> --type merge --patch '{ "spec": { "update": { "managedCredentialsGeneration": '$rotateCredentialGeneration'} } }'

Memicu pemutaran kembali sama dengan memicu rotasi kredensial yang dikelola layanan kecuali bahwa pembuatan target adalah generasi sebelumnya dan tidak menghasilkan generasi atau kredensial baru.