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.

Compte de service SQL Server

Par défaut, le compte de service SQL Server est membre du rôle serveur fixe sysadmin.

Comme indiqué dans les conditions préalables, le compte de service SQL Server doit être membre du rôle serveur fixe sysadmin sur chaque instance SQL Server. L’extension Azure pour SQL Server a un processus appelé Deployer.exe qui s’exécute temporairement comme NT AUTHORITY\SYSTEM quand :

  • Les fonctionnalités sont activées ou désactivées
  • Les instances SQL Server sont ajoutées ou supprimées

Deployer.exe emprunte l’identité du compte de service SQL Server pour se connecter à SQL Server et ajouter ou supprimer des autorisations dans les rôles de serveur et de base de données en fonction des fonctionnalités activées ou désactivées pour s’assurer que l’extension Azure pour SQL Server utilise les privilèges minimum requis. Pour modifier ces autorisations, le compte de service SQL Server doit être membre du rôle serveur sysadmin.

Si vous souhaitez gérer ce processus avec plus de contrôle, de sorte que le compte de service SQL Server ne soit pas membre du rôle serveur sysadmin tout le temps, procédez comme suit :

  1. Ajoutez temporairement le compte de service SQL Server au rôle serveur sysadmin.
  2. Autorisez Deployer.exe à s’exécuter au moins une fois afin que les autorisations soient définies.
  3. Supprimez le compte de service SQL Server du rôle sysadmin.

Répétez cette procédure chaque fois que les fonctionnalités sont activées ou désactivées ou que des instances SQL Server sont ajoutées pour autoriser Deployer.exe à octroyer les privilèges minimum requis.

Outils

Pour effectuer les étapes de cet article, vous avez besoin des outils suivants :

Activer les privilèges minimum

  1. Connectez-vous à Azure CLI.

    az login
    
  2. 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
    
  3. Activez les privilèges minimum avec Azure CLI.

    Pour activer les privilèges minimum, définissez l’indicateur de fonctionnalité LeastPrivilege sur true. 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 :

  1. 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. 

  2. 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 sous Microsoft\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 sous Microsoft\SqlServerExtension.

  3. 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
  4. 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");