25 07 2014
Utiliser les group Managed Service Accounts (gMSA)
Introduit avec Windows Server 2008 R2 2012, les group Managed Service Accounts sont des utilisateurs qui génèrent automatiquement leur mot de passe de manière sécurisé.
Edit: Comme l’a signalé Emmanuel, Windows Server 2008 R2 a apporté les Managed Services Accounts (MSA), et 2012 a apporté les gMSA. La nuance est importante: les MSA sont plus limités que les gMSA. Autre nuance importante: SQL Server 2012 ne supporte que les MSA, pas les gMSA…!
Les group Managed Service Accounts (gMSA) sont des utilisateurs un peu spéciaux, et pourtant le principe est utilisé depuis longtemps dans Active Directory. Mal connus, leur génération est ultra simple, pas de quoi s’en priver !
Pour faire simple, les gMSA sont des utilisateurs Active Directory qui génèrent et renouvellent leur mot de passe automatiquement, sans qu’il ne soit connu de personne. C’est exactement le même principe que les comptes d’ordinateur, par exemple, qui génère et renouvellent leur password automatiquement.
Attention toutefois, les gMSA ne sont pas supportés par tous les produits, y compris chez Microsoft. Par exemple, aucun produit de la suite System Center ne supporte les gMSA…pour l’instant.
Vous pouvez cependant utiliser les gMSA pour les services de base de donnée SQL Server, pour les services IIS, ou encore pour les tâches schedulées (fini la tâche qui ne se lance plus car un administrateur a changé SON mot de passe !).
Création du gMSA:
L’utilisation du gMSA se fait en 1 prérequis + 3 étapes.
Prérequis…10h avant la première utilisation
Sur un contrôleur de domaine, il faut lancer au préalable la commande suivante (en tant que domain admin ou enterprise admin):
1 |
Add-KdsRootKey -EffectiveImmediately |
Cette commande permet de générer la clef « Key Distribution Services » qui sera répliquée sur tous les contrôleurs de domaine. C’est pour cette raison que la clef ne sera active que 10h après sa création.
Dans un environnement de LAB uniquement, vous pouvez forcer l’utilisation un peu en avance avec la commande suivante:
1 |
Add-KdsRootKey –EffectiveTime ((get-date).addhours(-10)) |
Etape 1: Création du Service Account
La première étape consiste à créer le service account. Uniquement en powershell:
1 2 3 4 |
New-ADServiceAccount -Name "SQL01-SCVMMDB" ` #Nom du Service Account -DNSHostName "SQL01.VINFRA.LOCAL" ` #Nom DNS du serveur qui va l'utiliser -Enabled $true ` #Service Account actif immédiatement -PrincipalsAllowedToRetrieveManagedPassword SQL01$ #Compte(s) d'ordinateur(s) autorisé(s) à l'utiliser. |
Etape 2: Associer le compte de service au compte d’ordinateur
Cette étape permet d’ajouter le service account au compte d’ordinateur Active Directory pour qu’il soit autorisé à utiliser le service account:
1 2 |
Add-ADComputerServiceAccount -Identity SQL01 ` # Le nom du serveur qui doit utiliser le gMSA -ServiceAccount SQL01-SCVMMDB # Le nom du gMSA créé précédemment. |
Pour information, cette commande va notamment ajouter le Distinguished Name du service account dans l’attribut msDS-HostServiceAccount du compte d’ordinateur.
Etape 3: Installer le gMSA sur le serveur
Enfin, il faut installer le service account sur le serveur où il sera utilisé. Cette manipulation doit être faite depuis le serveur qui va utiliser le service account. Pour cette manipulation, il faut au moins le module powershell ActiveDirectory sur le serveur. Pour l’installer:
1 |
Add-WindowsFeature RSAT-AD-PowerShell |
Pour installer le service account:
1 |
Install-ADServiceAccount SQL01-SCVMMDB |
Utilisation du gMSA
Edit: Si les gMSA fonctionnent sur SQL Server 2012, cette configuration n’a pas été prévue par les développeurs de SQL Server, et n’a pas été testée et donc, n’est officiellement pas supportée. La configuration reste valable à titre d’exemple... http://blogs.msdn.com/b/sqlosteam/archive/2014/02/19/msa-accounts-used-with-sql.aspx
Voici un exemple d’utilisation du gMSA sur un serveur SQL. A la place du compte utilisateur, entrez le nom d’utilisateur du gMSA avec un $. Ici SQL01-SCVMMDB$. N’entrez rien à la place du mot de passe, et validez !
Activation automatique des VM sur Hyper-V 2012 R2 Configurer le Bare-Metal deployment dans SCVMM
Guillaume, Windows Server 2008R2 a apporté les MSA (Managed Service Account), c’est Windows Server 2012 qui a apporté les gMSA (group Managed Service Account)
Au temps pour moi. Effectivement Emmanuel, tu as raison, la nuance est importante car les MSA sont beaucoup plus limités par rapport aux gMSA.
Autre chose intéressante sur laquelle je viens de tomber, les gMSA ne sont pas supportés par SQL Serveur 2012…contrairement aux MSA !
http://blogs.msdn.com/b/sqlosteam/archive/2014/02/19/msa-accounts-used-with-sql.aspx