Sicherheitsübersicht für Azure Arc-fähige Server

In diesem Artikel werden die Sicherheitskonfiguration und entsprechenden Aspekte beschrieben, die Sie vor der Bereitstellung von Azure Arc-fähigen Servern in Ihrem Unternehmen auswerten sollten.

Identität und Zugriffssteuerung

Die rollenbasierte Zugriffssteuerung von Azure wird verwendet, um zu steuern, welche Konten Ihren Azure Arc-aktivierten Server sehen und verwalten können. Auf der Seite Zugriffssteuerung (IAM) im Azure-Portal können Sie überprüfen, wer Zugriff auf Ihren Azure Arc-fähigen Server hat.

Azure Arc-enabled server access control

Benutzer und Anwendungen, denen Zugriff der Rolle Mitwirkender oder „Administrator“ auf die Ressource gewährt wurde, können Änderungen an der Ressource vornehmen, einschließlich der Bereitstellung oder des Löschens von Erweiterungen auf dem Computer. Erweiterungen können beliebige Skripts enthalten, die in einem privilegierten Kontext ausgeführt werden. Daher sollten alle Mitwirkenden an der Azure-Ressource als indirekter Administrator des Servers angesehen werden.

Die Rolle Onboarding für Azure Connected Machine ist für das Onboarding im großen Stil verfügbar und kann nur neue Azure Arc-fähige Server in Azure lesen oder erstellen. Sie kann nicht zum Löschen von Servern verwendet werden, die bereits registriert sind, oder zum Verwalten von Erweiterungen. Als bewährte Methode empfehlen wir, diese Rolle nur dem Microsoft Entra-Dienstprinzipal zuzuweisen, der zum Onboarding von Computern im großen Stil verwendet wird.

Benutzer als Mitglied der Rolle Ressourcenadministrator für Azure Connected Machine können Computer lesen, ändern, erneuten integrieren und löschen. Diese Rolle ist für die Unterstützung der Verwaltung von Azure Arc-fähigen Servern konzipiert, jedoch für keine anderen Ressourcen in der Ressourcengruppe oder im Abonnement.

Agent-Sicherheit und -Berechtigungen

Zur Verwaltung des Azure Connected Machine-Agents (azcmagent) unter Windows muss Ihr Benutzerkonto Mitglied der Gruppe „Lokale Administratoren“ sein. Unter Linux müssen Sie über root-Zugriffsberechtigungen verfügen.

Der Azure Connected Machine-Agent besteht aus drei Diensten, die auf Ihrem Computer ausgeführt werden.

  • Der Hybrid Instance Metadata Service (himds) ist für alle Kernfunktionen von Arc verantwortlich. Dies umfasst das Senden von Heartbeats an Azure, das Verfügbarmachen eines lokalen Instanzmetadatendiensts für andere Apps, um mehr über die Azure-Ressourcen-ID des Computers zu erfahren, und das Abrufen von Microsoft Entra-Tokens zum Authentifizieren bei anderen Azure-Diensten. Dieser Dienst wird als nicht privilegiertes virtuelles Dienstkonto (NT SERVICE\himds) unter Windows und als himds-Benutzer unter Linux ausgeführt. Für das virtuelle Dienstkonto ist das Recht „Als Dienst anmelden“ unter Windows erforderlich.

  • Der Gastkonfigurationsdienst (GCService) ist für das Auswerten von Azure Policy auf dem Computer verantwortlich.

  • Der Gastkonfigurations-Erweiterungsdienst (ExtensionService) ist für das Installieren, Aktualisieren und Löschen von Erweiterungen (Agents, Skripts oder andere Software) auf dem Computer verantwortlich.

Die Gastkonfigurations- und Erweiterungsdienste werden unter Windows als „Lokales System“ und unter Linux als „root“ ausgeführt.

Sicherheitskontrollen für lokale Agents

