Vue d’ensemble de référence de la sécurité des serveurs avec Azure Arc

Cet article décrit la configuration et les considérations relatives à la sécurité que vous devez évaluer avant de déployer des serveurs avec Azure Arc dans votre entreprise.

Contrôle des accès et des identités

Le contrôle d’accès en fonction du rôle Azure est utilisé pour contrôler les comptes qui peuvent voir et gérer votre serveur avec Azure Arc. À partir de la page Contrôle d’accès (IAM) du portail Azure, vous pouvez vérifier qui a accès à votre serveur avec Azure Arc.

Azure Arc-enabled server access control

Les utilisateurs et les applications bénéficiant de l’accès à la ressource par le biais du rôle d’administrateur ou de contributeur peuvent apporter des modifications à la ressource, y compris le déploiement ou la suppression d’extensions sur la machine. Les extensions peuvent inclure des scripts arbitraires qui s’exécutent dans un contexte privilégié ; par conséquent, vous devez considérer tout contributeur sur la ressource Azure comme un administrateur indirect du serveur.

Le rôle Intégration d’Azure Connected Machine est disponible pour l’intégration à grande échelle et il peut uniquement lire ou créer de nouveaux serveurs avec Azure Arc dans Azure. Il ne peut pas servir à supprimer des serveurs déjà inscrits, ou à gérer des extensions. En tant que bonne pratique, nous vous recommandons d’attribuer ce rôle uniquement au principal du service Microsoft Entra utilisé pour l’intégration des machines à grande échelle.

En tant que membres du rôle Administrateur des ressources Azure Connected Machine, les utilisateurs peuvent lire, modifier, réintégrer et supprimer une machine. Ce rôle est conçu pour prendre en charge la gestion des serveurs avec Azure Arc, mais aucune autre ressource dans le groupe de ressources ou l’abonnement.

Sécurité et autorisations de l’agent

Pour gérer l’agent Azure Connected Machine (azcmagent) sur Windows, votre compte d’utilisateur doit être membre du groupe Administrateurs local. Sur Linux, vous devez disposer d’autorisations d’accès racine.

L’agent Azure Connected Machine est composé de trois services, qui s’exécutent sur votre machine.

  • Le service Hybrid Instance Metadata Service (himds) est responsable de toutes les fonctionnalités principales d’Arc. Cela inclut l’envoi de pulsations à Azure, l’exposition d’un service de métadonnées d’instance locale pour d’autres applications afin d’en savoir plus sur l’ID de ressource Azure de la machine et de récupérer des jetons Microsoft Entra pour s’authentifier auprès d’autres services Azure. Ce service s’exécute en tant que compte de service virtuel non privilégié (NT SERVICE\himds) sous Windows et en tant qu’utilisateur himds sous Linux. Le compte de service virtuel nécessite le droit de se connecter en tant que service sous Windows.

  • Le service de configuration d’invité (GCService) est responsable de l’évaluation d’Azure Policy sur la machine.

  • Le service Extension de la configuration Invité (ExtensionService) est responsable de l’installation, de la mise à niveau et de la suppression des extensions (agents, scripts ou autres logiciels) sur la machine.

Les services de configuration et d’extension d’invités s’exécutent en tant que Système local sur Windows, et en tant que racine sur Linux.

Contrôles de sécurité de l’agent local

À compter de la version 1.16 de l’agent, vous avez la possibilité de limiter les extensions pouvant être installées sur votre serveur et de désactiver la configuration Invité. Ces contrôles peuvent être utiles lors de la connexion de serveurs à Azure à des fins uniques, telles que la collecte des journaux d’événements, sans permettre à d’autres fonctionnalités de gestion d’être utilisées sur le serveur.

Ces contrôles de sécurité peuvent uniquement être configurés en exécutant une commande sur le serveur lui-même et ne peuvent pas être modifiées à partir d’Azure. Cette approche préserve l’intention de l’administrateur du serveur lors de l’activation de scénarios de gestion à distance avec Azure Arc, mais elle signifie également que la modification du paramètre s’avère plus difficile si vous décidez par la suite de le modifier. Cette fonctionnalité est destinée aux serveurs sensibles (par exemple, les contrôleurs de domaine Active Directory, les serveurs qui gèrent les données de paiement et les serveurs soumis à des mesures strictes de contrôle des modifications). Dans la plupart des autres cas, il n’est pas nécessaire de modifier ces paramètres.

