Rollen, Berechtigungen und Sicherheit in Azure Monitor

Dieser Artikel beschreibt, wie Sie schnell eine integrierte Rolle zur Überwachung auf einen Benutzer in Azure anwenden oder Ihre eigene benutzerdefinierte Rolle für einen Benutzer erstellen, der eingeschränkte Überwachungsberechtigungen benötigt. Anschließend werden im Artikel Sicherheitsaspekte für Ihre Azure Monitor-Ressourcen erörtert, und es wird beschrieben, wie Sie den Zugriff auf die Daten in diesen Ressourcen beschränken können.

Integrierte Überwachungsrollen

Integrierte Rollen in Azure Monitor helfen dabei, den Zugriff auf Ressourcen in einem Abonnement einzuschränken, während das Personal für die Infrastrukturüberwachung weiterhin die benötigten Daten abrufen und konfigurieren kann. Azure Monitor bietet zwei vorkonfigurierte Rollen: Überwachungsleser und Überwachungsmitwirkender. Azure Monitor-Protokolle bieten auch integrierte Rollen zum Verwalten des Zugriffs auf Daten in einem Log Analytics-Arbeitsbereich, wie unter Verwalten des Zugriffs auf Log Analytics-Arbeitsbereiche beschrieben.

Überwachungsleser

Personen, denen die Überwachungsleserrolle zugewiesen wird, können alle Überwachungsdaten in einem Abonnement anzeigen, aber keine Ressourcen ändern oder Einstellungen im Zusammenhang mit der Ressourcenüberwachung bearbeiten. Diese Rolle eignet sich für Benutzer in einer Organisation, beispielsweise Support- oder Betriebstechniker, die folgende Aufgaben erfüllen müssen:

  • Anzeigen von Überwachungsdashboards im Azure-Portal
  • Anzeigen von in Azure-Warnungen definierten Warnungsregeln
  • Abfragen von Azure Monitor-Metriken über die Azure Monitor-REST-API, PowerShell-Cmdlets oder die plattformübergreifende Befehlszeilenschnittstelle
  • Abfragen des Aktivitätsprotokolls über das Portal, die Azure Monitor-REST-API, PowerShell-cmdlets oder die plattformübergreifende CLI.
  • Anzeigen der Diagnoseeinstellungen für eine Ressource.
  • Anzeigen des Protokollprofils für ein Abonnement.
  • Anzeigen von Einstellungen für die automatische Skalierung.
  • Anzeigen von Warnaktivitäten und -einstellungen.
  • Durchsuchen von Arbeitsbereichsdaten von Log Analytics, einschließlich Nutzungsdaten für den Arbeitsbereich
  • Abrufen der Tabellenschemas in einem Log Analytics-Arbeitsbereich
  • Abrufen und Ausführen von Protokollabfragen in einem Log Analytics-Arbeitsbereich
  • Zugreifen auf Application Insights-Daten

Hinweis

Diese Rolle erteilt keinen Lesezugriff für Protokolldaten, die an einen Event Hub gestreamt oder in einem Speicherkonto gespeichert wurden. Informationen zum Konfigurieren des Zugriffs auf diese Ressourcen finden Sie im Abschnitt Sicherheitsaspekte für Überwachungsdaten weiter unten in diesem Artikel.

Überwachungsmitwirkender

Personen, denen die Rolle „Überwachungsmitwirkender“ zugewiesen wurde, können alle Überwachungsdaten in einem Abonnement anzeigen. Sie können auch Überwachungseinstellungen erstellen oder ändern, aber keine anderen Ressourcen ändern.

Diese Rolle ist der Rolle „Überwachungsleser“ übergeordnet. Sie ist für Mitglieder des Überwachungsteams einer Organisation oder für verwaltete Dienstanbieter geeignet, die zusätzlich zu den oben genannten Berechtigungen zu Folgendem in der Lage sein müssen:

  • Anzeigen von Überwachungsdashboards im Portal und Erstellen ihrer eigenen privaten Überwachungsdashboards.
  • Erstellen und Bearbeiten von Diagnoseeinstellungen für eine Ressource 1
  • Festlegen der Aktivität und der Einstellungen für Warnungsregeln über Azure-Warnungen;
  • Auflisten der freigegebenen Schlüssel für einen Log Analytics-Arbeitsbereich.
  • Erstellen, Löschen und Ausführen gespeicherter Suchvorgänge in einem Log Analytics-Arbeitsbereich.
  • Erstellen und Löschen der Speicherkonfiguration des Arbeitsbereichs für Log Analytics.
  • Erstellen von Webtests und Komponenten für Application Insights. mehr dazu unter Ressourcen, Rollen und Zugriffssteuerung in Application Insights