Ab Agent-Version 1.16 können Sie optional die Erweiterungen einschränken, die auf Ihrem Server installiert werden können, und die Gastkonfiguration deaktivieren. Diese Steuerelemente können nützlich sein, wenn Server zu einem einzigen Zweck mit Azure verbunden werden, z. B. zum Sammeln von Ereignisprotokollen, ohne dass andere Verwaltungsfunktionen auf dem Server genutzt werden können.

Diese Sicherheitskontrollen können nur durch Ausführen eines Befehls auf dem Server selbst konfiguriert werden und können nicht über Azure geändert werden. Dieser Ansatz behält die Absicht des Serveradministrators bei, wenn Remoteverwaltungsszenarien mit Azure Arc aktiviert werden, bedeutet aber auch, dass das Ändern der Einstellung schwieriger ist, wenn Sie sie später ändern möchten. Dieses Feature ist für Server mit vertraulichen Daten vorgesehen (z. B. Active Directory-Domänencontroller, Server, die Zahlungsdaten verarbeiten, oder Server, die strengen Maßnahmen zur Änderungssteuerung unterliegen). In den meisten anderen Fällen ist es nicht erforderlich, diese Einstellungen zu ändern.

Positivlisten und Sperrlisten für Erweiterungen

Um einzuschränken, welche Erweiterungen auf Ihrem Server installiert werden können, können Sie Listen mit den Erweiterungen erstellen, die Sie auf dem Server zulassen und blockieren möchten. Der Erweiterungs-Manager wertet alle Anforderungen zum Installieren, Aktualisieren oder Upgraden von Erweiterungen anhand der Positivliste und Sperrliste aus, um zu ermitteln, ob die Erweiterung auf dem Server installiert werden darf. Löschanforderungen sind immer zulässig.

Die sicherste Option besteht darin, die Erweiterungen, die Sie voraussichtlich installieren, ausdrücklich zuzulassen. Alle Erweiterungen, die nicht in der Positivliste enthalten sind, werden automatisch blockiert. Führen Sie den folgenden Befehl auf jedem Server aus, um den Azure Connected Machine-Agent so zu konfigurieren, dass nur der Azure Monitor-Agent für Linux zugelassen werden:

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

Sie können eine oder mehrere Erweiterungen sperren, indem Sie sie der Sperrliste hinzufügen. Wenn eine Erweiterung sowohl in der Positiv- als auch der Sperrliste vorhanden ist, wird sie gesperrt. Führen Sie den folgenden Befehl aus, um die benutzerdefinierte Skripterweiterung für Linux zu blockieren:

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

Geben Sie Erweiterungen mit Herausgeber und Typ an, getrennt durch einen Schrägstrich /. Sehen Sie sich die Liste der am häufigsten verwendeten Erweiterungen in der Dokumentation an, oder listen Sie im Portal, in Azure PowerShell oder Azure CLI die VM-Erweiterungen auf, die bereits auf Ihrem Server installiert sind.

In der Tabelle wird das Verhalten beim Ausführen eines Erweiterungsvorgangs für einen Agent beschrieben, für den eine Positiv- oder Sperrliste konfiguriert ist.

Vorgang In der Positivliste In der Sperrliste Sowohl in der Positivliste als auch der Sperrliste In keiner der Liste, Positivliste ist jedoch konfiguriert
Installieren der Erweiterung Zulässig Blockiert Blockiert Blockiert
Aktualisieren (Neukonfigurieren) der Erweiterung Zulässig Blockiert Blockiert Blockiert
Upgrade der Erweiterung Zulässig Blockiert Blockiert Blockiert
Löscht der Erweiterung Zulässig Zulässig Zulässig Zulässig

Wichtig

Wenn eine Erweiterung bereits auf Ihrem Server installiert ist, bevor Sie eine Positivliste oder Sperrliste konfigurieren, wird sie nicht automatisch entfernt. Es liegt in Ihrer Verantwortung, die Erweiterung aus Azure zu löschen, um sie vollständig vom Computer zu entfernen. Löschanforderungen werden für dieses Szenario immer akzeptiert. Nach dem Löschen wird über die Positiv- oder Sperrliste festgelegt, ob zukünftige Installationsversuche zugelassen werden.

