Udostępnij za pośrednictwem


Obróć usługę SQL Managed Instance włączoną przez kartę kluczy zarządzanych przez klienta usługi Azure Arc

W tym artykule opisano sposób rotacji kart kluczy zarządzanych przez klienta dla usługi SQL Managed Instance włączonej przez usługę Azure Arc. Te tabki kluczy służą do włączania logowań usługi Active Directory dla wystąpienia zarządzanego.

Wymagania wstępne:

Przed kontynuowaniem pracy z tym artykułem musisz mieć łącznik usługi Active Directory w trybie karty kluczy zarządzanych przez klienta i wystąpienie zarządzane SQL włączone przez utworzoną usługę Azure Arc.

Jak obracać tabły kluczy zarządzanych przez klienta w wystąpieniu zarządzanym

Aby obrócić kartę klucza, należy wykonać następujące czynności:

  1. Pobierz kvno wartość bieżącej generacji poświadczeń dla konta usługi SQL MI Active Directory.
  2. Utwórz nowy plik na karcie kluczy z wpisami dla bieżącej generacji poświadczeń. W szczególności wartość powinna być zgodna kvno z kroku (1.) powyżej.
  3. Zaktualizuj nowy plik karty kluczy przy użyciu nowych wpisów dla nowego poświadczenia dla konta usługi SQL MI Active Directory.
  4. Utwórz wpis tajny kubernetes zawierający nową zawartość pliku keytab w tej samej przestrzeni nazw co wystąpienie zarządzane SQL.
  5. Edytuj specyfikację wystąpienia zarządzanego SQL, aby wskazać ustawienie wpisu tajnego karty usługi Active Directory na ten nowy wpis tajny.
  6. Zmień hasło w domenie usługi Active Directory.

Udostępniliśmy następujące skrypty programu PowerShell i powłoki bash, które będą wykonywać kroki od 1 do 5:

  • rotate-sqlmi-keytab.sh — Ten skrypt powłoki bash używa ktutil polecenia lub adutil (jeśli określono flagę --use-adutil ), aby wygenerować nową kartę klucza.
  • rotate-sqlmi-keytab.ps1 — Ten skrypt programu PowerShell używa ktpass.exe polecenia do wygenerowania nowej tabki kluczy.

Wykonanie powyższego skryptu spowoduje wyświetlenie następującego pliku tab dla użytkownika arcsqlmi@CONTOSO.COM, wpisu tajnego sqlmi-keytab-secret-kvno-2-3 i przestrzeni nazw 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)

I następujące specyfikacje updated-secret.yaml:

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

Na koniec zmień hasło konta arcsqlmi użytkownika na kontrolerze domeny dla domeny contoso.comusługi Active Directory:

  1. Otwórz Menedżer serwera na kontrolerze domeny dla domeny contoso.comusługi Active Directory . Możesz wyszukać Menedżer serwera lub otworzyć ją za pomocą menu Start.

  2. Przejdź do pozycji Narzędzia> Użytkownicy i komputery usługi Active Directory

    Zrzut ekranu przedstawiający Użytkownicy i komputery usługi Active Directory.

  3. Wybierz użytkownika, dla którego chcesz zmienić hasło. Kliknij prawym przyciskiem myszy, aby wybrać użytkownika. Wybierz pozycję Resetuj hasło:

    Zrzut ekranu przedstawiający kontrolkę resetowania hasła dla konta użytkownika usługi Active Directory.

  4. Wprowadź nowe hasło i wybierz pozycję OK.

Rozwiązywanie problemów z błędami po rotacji

W przypadku wystąpienia błędów podczas próby użycia uwierzytelniania usługi Active Directory po zakończeniu rotacji karty kluczy następujące pliki w kontenerze w arc-sqlmi zasobniku mi SQL są dobrym miejscem do rozpoczęcia badania głównej przyczyny:

  • security.log plik znajdujący się w lokalizacji /var/opt/mssql/log — ten plik dziennika zawiera dzienniki interakcji programu SQL z domeną usługi Active Directory.
  • errorlog plik znajdujący się w lokalizacji /var/opt/mssql/log — ten plik dziennika zawiera dzienniki z programu SQL Server uruchomionego w kontenerze.
  • mssql.keytab plik znajdujący się w /var/run/secrets/managed/keytabs/mssql lokalizacji — sprawdź, czy ten plik keytab zawiera nowo zaktualizowane wpisy i pasuje do pliku keytab utworzonego przy użyciu skryptów podanych powyżej. Plik keytab można odczytać przy użyciu klist polecenia, tj. klist -k mssql.keytab -e

Ponadto po otrzymaniu biletu przyznania biletu protokołu Kerberos (TGT) za pomocą kinit polecenia sprawdź, czy kvno użytkownik SQL jest zgodny z najwyższymi kvno wartościami w mssql.keytab pliku w kontenerze arc-sqlmi . Na przykład dla arcsqlmi@CONTOSO.COM użytkownika:

  • Pobierz bilet TGT protokołu Kerberos z domeny usługi Active Directory, uruchamiając polecenie kinit arcsqlmi@CONTOSO.COM. Spowoduje to wyświetlenie monitu o podanie hasła dla arcsqlmi użytkownika.
  • Po pomyślnym zakończeniu kvno zapytania można wykonywać zapytania, uruchamiając polecenie kvno arcsqlmi@CONTOSO.COM.

Możemy również włączyć rejestrowanie debugowania dla kinit polecenia, uruchamiając następujące polecenie: KRB5_TRACE=/dev/stdout kinit -V arcsqlmi@CONTOSO.COM. Zwiększa to szczegółowość i generuje dane wyjściowe dzienników do stdout w miarę wykonywania polecenia.