Windows - Utilisation des comptes gMSA
![]() |
Difficulté : Confirmé Notions : Serveur, active directory, optimisation de sécurité. |
I. Introduction
Applicable à : Windows, toutes version.
Prérequis : l'ordinateur/serveur utilisant le gMSA doit être membre d'un domaine active directory.
Afin de sécuriser le contrôle des services et leur accès au système, l’utilisation des groupes et comptes gMSA (Group Managed Service Account) est fortement recommandée.
En effet, il s’agit type de compte de service spécial qui a par défaut des accès bien plus restreints qu’un compte utilisateur classique.
De plus il n’y pas de nécessité d’attribuer un mot de passe à ceux-ci car ils utiliseront la fonctionnalité d’authentification par couple de clé. Ces clés seront régénérées régulièrement et automatiquement par le système.
L’utilisation de ce compte sur des serveurs est limité aux machines appartenant au groupe qui lui est associé.
Ainsi :
- le compte n’est pas utilisable en dehors du groupe de machine défini
-
il ne s’agit plus en cas d’attaque de deviner un mot de passe mais une couple de clé d’authentification
-
(ce qui est bien plus complexe)
-
- Les accès de se compte sont très limités
- Les clés sont régénérées automatiquement et régulièrement
Une clé KDS Doit avoir été préalablement générée. Si nécessaire, il est possible de la générer avec la commande suivante.
Add-KdsRootKey -EffectiveTime ((Get-Date).AddHours(-10))
II. Utilisation du gMSA
2.1 Convention de nommage
Le Nom du groupe doit respecter le format suivant :
- [APP_TRIGRAM]_GM_[SERVICE][ENV_NUMBER][2DIGITS_NUMBER]$
-
exemple : DKR_GM_SQL101$
-
DOK est le trigramme pour l’application Docker
-
GM signifie Group Managed
-
SQL est le service type de serveurs contenus dans le groupe (le compte lancera en effet les services SQL)
-
1 est le numéro d’environnement de production
-
01 est l’ID du groupe pour l’appli/environnement
-
$ est une convention pour signifier que le compte/groupe est de type gMSA
-
Le Nom du compte doit respecter le format suivant :
- [APP_TRIGRAM]_MG_[SERVICE][ENV_NUMBER][2DIGITS_NUMBER]$
-
$exemple : DKR_MG_SQL101$
-
DOK est le trigramme pour l’application Docker
-
GM signifie Group Managed
-
SQL est le service type de serveurs contenus dans le groupe (le compte lancera en effet les services SQL)
-
1 est le numéro d’environnement de production
-
01 est l’ID du groupe pour l’appli/environnement
-
$ est une convention pour signifier que le compte/groupe est de type gMSA
-
2.2 Créer les éléments sur le serveurs AD
Tout d'abord, il faut créer le groupe qui contiendra les machines autorisées à utiliser le compte.
Sur le serveur Active Directory ou via une console Powershell connectée à ce serveur. Entrer les commandes suivantes :
New-ADGroup -Name "<Nom du groupe>" -GroupScope DomainLocal -Description "Group to allow servers <usage> to use the account <nom du compte gMSA associé>. Created by $env:USERDOMAIN\$env:Username" -path "<Chemin vers le compte format OU=,DC=>"
Il faut ensuite ajouter les serveurs au groupe.
Puis créer le compte gMSA et l’associer au groupe.
New-ADServiceAccount -Name "<Nom du compte gMSA>" -DNSHostName "<nom du groupe>.<domaine>.<extention>" -PrincipalsAllowedToRetrieveManagedPassword "<nom du groupe gMSA>" -Enabled $true -ManagedPasswordIntervalInDays "30" -Description "Managed Service Account to launch <service> in <environement>. Created by $env:USERDOMAIN\$env:USERNAME" -path "<Chemin vers le compte format OU=,DC=>"
2.3 Utiliser le compte de service
Enfin sur le serveur de destination, il faut Purger les tickets Kerberos.
klist -lh 0 -li 0x3e7 purge
Pour vérifier que le compte est utilisable, utiliser la commande :
Test-ADServiceAccount -Identity "<Nom du compte gMSA>"
Puis, paramétrer le service.
Lancer la console des services :
Sélectionner le service à modifier puis faire “Clic droit → Propriété”
La fenêtre s’ouvre.
Aller sur l’onglet “Log On”. Cocher la case “This Account”.
Entrer le compte gMSA sans mot de passe.
Cliquer sur “Apply” puis OK.
Redémarrer le service.