Seit der Version 1.35 des Agenten gibt es einen speziellen Wert für die Positivliste Allow/None, der den Erweiterungsmanager anweist, die Installation von Erweiterungen nicht zuzulassen. Dies ist die empfohlene Konfiguration, wenn Azure Arc zur Bereitstellung von Windows Server 2012 Extended Security Updates (ESU) verwendet wird und keine anderen Erweiterungen verwendet werden sollen.

azcmagent config set extensions.allowlist "Allow/None"

Aktivieren oder Deaktivieren der Gastkonfiguration

Mit dem Gastkonfigurationsfeature von Azure Policy können Sie Einstellungen auf Ihrem Server über Azure konfigurieren und überwachen. Sie können die Ausführung der Gastkonfiguration auf Ihrem Server verhindern, wenn Sie diese Funktionalität nicht wünschen. Führen Sie hierzu den folgenden Befehl aus:

azcmagent config set guestconfiguration.enabled false

Wenn die Gastkonfiguration deaktiviert ist, werden alle Gastkonfigurationsrichtlinien, die dem Computer in Azure zugewiesen sind, als nicht konform angezeigt. Erwägen Sie, eine Ausnahme für diese Computer zu erstellen oder den Umfang Ihrer Richtlinienzuweisungen zu ändern, wenn Sie nicht möchten, dass diese Computer als nicht konform gemeldet werden.

Aktivieren oder Deaktivieren des Erweiterungs-Managers

Der Erweiterungs-Manager ist für die Installation, Aktualisierung und das Entfernen von VM-Erweiterungen auf Ihrem Server verantwortlich. Sie können den Erweiterungs-Manager deaktivieren, um zu verhindern, dass Erweiterungen auf Ihrem Server verwaltet werden, aber wir empfehlen die Verwendung von Positiv- und Sperrlisten anstelle einer detaillierteren Kontrolle.

azcmagent config set extensions.enabled false

Das Deaktivieren des Erweiterungs-Managers entfernt keine bereits auf Ihrem Server installierten Erweiterungen. Erweiterungen, die in eigenen Windows- oder Linux-Diensten gehostet werden, z. B. der Log Analytics-Agent, werden möglicherweise weiterhin ausgeführt, auch wenn der Erweiterungs-Manager deaktiviert ist. Andere Erweiterungen, die vom Erweiterungs-Manager selbst gehostet werden, wie der Azure Monitor-Agent, werden nicht ausgeführt, wenn der Erweiterungs-Manger deaktiviert ist. Sie sollten alle Erweiterungen entfernen, bevor Sie den Erweiterungs-Manager deaktivieren, um sicherzustellen, dass keine Erweiterungen weiterhin auf dem Server ausgeführt werden.

Bewährte Methoden für gesperrte Computer

Beim Konfigurieren des Azure Connected Machine-Agents mit einem reduzierten Satz von Funktionen ist es wichtig, die Mechanismen zu berücksichtigen, die jemand verwenden könnte, um diese Einschränkungen zu entfernen, und entsprechende Kontrollen zu implementieren. Alle, die Befehle als Administrator oder Root-Benutzer auf dem Server ausführen können, können die Konfiguration des Azure Connected Machine-Agents ändern. Erweiterungen und Gastkonfigurationsrichtlinien werden in privilegierten Kontexten auf Ihrem Server ausgeführt und könnten daher möglicherweise die Agent-Konfiguration ändern. Wenn Sie die Sicherheitskontrollen des lokalen Agents anwenden, um den Agent zu sperren, empfiehlt Microsoft die folgenden bewährten Methoden, um sicherzustellen, dass ausschließlich lokale Serveradministratoren Änderungen an der Agentkonfiguration vornehmen können:

  • Verwenden Sie nach Möglichkeit für Erweiterungen Positivlisten anstelle von Sperrlisten.
  • Nehmen Sie die benutzerdefinierte Skripterweiterung nicht in die Positivliste für Erweiterungen auf, um die Ausführung beliebiger Skripts zu verhindern, die die Agentkonfiguration ändern könnten.
  • Deaktivieren Sie die Gastkonfiguration, um die Verwendung von benutzerdefinierten Gastkonfigurationsrichtlinien zu verhindern, die die Agentkonfiguration ändern könnten.

