Partager via


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 :

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");