Listes d’autorisation et listes de refus d’extensions

Pour limiter les extensions qui peuvent être installées sur votre serveur, vous pouvez configurer des listes des extensions que vous souhaitez autoriser et bloquer sur le serveur. Le gestionnaire d’extensions évalue toutes les demandes d’installation, de mise à jour ou de mise à niveau des extensions sur la liste verte et la liste de blocs pour déterminer si l’extension peut être installée sur le serveur. Les demandes de suppression sont toujours autorisées.

L’option la plus sûre consiste à autoriser explicitement les extensions que vous prévoyez d’installer. Toute extension qui ne figure pas dans la liste d’autorisation est automatiquement bloquée. Pour configurer l’agent Azure Connected Machine pour autoriser uniquement l’agent Azure Monitor pour Linux, exécutez la commande suivante sur chaque serveur :

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"

Vous pouvez bloquer une ou plusieurs extensions en les ajoutant à la liste de refus. Si une extension est présente à la fois dans la liste verte et la liste de blocs, elle est bloquée. Pour bloquer l’extension de script personnalisé pour Linux, exécutez la commande suivante :

azcmagent config set extensions.blocklist "Microsoft.Azure.Extensions/CustomScript"

Spécifiez les extensions avec leur serveur de publication et leur type, séparées par une barre oblique /. Consultez la liste des extensions les plus courantes dans la documentation ou listez les extensions de machine virtuelle déjà installées sur votre serveur dans le portail, Azure PowerShell ou Azure CLI.

La table décrit le comportement lors de l’exécution d’une opération d’extension sur un agent sur lequel la liste verte ou la liste de blocs est configurée.

Opération Dans la liste d’autorisation Dans la liste de refus Dans la liste d’autorisation et la liste de refus Dans aucune liste, alors qu’une liste d’autorisation est configurée
Installer l’extension Autorisé Blocage Bloqué Blocage
Mettre à jour (reconfigurer) l’extension Autorisé Blocage Bloqué Blocage
Mettre à niveau l’extension Autorisé Blocage Bloqué Blocage
Supprimer l’extension Autorisé(e) Autorisé Autorisé Autorisé

Important

Si une extension est déjà installée sur votre serveur avant de configurer une liste verte ou une liste de blocs, elle ne sera pas automatiquement supprimée. Il vous incombe de supprimer l’extension d’Azure pour la supprimer entièrement de la machine. Les demandes de suppression sont toujours acceptées pour satisfaire ce scénario. Une fois supprimés, la liste verte et la liste de blocs déterminent s’il faut autoriser ou non les tentatives d’installation futures.

À compter de l’agent version 1.35, il existe une valeur de liste verte spéciale Allow/None, qui indique au gestionnaire d’extensions d’exécuter, mais pas d’autoriser l’installation des extensions. Il s’agit de la configuration recommandée lors de l’utilisation d’Azure Arc pour fournir des mises à jour de sécurité étendues (ESU) Windows Server 2012 sans avoir l’intention d’utiliser d’autres extensions.

azcmagent config set extensions.allowlist "Allow/None"

Activer ou désactiver la configuration Invité

La fonctionnalité de configuration Invité d’Azure Policy vous permet d’auditer et de configurer des paramètres sur votre serveur à partir d’Azure. Vous pouvez désactiver l’exécution de la configuration Invité sur votre serveur si vous ne voulez pas autoriser cette fonctionnalité en exécutant la commande suivante :

azcmagent config set guestconfiguration.enabled false

Lorsque Guest Configuration est désactivé, toutes les stratégies Guest Configuration affectées à la machine dans Azure s’affichent comme non conformes. Envisagez de créer une exemption pour ces machines ou modifier l’étendue de vos affectations de stratégie si vous ne souhaitez pas voir ces ordinateurs signalés comme non conformes.

Activer ou désactiver le gestionnaire d’extensions

Le gestionnaire d’extensions est responsable de l’installation, de la mise à jour et de la suppression des extensions de machine virtuelle sur votre serveur. Vous pouvez désactiver le gestionnaire d’extensions pour empêcher la gestion des extensions sur votre serveur, mais nous vous recommandons d’utiliser les listes d’autorisation et de blocage à la place pour un contrôle plus précis.

azcmagent config set extensions.enabled false