Beispielkonfiguration für Überwachungs- und Sicherheitsszenarien

Es ist üblich, Azure Arc zu verwenden, um Ihre Server mit Azure Monitor und Microsoft Sentinel zu überwachen und sie mit Microsoft Defender für Cloud zu schützen. Dieser Abschnitt enthält Beispiele dafür, wie Sie den Agenten so sperren können, dass er nur Überwachungs- und Sicherheitsszenarien unterstützt.

Nur Azure Monitor Agent

Führen Sie auf Ihren Windows-Servern die folgenden Befehle in einer Befehlskonsole mit erhöhten Rechten aus:

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

Führen Sie auf Ihren Linux-Servern die folgenden Befehle aus:

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

Nur Log Analytics und Abhängigkeit (Azure Monitor VM Insights)

Diese Konfiguration gilt für die älteren Log Analytics-Agents und den Abhängigkeits-Agent.

Führen Sie auf Ihren Windows-Servern die folgenden Befehle in einer Konsole mit erhöhten Rechten aus:

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

Führen Sie auf Ihren Linux-Servern die folgenden Befehle aus:

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

Überwachung und Sicherheit

Microsoft Defender für Cloud stellt Erweiterungen auf Ihrem Server bereit, um anfällige Software auf Ihrem Server zu identifizieren und Microsoft Defender für Endpoint zu aktivieren (sofern konfiguriert). Microsoft Defender für Cloud verwendet im Rahmen seiner Funktion zur Einhaltung gesetzlicher Bestimmungen ebenfalls die Gastkonfiguration. Da eine benutzerdefinierte Gastkonfigurationszuweisung verwendet werden könnte, um die Einschränkungen für den Agent rückgängig zu machen, sollten Sie sorgfältig prüfen, ob Sie die Funktion zur Einhaltung gesetzlicher Bestimmungen benötigen und daher die Gastkonfiguration auf dem Computer aktiviert werden muss.

Führen Sie auf Ihren Windows-Servern die folgenden Befehle in einer Befehlskonsole mit erhöhten Rechten aus:

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

Führen Sie auf Ihren Linux-Servern die folgenden Befehle aus:

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

Agent-Modi

Eine einfachere Möglichkeit zum Konfigurieren lokaler Sicherheitssteuerungen für Überwachungs- und Sicherheitsszenarien ist die Verwendung des Überwachungsmodus, der mit Agent-Version 1.18 und neuer verfügbar ist. Modi sind von Microsoft verwaltete vordefinierte Konfigurationen der Erweiterungspositivliste und des Gastkonfigurations-Agent. Wenn neue Erweiterungen verfügbar werden, die Überwachungsszenarien aktivieren, aktualisiert Microsoft die Positivlisten- und Agent-Konfiguration, um die neue Funktionalität entsprechend einzuschließen oder auszuschließen.

Sie können zwischen zwei Modi wählen:

  1. vollständig: der Standardmodus. Damit können alle Agent-Funktionen aktiviert werden.
  2. Überwachung: ein eingeschränkter Modus, der den Gastkonfigurationsrichtlinien-Agent deaktiviert und nur die Verwendung von Erweiterungen im Zusammenhang mit Überwachung und Sicherheit ermöglicht.

Führen Sie den folgenden Befehl aus, um den Überwachungsmodus zu aktivieren:

azcmagent config set config.mode monitor

Sie können den aktuellen Modus des Agent und zulässige Erweiterungen mit dem folgenden Befehl überprüfen:

azcmagent config list

Im Überwachungsmodus können Sie die Erweiterungspositivliste oder die Sperrliste nicht ändern. Wenn Sie eine Liste ändern müssen, ändern Sie den Agent wieder in den vollständigen Modus, und geben Sie Ihre eigene Positivliste und Sperrliste an.

