On continue dans les nouveautés côté sécurité avec la future release SQL Server : la possibilité d’utiliser des comptes virtuels ou des comptes managés. Ces nouveaux types de comptes sont une nouveauté apparue avec la Windows Server 2008 R2 et Windows 7 mais il est possible de les utiliser avec Windows Server 2008 et Windows Server 2003 mais avec quelques restrictions.
Quelle est la différence entre ces deux types de compte ? Principalement le scope de leur utilisation. Les comptes virtuels sont des comptes locaux alors que les comptes managés sont des comptes de domaine.
La question qui vient naturellement : pourquoi utiliser ces types de comptes plutôt que les comptes classiques ? En réalité il y a plusieurs avantages à utiliser ces types de compte :
- L’administration de ces derniers devient plus simple pour les administrateurs systèmes. Une fois un compte virtuel ou managé créé l’administrateur n’a plus besoin de se préoccuper de la gestion des mots de passes. Premièrement le système effectue automatiquement un changement de mot de passe à intervalle régulier. Ensuite il n’est plus nécessaire d’entrer un mot de passe dans la console de gestion des services lorsqu’on utilise ce type de compte. Quel avantage à cela ? Je me souviens que dans bon nombre de sociétés où je suis passé, les administrateurs systèmes (pour faciliter leur travail … et ils avaient totalement raison !!) créaient des comptes de services avec mot de passe figé dans le temps. De plus si ce compte de service était un compte de domaine, il était bien souvent utilisé par plusieurs applications et appliquer une politique de changement de mot passe dans ce cas pouvait devenir très vite un casse tête ! Comme vous le savez créer un compte qui ne possède pas de politique d’expiration de mot de passe est une cible idéale pour les hackers. L’utilisation de ces nouveaux types de comptes permettront de respecter plus rigoureusement les bonnes pratiques de sécurité en vigueur.
- Pour les comptes managés la gestion des SPN est également effectué par le système. Une grande avancée ici car la création, suppression et changement de SPN pour les comptes de domaines étaient une véritable plaie pour les administrateurs systèmes. Toutefois, il existe certaines restrictions : l’utilisation d’un niveau fonctionnel de domaine Windows 2008 R2 permet de gérer automatiquement les changements associés aux SPN pour ce type de compte. Si le niveau fonctionnel est d’une version antérieure ou si le niveau fonctionnel a été upgradé vers 2008 R »2 les changements associés aux SPN devront être effectués manuellement par les administrateurs systèmes
- Les comptes managés me peuvent pas être utilisés par plusieurs ordinateurs. En d’autres terme, chaque compte managé est associé à un seul et unique ordinateur. Si je reprends mon exemple précédant, il ne sera donc pas possible de partager un compte de domaine sur plusieurs instance serveurs de bases de données. On pourra éviter ainsi les problèmes involontaires (ou volontaires) de partage de ressources dû à l’utilisation d’un même crédential par plusieurs applications. Combiné à l’utilisation des SID de services, on a une véritable isolation des ressources pour chaque instance SQL.
- Les comptes virtuels permettent d’accéder au réseau en empruntant l’identité du compte d’ordinateur hôte. Avant l’apparition de ce type de compte, le seul moyen d’accéder aux ressources externes était d’utiliser le compte local Network Service. Hors on se retrouve également avec un problème de partage de ressources puisque il est possible d’utiliser ce type de compte sur n’importe quelle application de n’importe quel autre ordinateur. Potentiellement deux instances SQL utilisent ce type de compte sur deux serveurs distincts peuvent avoir accès à un même partage réseau s’ils utilisent tous deux le compte local Network Service.
- Les comptes virtuels ne peuvent pas être créés manuellement. Ce type de compte pour SQL Server se traduit par l’apparition des comptes NT SERVICE\[instance_name].
- Bien que la gestion des mots de passes soient automatiques, il est possible de forcer le changement de mot de passe pour un compte managé.
- Il est possible de créer ce type de compte par les snap-in mis à disposition mais ceux-ci ne permettent pas le paramétrage de l’ensemble des propriétés existants pour ce type de compte. Il faudra pour cela utiliser les cmdlets powershell dédiés à cela.
Compte virtuel
Comme expliqué précédemment il n’y a pas besoin de configurer un mot de passe pour le service. L’exemple suivant concerne le compte virtuel NT SERVICE\MSSQLSERVER (pour l’instance par défaut) pour une instance SQL Server Denali CTP3.
Après avoir appliquer le changement …
… le mot de passe est automatiquement renseigné par le système
Compte managé
Sur le contrôle de domaine (en version 2008 R2 dans mon cas) on retrouve une section dédiée aux comptes managés.
On peut voir le type de compte qui est msDS-ManagedServiceAcccount. Je ne détaille pas ici les étapes de création de ce type de compte. Je laisse le soin aux administrateurs systèmes de le faire sur leur blog
Pour utiliser un compte managé sur un ordinateur il faut au préalable l’installer de la manière suivante en utilisant le cmdlet Install-ADServiceAccount (il faut au préalable avoir installé les cmdlets nécessaires. Pour cela se référer à la documentation Microsoft)
A noter que si on lance une même installation sur un autre ordinateur on obtient le message suivant :
On constate ici que le compte managé est déjà installé sur l’ordinateur DENALICTP3.
Enfin après avoir installer localement le compte managé on peut l’utiliser en tant que compte de service pour SQL Server :
A noter que le compte managé se présente sous la forme DOMAIN\ServiceName$. Encore une fois ici pas besoin de mot de passe. Celui-ci est automatiquement renseigné lorsque le compte de service se configure.
Bonne configuration de service !!
David BARBARIN (Mikedavem)
MVP SQL Server