La désactivation du gestionnaire d’extensions ne supprime aucune extension déjà installée sur votre serveur. Les extensions hébergées dans leurs propres services Windows ou Linux, tels que l’agent Log Analytics, peuvent continuer à s’exécuter même si le gestionnaire d’extensions est désactivé. Les autres extensions hébergées par le gestionnaire d’extensions lui-même, comme l’agent Azure Monitor, ne s’exécutent pas si le gestionnaire d’extensions est désactivé. Vous devez supprimer toutes les extensions avant de désactiver le gestionnaire d’extensions pour vous assurer qu’aucune extension ne continue à s’exécuter sur le serveur.

Bonnes pratiques pour les ordinateurs verrouillés

Lors de la configuration de l’agent Azure Connected Machine avec un ensemble réduit de fonctionnalités, il est important de prendre en compte les mécanismes que quelqu’un peut utiliser pour supprimer ces restrictions et implémenter des contrôles appropriés. Toute personne capable d’exécuter des commandes en tant qu’administrateur ou utilisateur racine sur le serveur peut modifier la configuration de l’agent Azure Connected Machine. Les extensions et les stratégies de configuration invité s’exécutent dans des contextes privilégiés sur votre serveur, et, par conséquent, peuvent modifier la configuration de l’agent. Si vous appliquez des contrôles de sécurité d’agent local pour verrouiller l’agent, Microsoft recommande les bonnes pratiques suivantes pour vous assurer que seuls les administrateurs de serveur locaux peuvent mettre à jour la configuration de l’agent :

  • Utilisez des listes d’autorisation pour les extensions au lieu de listes de refus dans la mesure du possible.
  • N’incluez pas l’extension de script personnalisé dans la liste d’autorisation pour empêcher l’exécution de scripts arbitraires susceptibles de modifier la configuration de l’agent.
  • Désactivez la configuration Invité pour empêcher l’utilisation de stratégies de configuration Invité personnalisées susceptibles de modifier la configuration de l’agent.

Exemple de configuration pour les scénarios de monitoring et de sécurité

Il est courant d’utiliser Azure Arc pour superviser des serveurs avec Azure Monitor et Microsoft Sentinel, et les sécuriser avec Microsoft Defender pour le cloud. Cette section contient des exemples de verrouillage de l’agent pour prendre uniquement en charge les scénarios de surveillance et de sécurité.

Agent Azure Monitor uniquement

Sur vos serveurs Windows, exécutez les commandes suivantes dans une console de commandes avec élévation de privilèges :

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorWindowsAgent"
azcmagent config set guestconfiguration.enabled false

Sur vos serveurs Linux, exécutez les commandes suivantes :

sudo azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"
sudo azcmagent config set guestconfiguration.enabled false

Log Analytics et Dependency Agent (Insights de machine virtuelle Azure Monitor) uniquement

Cette configuration concerne les agents Log Analytics hérités et Dependency Agent.

Sur vos serveurs Windows, exécutez les commandes suivantes dans une console avec élévation de privilèges :

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentWindows"
azcmagent config set guestconfiguration.enabled false

Sur vos serveurs Linux, exécutez les commandes suivantes :

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentLinux"
sudo azcmagent config set guestconfiguration.enabled false

Monitoring et sécurité

Microsoft Defender pour Cloud déploie des extensions sur votre serveur pour identifier les logiciels vulnérables sur votre serveur et activer Microsoft Defender pour point de terminaison (s’il est configuré). Microsoft Defender pour le cloud utilise également la configuration Invité pour sa fonctionnalité de conformité réglementaire. Étant donné qu’une affectation de configuration Invité personnalisée peut être utilisée pour annuler les limitations de l’agent, vous devez évaluer avec soin si vous avez besoin de la fonctionnalité de conformité réglementaire et, par conséquent, d’activer la configuration Invité sur la machine.

Sur vos serveurs Windows, exécutez les commandes suivantes dans une console de commandes avec élévation de privilèges :

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Qualys/WindowsAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Windows,Microsoft.Azure.AzureDefenderForSQL/AdvancedThreatProtection.Windows"
azcmagent config set guestconfiguration.enabled true

Sur vos serveurs Linux, exécutez les commandes suivantes :

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Qualys/LinuxAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Linux"
sudo azcmagent config set guestconfiguration.enabled true

Modes d’agent