Führen Sie den folgenden Befehl aus, um den Agent wieder in den vollständigen Modus zu ändern:

azcmagent config set config.mode full

Verwenden einer verwalteten Identität mit Azure Arc-fähigen Servern

Standardmäßig kann die von Arc verwendete systemseitig zugewiesene Microsoft Entra-Identität nur zum Aktualisieren des Status des Azure Arc-fähigen Servers in Azure verwendet werden. Beispielsweise der zuletzt angezeigte Heartbeat-Status. Sie können der Identität optional weitere Rollen zuweisen, wenn eine Anwendung auf Ihrem Server die systemseitig zugewiesene Identität verwendet, um auf andere Azure-Dienste zuzugreifen. Weitere Informationen zur Konfiguration einer systemseitig zugewiesenen verwalteten Identität für den Zugriff auf Azure-Ressourcen finden Sie unter Authentifizieren bei Azure-Ressourcen mit Azure Arc-fähigen Servern.

Während jede Anwendung, die auf dem Computer ausgeführt wird, auf den Hybrid Instance Metadata Service zugreifen kann, können nur autorisierte Anwendungen ein Microsoft Entra-Token für die systemseitig zugewiesene Identität anfordern. Beim ersten Zugriffsversuch auf den Token-URI generiert der Dienst ein zufällig generiertes kryptografisches Blob an einem Speicherort im Dateisystem, das nur vertrauenswürdige Aufrufer lesen können. Der Aufrufer muss dann die Datei lesen (die beweist, dass sie über die entsprechenden Berechtigungen verfügt) und die Anforderung mit dem Dateiinhalt im Autorisierungsheader wiederholen, um erfolgreich ein Microsoft Entra-Token abzurufen.

  • Unter Windows muss der Aufrufer Mitglied der lokalen Gruppe Administratoren oder der Gruppe Hybrid-Agent-Erweiterungsanwendungen sein, um das Blob lesen zu können.

  • Unter Linux muss der Aufrufer Mitglied der himds-Gruppe sein, um das Blob lesen zu können.

Weitere Informationen zur Authentifizierung und dem Zugriff auf Azure-Ressourcen mithilfe einer verwalteten Identität mit Arc-fähigen Servern finden Sie im folgenden Video.

Verwenden der Datenträgerverschlüsselung

Der Azure Connected Machine-Agent verwendet die Authentifizierung mit öffentlichem Schlüssel für die Kommunikation mit dem Azure-Dienst. Nachdem Sie einen Server in Azure Arc integriert haben, wird ein privater Schlüssel auf dem Datenträger gespeichert und immer dann verwendet, wenn der Agent mit Azure kommuniziert. Bei Diebstahl kann der private Schlüssel auf einem anderen Server verwendet werden, um mit dem Dienst zu kommunizieren, und so agieren, als ob es sich um den ursprünglichen Server handelt. Dies umfasst das Erhalten des Zugriffs auf die systemseitig zugewiesene Identität sowie auf alle Ressourcen, auf die diese Identität Zugriff hat. Die Datei mit dem privaten Schlüssel ist so geschützt, dass Sie nur das himds-Konto zum Lesen darauf Zugriff hat. Um Offlineangriffe zu verhindern, wird dringend empfohlen, die vollständige Datenträgerverschlüsselung (z. B. BitLocker, dm-crypt usw.) auf dem Betriebssystemvolume Ihres Servers zu verwenden.

Nächste Schritte

  • Bevor Sie Server mit Azure Arc-Unterstützung auf mehreren Hybridcomputern auswerten oder aktivieren, lesen Sie Übersicht über den Connected Machine-Agent, um die Anforderungen und technischen Details zum Agent und Bereitstellungsmethoden zu verstehen.

  • Lesen Sie den Planungs- und Bereitstellungsleitfaden, um die Bereitstellung von Servern mit Azure Arc-Unterstützung in beliebiger Größenordnung zu planen und eine zentrale Verwaltung und Überwachung zu implementieren.