Dela via


Rotera SQL Managed Instance aktiverat av den kundhanterade nyckelfliken i Azure Arc

Den här artikeln beskriver hur du roterar kundhanterade nyckelflikar för SQL Managed Instance som aktiveras av Azure Arc. Dessa nyckelflikar används för att aktivera Active Directory-inloggningar för den hanterade instansen.

Förutsättningar:

Innan du fortsätter med den här artikeln måste du ha en Active Directory-anslutningsapp i kundhanterat nyckelfliksläge och en SQL Managed Instance aktiverad av Azure Arc.

Rotera kundhanterade nyckelflikar i en hanterad instans

Följande steg måste följas för att rotera nyckelfliken:

  1. Hämta kvno värde för den aktuella genereringen av autentiseringsuppgifter för SQL MI Active Directory-kontot.
  2. Skapa en ny nyckelfliksfil med poster för den aktuella genereringen av autentiseringsuppgifter. kvno Mer specifikt bör värdet matcha från steg (1.) ovan.
  3. Uppdatera den nya nyckelfliksfilen med nya poster för de nya autentiseringsuppgifterna för SQL MI Active Directory-kontot.
  4. Skapa en kubernetes-hemlighet med det nya nyckelfliksfilinnehållet i samma namnområde som SQL MI.
  5. Redigera SQL MI-specifikationen för att peka inställningen för Active Directory-nyckelflikens hemlighet till den nya hemligheten.
  6. Ändra lösenordet i Active Directory-domänen.

Vi har tillhandahållit följande PowerShell- och bash-skript som tar hand om steg 1–5 åt dig:

  • rotate-sqlmi-keytab.sh – Det här bash-skriptet använder ktutil eller adutil (om --use-adutil flaggan har angetts) för att generera den nya nyckelfliken åt dig.
  • rotate-sqlmi-keytab.ps1 – Det här PowerShell-skriptet använder ktpass.exe för att generera den nya nyckelfliken åt dig.

Om du kör skriptet ovan resulterar det i följande nyckelfliksfil för användaren arcsqlmi@CONTOSO.COM, hemligheten sqlmi-keytab-secret-kvno-2-3 och namnområdet 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)

Och följande specifikation för updated-secret.yaml:

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

Ändra slutligen lösenordet för arcsqlmi användarkontot i domänkontrollanten för Active Directory-domänen contoso.com:

  1. Öppna Serverhanteraren på domänkontrollanten för Active Directory-domänen contoso.com. Du kan antingen söka efter Serverhanteraren eller öppna den via Start-menyn.

  2. Gå till Verktyg> Active Directory - användare och datorer

    Skärmbild av Active Directory - användare och datorer.

  3. Välj den användare som du vill ändra lösenordet för. Högerklicka för att välja användaren. Välj Återställ lösenord:

    Skärmbild av kontrollen för att återställa lösenordet för ett Active Directory-användarkonto.

  4. Ange nytt lösenord och välj OK.

Felsöka fel efter rotation

Om det uppstår fel när du försöker använda Active Directory-autentisering efter att nyckelfliksrotationen har slutförts är följande filer i containern arc-sqlmi i SQL MI-podden ett bra ställe att börja undersöka rotorsaken till:

  • security.log filen finns på /var/opt/mssql/log – Den här loggfilen har loggar för SQL:s interaktioner med Active Directory-domänen.
  • errorlog filen finns på /var/opt/mssql/log – Den här loggfilen innehåller loggar från SQL Server som körs på containern.
  • mssql.keytab fil som finns på /var/run/secrets/managed/keytabs/mssql – Kontrollera att den här nyckelfliksfilen innehåller de nyligen uppdaterade posterna och matchar nyckelfliksfilen som skapats med hjälp av skripten ovan. Nyckelfliksfilen kan läsas med kommandot klist dvs. klist -k mssql.keytab -e

När du har hämtat kerberos Ticket-Granting Ticket (TGT) med hjälp kinit av kommandot kontrollerar du dessutom att kvno SQL-användaren matchar den högsta kvno i mssql.keytab filen i containern arc-sqlmi . Till exempel för arcsqlmi@CONTOSO.COM användare:

  • Hämta kerberos TGT från Active Directory-domänen genom att köra kinit arcsqlmi@CONTOSO.COM. Då uppmanas användaren att ange lösenordet för arcsqlmi användaren.
  • När detta lyckas kvno kan du fråga genom att köra kvno arcsqlmi@CONTOSO.COM.

Vi kan också aktivera felsökningsloggning för kinit kommandot genom att köra följande: KRB5_TRACE=/dev/stdout kinit -V arcsqlmi@CONTOSO.COM. Detta ökar verbositeten och matar ut loggarna till stdout när kommandot körs.