Un moyen plus simple de configurer des contrôles de sécurité locaux pour la surveillance et les scénarios de sécurité consiste à utiliser le mode monitor, disponible avec l’agent version 1.18 et plus récente. Les modes représentent des configurations prédéfinies de la liste d’autorisation des extensions et de l’agent de configuration, gérées par Microsoft. À mesure que de nouvelles extensions deviennent disponibles pour permettre des scénarios de surveillance, Microsoft met à jour la liste d’autorisation et la configuration de l’agent pour inclure ou exclure les nouvelles fonctionnalités, selon les besoins.

Vous pouvez choisir entre deux modes :

  1. full - mode par défaut. Active toutes les fonctionnalités de l’agent.
  2. monitor - mode restreint qui désactive l’agent de stratégie de configuration invité et autorise uniquement l’utilisation d’extensions liées à la surveillance et à la sécurité.

Pour activer le mode monitor, exécutez la commande suivante :

azcmagent config set config.mode monitor

Vous pouvez vérifier le mode actuel de l’agent et les extensions autorisées avec la commande suivante :

azcmagent config list

En mode monitor, vous ne pouvez pas modifier la liste d’autorisation ou la liste de refus des extensions. Si vous devez modifier l’une de ces listes, passez l’agent en mode full et spécifiez vos propres listes d’autorisation et de refus.

Pour passer l’agent en mode full, exécutez la commande suivante :

azcmagent config set config.mode full

Utilisation d’une identité managée sur les serveurs avec Azure Arc

Par défaut, l’identité affectée par le système Microsoft Entra utilisée par Arc ne peut être utilisée que pour mettre à jour l’état du serveur avec Azure Arc dans Azure. Par exemple, l’état des pulsations la dernière fois. Vous pouvez éventuellement affecter des rôles supplémentaires à l’identité si une application sur votre serveur utilise l’identité attribuée par le système pour accéder aux autres services Azure. Pour en savoir plus sur la configuration d'une identité gérée attribuée par le système pour accéder aux ressources Azure, voir Authentification contre les ressources Azure avec des serveurs compatibles avec Azure Arc.

Bien que le service de métadonnées d’instance hybride soit accessible par n’importe quelle application s’exécutant sur l’ordinateur, seules les applications autorisées peuvent demander un jeton Microsoft Entra pour l’identité affectée par le système. Lors de la première tentative d’accès à l’URI du jeton, le service génère un objet blob de chiffrement généré de manière aléatoire dans un emplacement sur le système de fichiers que seuls les appelants approuvés peuvent lire. L’appelant doit ensuite lire le fichier (montrant qu’il dispose d’une autorisation appropriée) et réessayer la demande avec le contenu du fichier dans l’en-tête d’autorisation pour récupérer un jeton Microsoft Entra.

  • Sur Windows, l’appelant doit être membre du groupe local Administrateurs, ou du groupe Applications d’extension de l’agent hybride pour lire l’objet blob.

  • Sur Linux, l’appelant doit être membre du groupe himds pour lire l’objet blob.

Pour en savoir plus sur l'utilisation d'une identité gérée avec des serveurs compatibles avec Arc pour s'authentifier et accéder aux ressources Azure, consultez la vidéo suivante.

Utilisation du chiffrement de disque

L’agent Azure Connected Machine utilise l’authentification par clé publique pour communiquer avec le service Azure. Après avoir intégré un serveur à Azure Arc, une clé privée est enregistrée sur le disque et utilisée chaque fois que l’agent communique avec Azure. En cas de vol, la clé privée peut être utilisée sur un autre serveur pour communiquer avec le service et faire comme s’il s’agissait du serveur d’origine. Entre autres actions possibles, l’obtention de l’accès à l’identité attribuée par le système et à toutes les ressources auxquelles l’identité a accès. Le fichier de clé privée est protégé afin d’autoriser uniquement au compte himds l’accès pour le lire. Pour empêcher les attaques hors connexion, nous vous recommandons vivement d’utiliser le chiffrement de disque complet (par exemple, BitLocker, dm-crypt, etc.) sur le volume du système d’exploitation de votre serveur.

Étapes suivantes

  • Avant d’évaluer ou d’activer des serveurs avec Azure Arc sur plusieurs machines hybrides, consultez Vue d’ensemble de l’agent Machine connectée pour en savoir plus sur les spécifications et les détails techniques relatifs à l’agent, ainsi que sur les méthodes de déploiement.

  • Consultez le Guide de planification et de déploiement pour planifier le déploiement de serveurs avec Azure Arc à n’importe quelle échelle et implémenter la gestion et la supervision centralisées.