1 Benutzer*innen muss außerdem gesondert die Berechtigung „ListKeys“ in der Zielressource (Speicherkonto oder Event Hub-Namespace) erteilt werden, damit sie eine Diagnoseeinstellung erstellen oder bearbeiten können.

Hinweis

Diese Rolle erteilt keinen Lesezugriff für Protokolldaten, die an einen Event Hub gestreamt oder in einem Speicherkonto gespeichert wurden. Informationen zum Konfigurieren des Zugriffs auf diese Ressourcen finden Sie im Abschnitt Sicherheitsaspekte für Überwachungsdaten weiter unten in diesem Artikel.

Überwachen von Berechtigungen und benutzerdefinierte Azure-Rollen

Wenn die vorhergehenden vordefinierten Rollen nicht den genauen Anforderungen Ihres Teams entsprechen, können Sie eine benutzerdefinierte Azure-Rolle mit detaillierteren Berechtigungen erstellen. Hier folgen die allgemeinen Vorgänge der rollenbasierten Zugriffssteuerung (RBAC) von Azure für Azure Monitor.

Vorgang BESCHREIBUNG
Microsoft.Insights/ActionGroups/[Read, Write, Delete] Lesen, Schreiben oder Löschen einer Aktionsgruppe
Microsoft.Insights/ActivityLogAlerts/[Read, Write, Delete] Lesen, Schreiben oder Löschen von Aktivitätsprotokollwarnungen.
Microsoft.Insights/AlertRules/[Read, Write, Delete] Lesen, Schreiben oder Löschen von Warnungsregeln (aus klassischen Warnungen)
Microsoft.Insights/AlertRules/Incidents/Read Auflisten von Incidents (Verlauf der ausgelösten Warnungsregel) für Warnungsregeln. Dies gilt nur für das Portal.
Microsoft.Insights/AutoscaleSettings/[Read, Write, Delete] Lesen, Schreiben oder Löschen von Einstellungen für die automatische Skalierung
Microsoft.Insights/DiagnosticSettings/[Read, Write, Delete] Lesen, Schreiben oder Löschen von Diagnoseeinstellungen
Microsoft.Insights/EventCategories/Read Aufzählen aller im Aktivitätsprotokoll möglichen Kategorien. Wird vom Azure-Portal verwendet.
Microsoft.Insights/eventtypes/digestevents/Read Diese Berechtigung ist für Benutzer notwendig, die über das Portal auf das Aktivitätsprotokoll zugreifen müssen.
Microsoft.Insights/eventtypes/values/Read Auflisten von Aktivitätsprotokollereignissen (Verwaltungsereignissen) in einem Abonnement. Diese Berechtigung gilt sowohl für den programmgesteuerten als auch für den Portalzugriff auf das Aktivitätsprotokoll.
Microsoft.Insights/ExtendedDiagnosticSettings/[Read, Write, Delete] Lesen, Schreiben oder Löschen von Diagnoseeinstellungen für Netzwerkflussprotokolle
Microsoft.Insights/LogDefinitions/Read Diese Berechtigung ist für Benutzer notwendig, die über das Portal auf das Aktivitätsprotokoll zugreifen müssen.
Microsoft.Insights/LogProfiles/[Read, Write, Delete] Lesen, Schreiben oder Löschen von Protokollprofilen (Streamen des Aktivitätsprotokolls an ein Ereignishub- oder Speicherkonto).
Microsoft.Insights/MetricAlerts/[Read, Write, Delete] Regeln für das Lesen, Schreiben oder Löschen von Metrikwarnungen
Microsoft.Insights/MetricDefinitions/Read Lesen von Metrikdefinitionen (Liste der verfügbaren Metriktypen für eine Ressource).
Microsoft.Insights/Metrics/Read Lesen von Metriken für eine Ressource.
Microsoft.Insights/Register/Action Registrieren des Azure Monitor-Ressourcenanbieters
Microsoft.Insights/ScheduledQueryRules/[Read, Write, Delete] Lesen, Schreiben oder Löschen von Warnungen zur Protokollsuche in Azure Monitor

