Sommaire
Auteur & Source : | Michel de CREVOISIER . |
Introduction
Face à un besoin croissant concernant la sécurisation des applications réseau stratégiques (telles que SQL Server, Exchange, IIS, …) et avec la sortie de Windows Server 2008 R2 et Windows 7, deux
nouveaux types de comptes ont été introduits : les VSA (Virtual Service Account) et les MSA (Managed Service Account). Ceux-ci permettent d’une part de s’affranchir de la gestion complexe des mots de passe (blocage, expiration, renouvellement, …) et d’autre part de réduire les opérations de maintenance, souvent considérées comme fastidieuses et complexes.
Grâce à ces derniers :
- Vous disposerez d’une nouvelle classe de comptes dédiés aux services.
- Vous n’aurez plus à vous soucier du renouvellement ou de l’expiration des mots de passe étant donné qu’ils sont automatiquement renouvelés.
- Vous pourrez déléguer l’administration de ces comptes à des non-administrateurs.
Note concernant SQL Server 2008 R2 ou supérieur : si vous faites appel à des MSA ou à des VSA, sachez qu’ils ne peuvent pas être utilisés pour des instances en cluster étant donné que chacun d’entre eux dispose d’un SID différent.
Managed Service Account (MSA)
Présentation
Un MSA est un compte de domaine spécialement assigné à un seul et unique ordinateur et conçu pour exécuter un service. Il ne peut cependant pas être utilisé pour se connecter à un ordinateur. En résumé, il s’agit d’un compte administré par le contrôleur de domaine et incapable d’ouvrir une
session localement. Sa composition est {DOMAIN}\{Service account}$ et les mots de passe générés possèdent une structure de 240 caractères cryptographiques aléatoires.
Applications supportées
Les technologies suivantes sont supportées pour utiliser des comptes MSA :
- Service Windows : oui
- Exchange : oui (pour l’envoi de mail) mais configuration supplémentaire requise
- IIS : oui, pour les pools d’application
- SQL Server : oui, mais uniquement à partir de SQL Server 2012
Prérequis
Pour mettre en place des MSA, vous devez valider les prérequis suivants :
- Schéma en version supérieure ou égale à Server 2008 R2
(Un schéma en version 2008 peut être utilisé, mais la gestion des SPN n’est pas supportée) - Installer le compte sur une version supérieure ou égale à Server 2008 R2 ou Windows
- Installation des commandes PowerShell pour Active Directory côté serveur et client (point 5.1)
- Installer le Framework 3.5
Limitations
Les MSA possèdent toutefois certaines limitations. De ce fait, ils ne peuvent pas être utilisés sur :
- De multiples ordinateurs
- Des nœuds en cluster
- Un système de load-balancing (NLB) pour des serveurs web utilisant Kerberos
- Une tâche planifiée
Mise en place
Création d’un MSA
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ############## Variables ############## $MSA_account="MSA_Account" #Account name $MSA_description="For Service X" #Description $Encryption="AES256" #Choose between RC4, AES128 or AES256 $TargetComputer="SRV-SQL" #Target computer to link with the MSA account Import-Module ActiveDirectory # For Server Server 2012 R2 New-ADServiceAccount $MSA_account -Enabled $true -RestrictToSingleComputer -KerberosEncryptionType $Encryption -Description $MSA_description # For Server 2008 R2 & Server 2012 New-ADServiceAccount $MSA_account -Enabled $true -Description $MSA_description |
De la même façon, vous pouvez consulter ses propriétés via la commande suivante :
1 | Get-AdServiceAccount –identity $MSAaccount |
Association du compte
Il faut ensuite associer le MSA créé avec l’ordinateur sur lequel il sera utilisé :
1 2 | ############## 2-Associate account with target computer (on DC) ############## Add-ADComputerServiceAccount -Identity $TargetComputer -ServiceAccount $MSA_account |
Installation du compte
Pour terminer, installez ce compte de service sur l’ordinateur cible. Pour cela, placez-vous sur la machine allant utiliser ce compte et exécutez la commande suivante :
1 2 3 | ############## 3-Install account on target computer (on target) ############## Import-Module ActiveDirectory Install-AdServiceAccount -identity $MSA_account |
Configuration du compte avec un service
Nous allons maintenant configurer ce compte pour être utilisés par une instance SQL :
- Ouvrez la console SQL Server Configuration Manager et accédez à la propriété Log On du
service en question :
- Dans la console de recherche, modifiez sélectionnez votre domaine puis l’Object types afin
de faire apparaître les comptes de service :
- Laissez le mot de passe en blanc et redémarrez votre service :
Virtual Service Account (VSA)
Présentation
Le VSA est un compte géré localement qui fournit des fonctionnalités permettant de faciliter l’administration des services. Son format est NT SERVICE\{SERVICE NAME}. Ce type de compte peut accéder aux ressources du réseau, mais il devra pour cela s’authentifier avec les credentials du compte ordinateur de type {DOMAIN}\{COMPUTER}$. Si un VSA est utilisé pour un service, le mot de passe devra être laissé en blanc.
Utilisation
Les VSA sont utilisés depuis IIS 7.0 (compte « IIS AppPool\DefaultAppPool » par exemple) et dans SQL Server 2012 si les paramètres par défaut sont utilisés.
Groupes de services administrés (gMSA)
Présentation
Les gMSA (« Group Managed Service Accounts ») sont apparus avec Windows Server 2012 afin de pallier un des problèmes majeurs des comptes MSA, à savoir l’utilisation d’un compte sur un seul et unique ordinateur. De ce fait, il était par exemple impossible d’utiliser un même compte MSA sur un cluster SQL. Il fallait donc soit utiliser un compte de service pour chaque serveur, soit créer un ou plusieurs comptes de domaine pour la ferme de serveurs. Grâce au gMSA, cette restriction « 1:1 » a été supprimée et il est dorénavant possible d’utiliser un même compte sur plusieurs serveurs. On conviendra que cette nouveauté prend tout sens avec la technologie AAG introduite avec SQL Server 2012. Dans son fonctionnement, un gMSA est un compte de service associé à un groupe de sécurité dans lequel seront ajoutés les ordinateurs autorisés à utiliser ce compte.
Applications supportées
Suite à ces nouveautés, les gMSA peuvent désormais être utilisés :
- Sur des hôtes multiples
- Pour des tâches planifiées
- Pour IIS, SQL Server 2012, …
- Pour des services Windows
Prérequis
Pour mettre en place des gMSA, vous devez valider les prérequis suivants :
- Disposer d’un DC avec un schéma en version supérieure ou égale à Server 2012
- Créer une clef racine KDS (détaillé à la suite)
- Installer le compte sur une version supérieure ou égale à Server 2012 ou Windows 8
- Installation des commandes PowerShell pour Active Directory (point 5.1)
Clef KDS :
Les contrôleurs de domaine sous Windows Server 2012 requièrent une clef racine KDS pour la génération des mots de passes associées aux comptes gMSA. Après sa création, il est nécessaire d’attendre 10h afin que la réplication entre les DC converge. Il s’agit là d’une mesure de sécurité afin de s’assurer que tous les DC soient en mesure de répondre aux requêtes gMSA (source).
Mise en place
Configuration du KDS
1 2 3 | ######## Key Distribution Service (KDS) ############## Add-KDSRootKey –EffectiveImmediately #On production environment - Takes up to 10h Add-KdsRootKey –EffectiveTime ((get-date).addhours(-10)); # On test environment |
Création d’un gMSA
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | ############## Variable ############## Import-Module ActiveDirectory $gMSA_account="gMSA_Instance1" #Account name $MSA_description=" SQL instance" #Description $DomainFullName="lab.lan" #Full domain name $FQDN_MSA_account=$gMSA_account+"."+$DomainFullName $Encryption="AES256" #Choose between RC4, AES128 or AES256 $TargetComputer="LAB-SQL01" #Target computer to link with the MSA account $PasswordInterval=30 #In days $gMSAGroup="SG_SQL_SvcAccounts" ############## 1-Setup gMSA account ############## New-ADServiceAccount $gMSA_account -DNSHostName $FQDN_MSA_account -KerberosEncryptionType $Encryption -PrincipalsAllowedToRetrieveManagedPassword $gMSAGroup - ManagedPasswordIntervalInDays $PasswordInterval -Description $MSA_description - SamAccountName $gMSA_account |
1 | Get-AdServiceAccount –identity $MSAaccount |

