Sécurisation des comptes de services gérés (gMSA) dans Active Directory
04/08/2025
Cet article technique et pédagogique vise à guider les analystes de sécurité, les administrateurs informatiques et les ingénieurs système dans la mise en œuvre et la sécurisation des comptes de service gérés de groupe (gMSA) dans Active Directory. Les gMSA offrent une solution robuste pour répondre aux défis de sécurité des comptes en automatisant la gestion des mots de passe et en simplifiant l'administration [1].
Présentation
Les comptes de service traditionnels avec des mots de passe statiques présentent un risque important. Les gMSA (Group Managed Service Accounts) étendent les fonctionnalités des MSA (Managed Service Accounts), permettant à un seul compte de service d'être utilisé par plusieurs serveurs, Active Directory gérant automatiquement la rotation des mots de passe et la distribution des clés sans intervention manuelle [2].
Ce guide pratique couvrira les conditions préalables, la création et la configuration des gMSA, la manière de les associer aux services et aux tâches planifiées, ainsi que les meilleures pratiques pour garantir que vos comptes de service sont protégés et gérés efficacement.
Pourquoi les gMSA sont-ils cruciaux ?
- Gestion automatique des mots de passe : les mots de passe complexes et longs sont automatiquement générés et alternés tous les 30 jours par Active Directory.
- Déploiement sur plusieurs serveurs : un seul gMSA peut être utilisé par plusieurs serveurs, simplifiant ainsi l'administration dans les environnements distribués.
- Principe du moindre privilège : facilite l'octroi des autorisations minimales nécessaires.
- Audit amélioré : simplifie l'audit car les identités de service sont clairement définies et traçables.
Prérequis
- Contrôleurs de domaine (DC) avec Windows Server 2012 ou version ultérieure.
- Niveau fonctionnel de domaine (DFL) de Windows Server 2012 ou supérieur.
- Module Active Directory pour Windows PowerShell.
- Serveurs membres du domaine qui utiliseront gMSA.
- Groupe de sécurité pour les hôtes : un groupe de sécurité dans Active Directory qui contiendra les serveurs qui utiliseront gMSA.
Étape par étape : mise en œuvre et sécurisation des gMSA
1. Configuration du service de clé racine KDS
Le service de clé racine KDS est requis pour qu'Active Directory puisse générer des mots de passe pour les gMSA. Il doit être configuré une fois par forêt [3].
- Ouvrez Windows PowerShell en tant qu'administrateur sur un contrôleur de domaine.
- Vérifiez si le service de clé racine KDS est déjà configuré :
powershell Get-KdsRootKey - Si aucune clé n'est renvoyée, créez une nouvelle clé racine KDS. Pour la production, utilisez « Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10) » pour activer la réplication. Pour un test immédiat, utilisez :
powershell Add-KdsRootKey -EffectiveImmediately
2. Création du groupe de sécurité pour les hôtes
Ce groupe contiendra les serveurs qui seront autorisés à récupérer le mot de passe gMSA.
- Ouvrez Utilisateurs et ordinateurs Active Directory (dsa.msc).
- Créez un nouveau groupe de sécurité (par exemple
gMSA_Hosts_ServicoX) avec la portéeGlobalet tapezSecurity. - Ajoutez les ordinateurs (serveurs) qui utiliseront gMSA à ce groupe (ex :
ServidorApp01$,ServidorApp02$).
3. Création du gMSA
Créons maintenant le gMSA en utilisant PowerShell.
- Ouvrez Windows PowerShell en tant qu'administrateur sur un contrôleur de domaine.
- Utilisez l'applet de commande « New-ADServiceAccount » :
powershell New-ADServiceAccount -Name gMSA_ServicoX -DNSHostName gMSA_ServicoX.contoso.com -PrincipalsAllowedToRetrieveManagedPassword "gMSA_Hosts_ServicoX"- Explication : Le paramètre
PrincipalsAllowedToRetrieveManagedPasswordspécifie le groupe de sécurité qui peut récupérer le mot de passe gMSA. Ce groupe doit contenir les serveurs qui exécuteront le service.
- Explication : Le paramètre
4. Installation et test de gMSA sur les serveurs hôtes
Sur les serveurs qui utiliseront gMSA, vous devez l'installer et tester ses fonctionnalités.
- Sur chaque serveur membre du groupe « gMSA_Hosts_ServicoX », ouvrez Windows PowerShell en tant qu'administrateur.
- Installez GMSA :
powershell Install-ADServiceAccount -Identité gMSA_ServicoX - Testez que le gMSA est installé et fonctionnel :
powershell Test-ADServiceAccount -Identité gMSA_ServicoX- Résultat attendu : La sortie doit être « True », indiquant que gMSA est prêt à être utilisé sur le serveur.
5. Associer le gMSA à un service
- Sur le serveur où sera le serviceUne fois exécuté, ouvrez la console Services (
services.msc). - Localisez le service que vous souhaitez configurer.
- Cliquez avec le bouton droit sur le service, sélectionnez Propriétés.
- Dans l'onglet Connexion, sélectionnez Ce compte.
- Dans le champ Ce compte, saisissez le nom de votre gMSA suivi d'un « $ », par exemple : « gMSA_ServicoX$ ».
- Laissez les champs du mot de passe vides. Active Directory gérera automatiquement le mot de passe.
- Cliquez sur Appliquer et OK.
- Redémarrez le service pour que les modifications prennent effet.
6. Utiliser gMSA avec des tâches planifiées
- Sur le serveur, ouvrez Task Scheduler (
taskschd.msc). - Créez une nouvelle tâche ou modifiez une tâche existante.
- Dans l'onglet Général, cliquez sur Modifier l'utilisateur ou le groupe....
- Dans le champ
Entrez le nom de l'objet à sélectionner, saisissez le nom de votre gMSA suivi d'un$, par exemple :gMSA_ServicoX$. - Cliquez sur Vérifier les noms, puis sur OK.
- Laissez les champs du mot de passe vides.
- Configurez les autres options de tâches planifiées et cliquez sur OK.
Bonnes pratiques et conseils de sécurité
- Principe du moindre privilège : accordez à gMSA uniquement les autorisations nécessaires pour exécuter sa fonction. N'utilisez pas de gMSA avec des privilèges d'administrateur de domaine.
- Groupes de sécurité dédiés : utilisez des groupes de sécurité spécifiques pour
PrincipalsAllowedToRetrieveManagedPasswordafin de contrôler quels serveurs peuvent utiliser gMSA. - Audit : surveillez l'utilisation des gMSA via les journaux de sécurité Active Directory pour détecter toute activité anormale.
- Protection de la clé racine KDS : assurez-vous que les contrôleurs de domaine sont sécurisés, car la clé racine KDS est essentielle à la sécurité des gMSA.
- Supprimer les anciens comptes de service : migrez les services vers les gMSA et désactivez ou supprimez les anciens comptes de service qui utilisaient des mots de passe statiques.
- Documentation : conservez une trace des gMSA utilisés, des services qu'ils exécutent et sur quels serveurs.
Conclusion
Les comptes de service gérés de groupe (gMSA) sont un composant essentiel pour améliorer votre posture de sécurité Active Directory, en particulier dans la gestion des identités de service. En automatisant la rotation des mots de passe, en simplifiant le déploiement dans des environnements distribués et en facilitant l'application du principe du moindre privilège, les gMSA réduisent considérablement la surface d'attaque et la complexité administrative. Une mise en œuvre et une gestion appropriées des gMSA sont des étapes cruciales pour protéger vos services et applications contre les cybermenaces.
Références
[1]Microsoft. (2023). Comptes de service gérés de groupe (gMSA) dans Active Directory. [2]Microsoft. (2023). Aperçu des comptes de services gérés. [3]Microsoft. (2023). Service de distribution de clés Active Directory (KDS).