Permuter le keytab géré par l’utilisateur de SQL Managed Instance activé par Azure Arc
Cet article explique comment faire pivoter les keytabs gérés par le client pour SQL Managed Instance activés par Azure Arc. Ces clés sont utilisées pour activer les connexions Active Directory pour l’instance managée.
Configuration requise :
Avant de poursuivre cet article, vous devez disposer d’un connecteur Active Directory en mode keytab géré par le client et d’une instance managée SQL activée par Azure Arc.
- Déployer un connecteur Active Directory keytab géré par le client
- Déployer et connecter une instance managée SQL activée par Azure Arc
Comment faire pivoter les keytabs gérés par le client dans une instance managée
Les étapes suivantes doivent être suivies pour faire pivoter le keytab :
- Obtenez la valeur
kvno
pour la génération actuelle d’informations d’identification pour le compte ACTIVE Directory SQL MI. - Créez un fichier keytab avec des entrées pour la génération actuelle d’informations d’identification. Plus précisément, la valeur
kvno
doit correspondre à l’étape (1.) ci-dessus. - Mettez à jour le nouveau fichier keytab avec de nouvelles entrées pour les nouvelles informations d’identification pour le compte ACTIVE Directory SQL MI.
- Créez un secret Kubernetes contenant le nouveau contenu du fichier keytab dans le même espace de noms que l’instance SQL MI.
- Modifiez la spécification SQL MI pour pointer le paramètre de secret keytab Active Directory vers ce nouveau secret.
- Modifiez le mot de passe dans le domaine Active Directory.
Nous avons fourni les scripts PowerShell et bash suivants qui prendront en charge les étapes 1 à 5 pour vous :
rotate-sqlmi-keytab.sh
: ce script bash utilisektutil
ouadutil
(si l’indicateur--use-adutil
est spécifié) pour générer le nouveau keytab pour vous.rotate-sqlmi-keytab.ps1
: ce script PowerShell utilisektpass.exe
pour générer le nouveau keytab pour vous.
L’exécution du script ci-dessus entraîne le fichier keytab suivant pour l’utilisateur arcsqlmi@CONTOSO.COM
, le secret sqlmi-keytab-secret-kvno-2-3
et l’espace de noms 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)
Et les spécifications mises à jour suivantes :
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: sqlmi-keytab-secret-kvno-2-3
namespace: test
data:
keytab:
<keytab-contents>
Enfin, modifiez le mot de passe de arcsqlmi
compte d’utilisateur dans le contrôleur de domaine pour le domaine Active Directory contoso.com
:
Ouvrez Gestionnaire de serveur sur le contrôleur de domaine pour le domaine Active Directory
contoso.com
. Vous pouvez rechercher Gestionnaire de serveur ou l’ouvrir via le menu Démarrer.Accédez à Tools>utilisateurs et ordinateurs Active Directory
Sélectionnez l’utilisateur pour lequel vous souhaitez modifier le mot de passe. Cliquez avec le bouton droit pour sélectionner l’utilisateur. Sélectionnez Réinitialiser le mot de passe:
Entrez un nouveau mot de passe et sélectionnez
OK
.
Résolution des erreurs après la rotation
En cas d’erreurs lors de la tentative d’utilisation de l’authentification Active Directory après avoir terminé la rotation de keytab, les fichiers suivants dans le conteneur arc-sqlmi
dans le pod SQL MI sont un bon endroit pour commencer à examiner la cause racine :
security.log
fichier situé à/var/opt/mssql/log
: ce fichier journal contient des journaux pour les interactions de SQL avec le domaine Active Directory.errorlog
fichier situé à/var/opt/mssql/log
: ce fichier journal contient les journaux d’activité de SQL Server s’exécutant sur le conteneur.mssql.keytab
fichier situé à/var/run/secrets/managed/keytabs/mssql
: vérifiez que ce fichier keytab contient les entrées nouvellement mises à jour et correspond au fichier keytab créé à l’aide des scripts fournis ci-dessus. Le fichier keytab peut être lu à l’aide de la commandeklist
, c’est-à-direklist -k mssql.keytab -e
En outre, après avoir obtenu le ticket d’octroi de ticket Kerberos (TGT) à l’aide de la commande kinit
, vérifiez que le kvno
de l’utilisateur SQL correspond au kvno
le plus élevé dans le fichier mssql.keytab
dans le conteneur arc-sqlmi
. Par exemple, pour utilisateur arcsqlmi@CONTOSO.COM
:
- Obtenez le TGT Kerberos à partir du domaine Active Directory en exécutant
kinit arcsqlmi@CONTOSO.COM
. Cela invite un utilisateur à entrer le mot de passe pour l’utilisateurarcsqlmi
. - Une fois cela réussi, le
kvno
peut être interrogé en exécutantkvno arcsqlmi@CONTOSO.COM
.
Nous pouvons également activer la journalisation du débogage pour la commande kinit
en exécutant les opérations suivantes : KRB5_TRACE=/dev/stdout kinit -V arcsqlmi@CONTOSO.COM
. Cela augmente la détail et génère les journaux d’activité à stdout à mesure que la commande est en cours d’exécution.