Rotation de SQL Managed Instance activée par les informations d'identification gérées par le service Azure Arc (préversion)
Cet article explique comment faire pivoter les informations d’identification gérées par le service pour SQL Managed Instance activées par Azure Arc. Les services de données Arc génèrent différentes informations d’identification gérées par le service, telles que les certificats et les connexions SQL utilisés pour la surveillance, la sauvegarde/restauration, la haute disponibilité, etc. Ces informations d’identification sont considérées comme des informations d’identification de ressources personnalisées gérées par les services de données Azure Arc.
La rotation des informations d’identification gérées par le service est une opération déclenchée par l’utilisateur que vous lancez lors d’un problème de sécurité ou lorsque la rotation périodique est requise pour la conformité.
Limites
Tenez compte des limitations suivantes lorsque vous faites pivoter des informations d’identification gérées par le service managed instance :
- Les groupes de basculement SQL Server ne sont pas pris en charge.
- La rotation préplanifiée automatiquement n’est pas prise en charge.
- Les clés symétriques DPAPI gérées par le service, keytab, comptes Active Directory et informations d’identification TDE gérées par le service ne sont pas incluses dans cette rotation des informations d’identification.
Niveau Usage général
Pendant la rotation des informations d’identification gérées par le service SQL à usage général, le pod Kubernetes de l’instance managée est arrêté et reprovisionné avec des informations d’identification pivotées. Ce processus entraîne un temps d’arrêt court au fur et à mesure que le nouveau pod d’instance managée est créé. Pour gérer l’interruption, générez la résilience dans votre application, telle que la logique de nouvelle tentative de connexion, pour garantir une interruption minimale. Lisez Vue d’ensemble du pilier de fiabilité pour plus d’informations sur la façon de concevoir la résilience et conseils de nouvelle tentative pour les Azure Services.
Niveau Critique pour l’entreprise
Pendant la rotation des informations d’identification gérées par le service SQL Managed Instance critique pour l’entreprise avec plusieurs réplicas :
- Les pods de réplica secondaire sont arrêtés et reprovisionnés avec les informations d’identification gérées par le service pivotées
- Une fois les réplicas reprovisionnés, le réplica principal bascule vers un réplica réprovisionné
- Le pod principal précédent est arrêté et reprovisionné avec les informations d’identification gérées par le service pivoté et devient un serveur secondaire
Il y a un bref moment de temps d’arrêt lorsque le basculement se produit.
Configuration requise :
Avant de poursuivre cet article, vous devez avoir une instance managée SQL activée par la ressource Azure Arc créée.
Comment faire pivoter les informations d’identification gérées par le service dans une instance managée
Les informations d’identification gérées par le service sont associées à une génération au sein de l’instance managée. Pour faire pivoter toutes les informations d’identification gérées par le service pour une instance managée, la génération doit être augmentée de 1.
Exécutez les commandes suivantes pour obtenir la génération actuelle des informations d’identification gérées par le service à partir de la spécification et générer la nouvelle génération d’informations d’identification gérées par le service. Cette action déclenche la rotation des informations d’identification gérées par le service.
rotateCredentialGeneration=$(($(kubectl get sqlmi <sqlmi-name> -o jsonpath='{.spec.update.managedCredentialsGeneration}' -n <namespace>) + 1))
kubectl patch sqlmi <sqlmi-name> --namespace <namespace> --type merge --patch '{ "spec": { "update": { "managedCredentialsGeneration": '$rotateCredentialGeneration'} } }'
Le managedCredentialsGeneration
identifie la génération cible pour les informations d’identification gérées par le service. Le reste des fonctionnalités telles que la configuration et la topologie kubernetes restent identiques.
Comment restaurer les informations d’identification gérées par le service dans une instance managée
Remarque
La restauration est requise lorsque la rotation des informations d’identification échoue. La restauration vers la génération d’informations d’identification précédentes n’est prise en charge qu’une seule fois à n-1, où n’est la génération actuelle.
Si la restauration est déclenchée pendant que la rotation des informations d’identification est en cours et que tous les réplicas n’ont pas été reprovisionnés, la restauration peut prendre environ 30 minutes pour que l’instance managée soit dans un état Prêt.
Exécutez les deux commandes suivantes pour obtenir la génération actuelle des informations d’identification gérées par le service à partir de la spécification et de la restauration vers la génération précédente d’informations d’identification gérées par le service :
rotateCredentialGeneration=$(($(kubectl get sqlmi <sqlmi-name> -o jsonpath='{.spec.update.managedCredentialsGeneration}' -n <namespace>) - 1))
kubectl patch sqlmi <sqlmi-name> --namespace <namespace> --type merge --patch '{ "spec": { "update": { "managedCredentialsGeneration": '$rotateCredentialGeneration'} } }'
Le déclenchement de la restauration est identique au déclenchement d’une rotation des informations d’identification gérées par le service, sauf que la génération cible est la génération précédente et ne génère pas de nouvelle génération ou d’informations d’identification.