Ajout du compte ordinateur dans un groupe
Ajoutez l’ordinateur cible du point précédent ($TargetComputer) dans le groupe de gestion créé à cet égard ($gMSAGroup). Il faut ensuite redémarrer votre serveur cible pour prendre en compte cette nouvelle appartenance (ou « membership ») :
1 2 3 | ######## 2-Add computer host in group ############## Add-ADPrincipalGroupMembership -Identity $TargetComputer -MemberOf $gMSAGroup Restart-Computer # Restart target computer |
Installation du compte
Une fois l’ordinateur cible redémarré, installez le compte gMSA sur ce dernier :
1 2 3 | ############## 3-Install account on target computer ############## Import-Module ActiveDirectory Install-AdServiceAccount $gMSA_account |
Configuration du compte avec un service
Référez-vous au point 2.2.4 pour cette partie.
Outils
Outils PowerShell
L’ensemble des commandes utilisées pour la création des comptes de service requièrent l’installation du module Active Directory pour PowerShell sur votre serveur/station de travail :
En PowerShell :
1 2 | Import-Module ServerManager Add-WindowsFeature RSAT-AD-PowerShell |
Console GUI
Il existe également un outil gratuit baptisé Managed Service Accounts GUI permettant d’effectuer l’ensemble des actions décrites au préalable directement via une interface graphique (téléchargement).
Conclusion
Les MSA apparus avec Server 2008 R2 et les gMSA apparus avec Server 2012 viennent donc combler un besoin important en termes de sécurité concernant l’exécution des services. Il ne vous désormais sera plus nécessaire de vous préoccuper de l’administration de ces comptes étant donné que les mots de passe seront automatiquement renouvelés. Et grâce au gMSA, les déploiements de fermes SQL (par exemple) seront simplifiés tout en vous garantissant une sécurité accrue. Le tableau ci-dessous résume les caractéristiques des trois types de comptes présentés dans ce tuto :
N’hésitez pas à m’envoyer vos commentaires ou retours à l’adresse suivante :
m.decrevoisier A-R-0-B-A-5 outlook . com
Soyez-en d’ores et déjà remercié
SOURCES
Sécurité des comptes :
- http://technet.microsoft.com/fr-fr/library/dd367859%28v=ws.10%29.aspx
- http://technet.microsoft.com/en-us/library/ff641729%28v=ws.10%29.aspx
- http://msdn.microsoft.com/en-us/library/ms143504.aspx
- http://blogs.technet.com/b/askds/archive/2009/09/10/managed-service-accounts-understandingimplementing-best-practices-and-troubleshooting.aspx
Groupes gMSA :
Artcile vraiment intéressant, avec des informations complètes ! Un grand merci ça m’a bien aidé !
Ravi que cela vous ait plu. C’est le but premier du site. D’autres vont venir sur le même sujet, mais il me manque tu temps en ce moment. 🙁
Merci pour ce tuto clair et complet ! il y a très peu d’info sur ce sujet dans les livres ou autres, et là j’ai toutes les infos qu’il me fallait 🙂
😉
Merci c’est gentil. C’est surtout l’auteur qu’il faut féliciter !