Hinweis

Für den Zugriff auf Warnungen, Diagnoseeinstellungen und Metriken für eine Ressource ist es erforderlich, dass der Benutzer für den Ressourcentyp und den Bereich der jeweiligen Ressource über Lesezugriff verfügt. Um eine Diagnoseeinstellung erstellen zu können, die Daten an ein Speicherkonto sendet oder an Event Hubs streamt, müssen Benutzer*innen auch über die Berechtigung „ListKeys“ in der Zielressource verfügen

Sie können die obige Tabelle beispielsweise verwenden, um wie folgt eine benutzerdefinierte Azure-Rolle für einen Aktivitätsprotokollleser zu erstellen:

$role = Get-AzRoleDefinition "Reader"
$role.Id = $null
$role.Name = "Activity Log Reader"
$role.Description = "Can view activity logs."
$role.Actions.Clear()
$role.Actions.Add("Microsoft.Insights/eventtypes/*")
$role.AssignableScopes.Clear()
$role.AssignableScopes.Add("/subscriptions/mySubscription")
New-AzRoleDefinition -Role $role 

Sicherheitsaspekte für Überwachungsdaten

Daten in Azure Monitor können an ein Speicherkonto gesendet oder an einen Event Hub gestreamt werden – dies sind beides Azure-Ressourcen für allgemeine Zwecke. Da es sich um allgemeine Ressourcen handelt, sind Erstellung, Löschung und der Zugriff darauf privilegierte Vorgänge, die einem Administrator vorbehalten sind. Da diese Daten vertrauliche Informationen wie IP-Adressen oder Benutzernamen enthalten können, halten Sie sich an die folgenden Best Practices bei überwachungsbezogenen Ressourcen, um Missbrauch zu verhindern:

  • Verwenden Sie ein einzelnes dediziertes Speicherkonto für die Überwachung von Daten. Wenn Sie Überwachungsdaten auf mehrere Speicherkonten aufteilen müssen, sollten Sie die Nutzung eines Speicherkontos niemals zwischen Überwachungsdaten und Nicht-Überwachungsdaten aufteilen. Eine solche gemeinsame Nutzung könnte Organisationen, die nur Zugriff auf Überwachungsdaten benötigen, unbeabsichtigt Zugriff auf Nicht-Überwachungsdaten verschaffen. Beispielsweise sollte eine Drittanbieterorganisation für Sicherheitsinformationen und Ereignisverwaltung nur Zugriff auf Überwachungsdaten benötigen.
  • Verwenden Sie aus demselben Grund, der unter dem vorherigen Punkt beschrieben wurde, einen einzelnen dedizierten Service Bus- oder Event Hub-Namespace über alle Diagnoseeinstellungen hinweg.
  • Beschränken Sie den Zugriff auf überwachungsbezogene Speicherkonten oder Event Hubs, indem Sie sie in einer separaten Ressourcengruppe aufbewahren. Verwenden Sie den Gültigkeitsbereich für Ihre Überwachungsrollen, um den Zugriff ausschließlich auf diese Ressourcengruppe zu beschränken.
  • Erteilen Sie niemals die ListKeys-Berechtigung für Speicherkonten oder Event Hubs im Abonnementbereich, wenn ein Benutzer nur auf Überwachungsdaten zugreifen muss. Erteilen Sie dem Benutzer diese Berechtigungen stattdessen im Ressourcen- oder Ressourcengruppenbereich (wenn Sie eine dedizierte Überwachungsressourcengruppe verwenden).

Wenn ein Benutzer oder eine Anwendung Zugriff auf Überwachungsdaten in einem Speicherkonto benötigt, sollten Sie für das Speicherkonto, das Überwachungsdaten enthält, mit schreibgeschütztem Zugriff auf Dienstebene für Blobspeicher eine Shared Access Signature (SAS) generieren. In PowerShell könnte die Konto-SAS wie der folgende Code aussehen:

