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.
- Distribuera en kundhanterad active directory-anslutningsapp för nyckelfliken
- Distribuera och ansluta 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:
- Hämta
kvno
värde för den aktuella genereringen av autentiseringsuppgifter för SQL MI Active Directory-kontot. - 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. - Uppdatera den nya nyckelfliksfilen med nya poster för de nya autentiseringsuppgifterna för SQL MI Active Directory-kontot.
- Skapa en kubernetes-hemlighet med det nya nyckelfliksfilinnehållet i samma namnområde som SQL MI.
- Redigera SQL MI-specifikationen för att peka inställningen för Active Directory-nyckelflikens hemlighet till den nya hemligheten.
- Ä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änderktutil
elleradutil
(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änderktpass.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
:
Ö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.Gå till Verktyg> Active Directory - användare och datorer
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:
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 kommandotklist
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örarcsqlmi
användaren. - När detta lyckas
kvno
kan du fråga genom att körakvno 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.