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.
- Distribuire un connettore active Directory keytab gestito dal cliente
- Distribuire e connettere un Istanza gestita di SQL abilitato da Azure Arc
Come ruotare i keytab gestiti dal cliente in un'istanza gestita
Per ruotare il keytab, seguire questa procedura:
- Ottiene
kvno
il valore per la generazione corrente di credenziali per l'account Active Directory di istanza gestita di SQL. - Creare un nuovo file keytab con voci per la generazione corrente di credenziali. In particolare, il
kvno
valore deve corrispondere al passaggio (1.) precedente. - Aggiornare il nuovo file keytab con nuove voci per le nuove credenziali per l'account Active Directory di istanza gestita di SQL.
- Creare un segreto kubernetes contenente il nuovo contenuto del file keytab nello stesso spazio dei nomi dell'istanza gestita di SQL.
- Modificare la specifica di istanza gestita di SQL per puntare l'impostazione del segreto keytab di Active Directory a questo nuovo segreto.
- 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 usaktutil
oadutil
(se il--use-adutil
flag è specificato) per generare automaticamente il nuovo keytab.rotate-sqlmi-keytab.ps1
- Questo script di PowerShell usaktpass.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.com
di Active Directory:
Aprire Server Manager nel controller di dominio per il dominio
contoso.com
di Active Directory. È possibile cercare Server Manager o aprirlo tramite il menu Start.Passare a Strumenti> Utenti e computer di Active Directory
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:
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 ilklist
comando , ad esempioklist -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 perarcsqlmi
l'utente. - Al termine di questa operazione, è
kvno
possibile eseguire una query eseguendokvno 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.