$context = New-AzStorageContext -ConnectionString "[connection string for your monitoring Storage Account]"
$token = New-AzStorageAccountSASToken -ResourceType Service -Service Blob -Permission "rl" -Context $context

Sie können dann das Token an die Entität weitergeben, die aus diesem Speicherkonto lesen muss. Die Entität kann alle Blobs in diesem Speicherkonto auflisten und aus diesen lesen.

Wenn Sie diese Berechtigung mit Azure RBAC steuern müssen, können Sie dieser Entität alternativ die Berechtigung Microsoft.Storage/storageAccounts/listkeys/action für das jeweilige Speicherkonto erteilen. Diese Berechtigung ist für Benutzer*innen erforderlich, die eine Diagnoseeinstellung festlegen und Daten an ein Speicherkonto senden müssen. Beispielsweise können Sie die folgende benutzerdefinierte Azure-Rolle für Benutzer oder Anwendungen erstellen, die nur aus einem einzigen Speicherkonto lesen müssen:

$role = Get-AzRoleDefinition "Reader"
$role.Id = $null
$role.Name = "Monitoring Storage Account Reader"
$role.Description = "Can get the storage account keys for a monitoring storage account."
$role.Actions.Clear()
$role.Actions.Add("Microsoft.Storage/storageAccounts/listkeys/action")
$role.Actions.Add("Microsoft.Storage/storageAccounts/Read")
$role.AssignableScopes.Clear()
$role.AssignableScopes.Add("/subscriptions/mySubscription/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myMonitoringStorageAccount")
New-AzRoleDefinition -Role $role 

Warnung

Die ListKeys-Berechtigung ermöglicht dem Benutzer das Auflisten des primären und des sekundären Speicherkontoschlüssels. Diese Schlüssel gewähren dem Benutzer alle signierten Berechtigungen (z. B. Lesen, Schreiben, Erstellen von Blobs und Löschen von Blobs) für alle signierten Dienste (Blob, Warteschlange, Tabelle, Datei) in diesem Speicherkonto. Wir empfehlen, wenn möglich eine Konto-SAS zu verwenden.

Sie können ein ähnliches Muster mit Event Hubs befolgen, aber zuerst müssen Sie eine dedizierte Autorisierungsregel für das Lauschen erstellen. Wenn Sie einer Anwendung Zugriff gewähren möchten, die nur auf überwachungsbezogene Event Hubs lauschen muss, folgen Sie den folgenden Schritten:

  1. Erstellen Sie im Portal eine SAS-Richtlinie für die Event Hubs, die für das Streamen von Überwachungsdaten mit ausschließlich Lauschansprüchen erstellt haben. Sie können es beispielsweise "monitoringReadOnly" nennen. Geben Sie diesen Schlüssel nach Möglichkeit direkt an den Verbraucher und überspringen Sie den nächsten Schritt.

  2. Wenn der Consumer den Schlüssel ad hoc abrufen können muss, gewähren Sie dem Benutzer die ListKeys-Aktion für diesen Event Hub. Dieser Schritt ist auch für Benutzer notwendig, die eine Diagnoseeinstellung oder ein Protokollprofil für das Streamen in Event Hubs einstellen müssen. Beispielsweise können Sie eine Azure RBAC-Regel erstellen:

    $role = Get-AzRoleDefinition "Reader"
    $role.Id = $null
    $role.Name = "Monitoring Event Hub Listener"
    $role.Description = "Can get the key to listen to an event hub streaming monitoring data."
    $role.Actions.Clear()
    $role.Actions.Add("Microsoft.EventHub/namespaces/authorizationrules/listkeys/action")
    $role.Actions.Add("Microsoft.EventHub/namespaces/Read")
    $role.AssignableScopes.Clear()
    $role.AssignableScopes.Add("/subscriptions/mySubscription/resourceGroups/myResourceGroup/providers/Microsoft.ServiceBus/namespaces/mySBNameSpace")
    New-AzRoleDefinition -Role $role 
    

Nächste Schritte