Utiliser SQL Server activé par Azure Arc avec des privilèges minimum
S'applique à : SQL Server
Dans le cadre de la sécurité de l’information, le principe des privilèges minimum affirme que les comptes et applications n’ont accès qu’aux données et opérations dont ils ont besoin. Avec SQL Server activé par Azure Arc, vous pouvez exécuter le service d’extension de l’agent avec des privilèges minimum. Cet article explique comment exécuter le service d’extension de l’agent avec des privilèges minimum.
Pour configurer éventuellement le service pour qu’il s’exécute avec des privilèges minimum, suivez les étapes décrites dans cet article. Actuellement, le service ne s’exécute pas automatiquement avec des privilèges minimum.
L’article Configurer des comptes de service Windows et des autorisations pour l’extension Azure pour SQL Server décrit les autorisations de privilèges minimum pour le service d’extension de l’agent.
Remarque
Les serveurs existants avec l’extension de la version de novembre 2024 ou une version ultérieure auront automatiquement une configuration avec privilèges minimum. Cette application se produira progressivement.
Pour empêcher l’application automatique des privilèges minimum, bloquez les mises à niveau d’extension vers la version de novembre 2024.
Après avoir configuré le service d’extension de l’agent pour qu’il s’exécute avec des privilèges minimum, celui-ci utilise le compte de service NT Service\SQLServerExtension
.
Le compte NT Service\SQLServerExtension
est un compte de service Windows local :
- Créé et géré par l’extension Azure pour SQL Server lorsque l’option des privilèges minimum est activée.
- Autorisations et privilèges minimum requis accordés pour exécuter l’extension Azure pour le service SQL Server sur le système d’exploitation Windows. Il n’a accès qu’aux dossiers et annuaires utilisés pour lire et stocker la configuration ou écrire des journaux.
- Autorisation accordée pour se connecter et envoyer des requêtes dans SQL Server avec une nouvelle connexion spécifique à ce compte de service disposant des autorisations minimales requises. Les autorisations minimales dépendent des fonctionnalités activées.
- Mise à jour lorsque les autorisations ne sont plus nécessaires. Par exemple, les autorisations sont révoquées lorsque vous désactivez une fonctionnalité, désactivez la configuration des privilèges minimum ou désinstallez l’extension Azure pour SQL Server. La révocation garantit qu’il n’y a plus aucune autorisation une fois qu’elles ne sont plus requises.
Prérequis
Cette section identifie la configuration requise et les outils dont vous avez besoin pour suivre l’exemple de cet article.
Configuration requise
La configuration avec privilèges minimum nécessite :
- Windows Server 2012 ou version ultérieure
- SQL Server 2012 ou version ultérieure
- Le compte de service SQL Service doit être membre du rôle serveur fixe
sysadmin
- Toutes les bases de données doivent être en ligne et actualisables
La configuration avec privilèges minimum n’est actuellement pas prise en charge sur Linux.
Les autres conditions requises, comme indiqué dans Composants requis pour SQL Server activé par Azure Arc s’appliquent toujours.
Outils
Pour effectuer les étapes de cet article, vous avez besoin des outils suivants :
- Azure CLI
- Extension Azure CLI
arcdata
version1.5.9
ou ultérieure - Version extension Azure pour SQL Server
1.1.2504.99
ou version ultérieure
Activer les privilèges minimum
Connectez-vous à Azure CLI.
az login
Vérifiez la version de l’extension
arcdata
.az extension list -o table
Si les résultats incluent une version prise en charge de
arcdata
, passez à l’étape suivante.Si nécessaire, installez ou mettez à jour l’extension Azure CLI
arcdata
.Pour installer l’extension :
az extension add --name arcdata
Pour mettre à jour l’extension :
az extension update --name arcdata
Activez les privilèges minimum avec Azure CLI.
Pour activer les privilèges minimum, définissez l’indicateur de fonctionnalité
LeastPrivilege
surtrue
. Pour effectuer cette tâche, exécutez la commande suivante avec des valeurs mises à jour pour le<resource-group>
et le<machine-name>
.az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group <resource-group> --machine-name <machine-name>
Par exemple, la commande suivante active les privilèges minimum pour un serveur nommé
myserver
dans un groupe de ressources nommémyrg
:az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group myrg --machine-name myserver
Vérifier la configuration des privilèges minimum
Pour vérifier que votre SQL Server activé par Azure Arc est configuré pour s’exécuter avec des privilèges minimum :
Dans les services Windows, recherchez le service Service d’extension Microsoft SQL Server. Vérifiez que le service s’exécute sous le compte de service
NT Service\SqlServerExtension
.Ouvrez le planificateur de tâches sur le serveur et vérifiez qu’une tâche pilotée par événement portant le nom
SqlServerExtensionPermissionProvider
est créée sousMicrosoft\SqlServerExtension
.Remarque
Avant la version de juillet 2024,
SqlServerExtensionPermissionProvider
est une tâche planifiée. Elle s’exécute toutes les heures.Ouvrez le planificateur de tâches sur le serveur et vérifiez qu’une tâche planifiée portant le nom
SqlServerExtensionPermissionProvider
est créée sousMicrosoft\SqlServerExtension
.Ouvrez SQL Server Management Studio et vérifiez la connexion nommée
NT Service\SqlServerExtension
. Vérifiez que ces autorisations sont affectées au compte :- Connecter SQL
- Afficher le statut de la base de données
- Afficher l’état du serveur
Validez les autorisations avec les requêtes suivantes :
Pour vérifier les autorisations au niveau du serveur, exécutez la requête suivante :
EXECUTE AS LOGIN = 'NT Service\SqlServerExtension' SELECT * FROM fn_my_permissions (NULL, 'SERVER");
Pour vérifier les autorisations au niveau de la base de données, remplacez
<database name>
par le nom de l’une de vos bases de données et exécutez la requête suivante :EXECUTE AS LOGIN = 'NT Service\SqlServerExtension' USE <database name>; SELECT * FROM fn_my_permissions (NULL, 'database");