Ruotare Istanza gestita di SQL abilitata dalla scheda chiave gestita dal cliente di Azure Arc

Questo articolo descrive come ruotare le schede chiave gestite dal cliente per Istanza gestita di SQL abilitate da Azure Arc. Questi keytab vengono usati per abilitare gli account di accesso di Active Directory per l'istanza gestita.

Prerequisiti:

Prima di procedere con questo articolo, è necessario avere un connettore Active Directory in modalità keytab gestita dal cliente e un Istanza gestita di SQL abilitato da Azure Arc creato.

Come ruotare i keytab gestiti dal cliente in un'istanza gestita

Per ruotare il keytab, seguire questa procedura:

  1. Ottiene kvno il valore per la generazione corrente di credenziali per l'account Active Directory di istanza gestita di SQL.
  2. Creare un nuovo file keytab con voci per la generazione corrente di credenziali. In particolare, il kvno valore deve corrispondere al passaggio (1.) precedente.
  3. Aggiornare il nuovo file keytab con nuove voci per le nuove credenziali per l'account Active Directory di istanza gestita di SQL.
  4. Creare un segreto kubernetes contenente il nuovo contenuto del file keytab nello stesso spazio dei nomi dell'istanza gestita di SQL.
  5. Modificare la specifica di istanza gestita di SQL per puntare l'impostazione del segreto keytab di Active Directory a questo nuovo segreto.
  6. Modificare la password nel dominio di Active Directory.

Sono stati forniti gli script di PowerShell e bash seguenti che eseguiranno automaticamente i passaggi da 1 a 5:

  • rotate-sqlmi-keytab.sh - Questo script bash usa ktutil o adutil (se il --use-adutil flag è specificato) per generare automaticamente il nuovo keytab.
  • rotate-sqlmi-keytab.ps1 - Questo script di PowerShell usa ktpass.exe per generare automaticamente il nuovo keytab.

L'esecuzione dello script precedente comporta il file keytab seguente per l'utente arcsqlmi@CONTOSO.COM, il segreto sqlmi-keytab-secret-kvno-2-3 e lo spazio dei nomi 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)

E la specifica updated-secret.yaml seguente:

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

Modificare infine la password per arcsqlmi l'account utente nel controller di dominio per il dominio contoso.comdi Active Directory:

  1. Aprire Server Manager nel controller di dominio per il dominio contoso.comdi Active Directory. È possibile cercare Server Manager o aprirlo tramite il menu Start.

  2. Passare a Strumenti> Utenti e computer di Active Directory

    Screenshot of Active Directory Users and Computers.

  3. Selezionare l'utente per cui si vuole modificare la password. Fare clic con il pulsante destro del mouse per selezionare l'utente. Selezionare Reimposta password:

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

  4. Immettere una nuova password e selezionare OK.

Risoluzione degli errori dopo la rotazione

Nel caso in cui si verifichino errori durante il tentativo di usare l'autenticazione di Active Directory dopo aver completato la rotazione keytab, i file seguenti nel arc-sqlmi contenitore nel pod ISTANZA gestita di SQL rappresentano un buon punto di partenza per iniziare a esaminare la causa radice:

  • security.log file che si trova in /var/opt/mssql/log : questo file di log contiene i log per le interazioni di SQL con il dominio di Active Directory.
  • errorlog file che si trova in /var/opt/mssql/log : questo file di log contiene i log di SQL Server in esecuzione nel contenitore.
  • mssql.keytab file che si trova in /var/run/secrets/managed/keytabs/mssql : verificare che questo file keytab contenga le voci appena aggiornate e corrisponda al file keytab creato usando gli script forniti in precedenza. Il file keytab può essere letto usando il klist comando , ad esempio klist -k mssql.keytab -e

Inoltre, dopo aver ottenuto il ticket kerberos Ticket-Granting Ticket (TGT) usando kinit il comando , verificare che l'oggetto kvno dell'utente SQL corrisponda al più alto kvno nel mssql.keytab file nel arc-sqlmi contenitore. Ad esempio, per arcsqlmi@CONTOSO.COM l'utente:

  • Ottenere il TGT Kerberos dal dominio di Active Directory eseguendo kinit arcsqlmi@CONTOSO.COM. Verrà richiesto un input dell'utente per la password per arcsqlmi l'utente.
  • Al termine di questa operazione, è kvno possibile eseguire una query eseguendo kvno arcsqlmi@CONTOSO.COM.

È anche possibile abilitare la registrazione di debug per il kinit comando eseguendo il comando seguente: KRB5_TRACE=/dev/stdout kinit -V arcsqlmi@CONTOSO.COM. In questo modo si aumenta il livello di dettaglio e i log vengono restituiti a stdout man mano che viene eseguito il comando.