Freigeben über


Granular RBAC (Vorschau) in Azure Monitor

Mit der präzisen rollenbasierten Zugriffssteuerung (RBAC) in Azure Monitor Log Analytics können Sie Arbeitsbereichsdaten filtern, die jeder Benutzer anzeigen oder abfragen kann, basierend auf bedingungen, die Sie angeben, um Ihre Geschäftlichen und Sicherheitsanforderungen zu erfüllen. Zu den Vorteilen dieser Zugriffssteuerung gehören:

  • Zugriff auf Zeilenebene
  • Zugriff auf Tabellenebene
  • Trennung von Steuerungs- und Datenebenen

Wenn Ihre Log Analytics-Architektur mehrere Arbeitsbereiche umfasst, um die Datentrennung, den Datenschutz oder die Compliance zu berücksichtigen, trägt die granulare RBAC zur Vereinfachung bei, indem die Anzahl der erforderlichen Arbeitsbereiche reduziert wird.

Einführungsvideo

Voraussetzungen

Maßnahme Erforderliche Berechtigung
Erstellen einer neuen benutzerdefinierten Rolle Microsoft.Authorization/roleDefinitions/write-Berechtigung für die zuweisbaren Bereiche.
Beispiel: Wie von der privilegierten integrierten Rolle, Administrationsfachkräfte für Benutzerzugriff, bereitgestellt.
Hinzufügen oder Aktualisieren von Bedingungen Microsoft.Authorization/roleAssignments/write- und Microsoft.Authorization/roleAssignments/delete-Berechtigungen für den Log Analytics-Arbeitsbereich.
Beispiel: Wie von der privilegierten integrierten Rolle, Administrationsfachkraft für rollenbasierte Zugriffssteuerung, bereitgestellt.

Wann soll granulares RBAC verwendet werden?

Granular RBAC hilft Ihnen dabei, die folgenden Szenarien zu erreichen:

  • Datentrennung – Trennen Sie die Daten verschiedener Einheiten, Teams und geografischer Standorte innerhalb desselben Arbeitsbereichs, und stellen Sie sicher, dass jeder Benutzer nur auf Daten zugreifen kann, die für ihre Gruppe relevant sind. Zugriffsbedingungen setzen benutzerdefinierte Protokollfelder ein, um den zeilenweisen Zugriff spezifiziert nach Attributen wie Firewall, Gerätetyp, Abonnement-ID oder anderen Bezeichnern durchzusetzen.
  • Datenschutz – Schützen Sie vertrauliche oder vertrauliche Daten, z. B. persönliche Informationen, Gesundheitsdatensätze oder Finanztransaktionen, und erlauben Sie nur den Zugriff auf autorisierte Benutzer.
  • Datencompliance – Verwenden Sie granulares RBAC als Tool, um die gesetzlichen oder rechtlichen Anforderungen Ihrer Branche oder Region zu erfüllen. Erzwingen Sie geeignete Richtlinien und Kontrollen für den Datenzugriff und den Verbrauch.

Granulare RBAC steuert den Datenzugriff, z. B. das Anzeigen oder Abfragen von Daten. Sie adressiert keine Steuerungsebenenaktionen, z. B. festlegen von Berechtigungen für den Datenzugriff, die Arbeitsbereichsverwaltung, Transformationen oder den Datenexport.

Granulare RBAC konfigurieren

Lernen Sie die granulare rollenbasierte Zugriffssteuerung mit einem Schritt-für-Schritt-Beispiel für granulare RBAC kennen.

In den folgenden Abschnitten finden Sie eine Übersicht über die wichtigsten Konzepte und Schritte zur Konfiguration granularer RBAC.

Rollenerstellung

Um eine präzise RBAC zu konfigurieren, müssen Sie eine benutzerdefinierte Rolle mit erforderlichen Aktionen erstellen und dann die benutzerdefinierte Rolle mit Bedingungen zuweisen. Weitere Informationen zu benutzerdefinierten Rollen finden Sie unter Benutzerdefinierte Azure-Rollen.

Die mindestens erforderlichen Berechtigungen für die benutzerdefinierte Rollenaktion und Datenaktionen sind:

Benutzerdefinierte Rollendefinition Erlaubnis BESCHREIBUNG
Steuerungsebenenaktionen (Actions) Microsoft.OperationalInsights/workspaces/query/read Führen Sie Abfragen in Log Analytics aus, und zeigen Sie Metadaten an. Diese Berechtigung gewährt keinen Zugriff auf Daten.
Datenebenenaktionen (DataActions) Microsoft.OperationalInsights/workspaces/tables/data/read Zugriff auf die Daten und ist die dataaction, die in der Rollenzuweisungsbedingung ausgewählt wurde. Wenn keine Bedingung festgelegt ist, gewährt diese Berechtigung Zugriff auf alle Daten im zugewiesenen Bereich.

Optional können Sie den Zugriff über das Azure-Portal einschließen, indem Sie die Microsoft.OperationalInsights/workspaces/read Steuerelementaktion hinzufügen. Weitere Informationen finden Sie unter Azure RBAC-Steuerungs- und Datenaktionen.

Hinweis

Granular RBAC, wie Azure RBAC, ist ein additives Modell. Ihre effektiven Berechtigungen sind die Summe Ihrer Rollenzuweisungen. Damit präzise RBAC-Bedingungen wirksam werden, müssen Sie alle Rollenzuweisungen mit höheren Zugriffsberechtigungen entfernen.

Wenn Sie beispielsweise zwei Rollenzuweisungen für denselben Bereich haben, eine festgelegt mit einer */read Aktion und die andere mit Bedingungen, die den Zugriff auf bestimmte Datensätze beschränken, ist die resultierende Berechtigung die */read Aktion, die Zugriff auf alle Protokolle im Bereich gewährt. Es gibt keine explizite Verweigerungsaktion, nur Verweigerungszuweisungen.

Bedingungen und Ausdrücke

Genau wie normale Rollenzuweisungen muss die erstellte benutzerdefinierte Rolle einem Benutzer oder einer Gruppe zugewiesen werden. Der Unterschied besteht darin, dass während der Rollenzuweisung Bedingungen so konfiguriert sind, dass die Zugriffssteuerung fein abgestimmt wird.

Mit granularem RBAC können Sie eine Bedingung für Tabellen und auf Zeilenebene basierend auf den Daten in jedem Datensatz festlegen. Planen Sie Einschränkungen basierend auf diesen beiden Strategien:

Zugriffskontrollmethode Beispiel
Kein Zugriff auf Daten, mit Ausnahme der zulässigen Daten Einschränken des Zugriffs auf Anwendungsprotokolle, sodass Benutzer nur Datensätze sehen können, auf die die application id Spalte eine Anwendung ist, auf die sie zugreifen dürfen.
Zugriff auf alle Daten, außer was nicht zulässig ist Zugriff auf alle Anmeldeprotokolle zulassen, mit Ausnahme der Datensätze, in denen die userPrincipalName Spalte der CEO ist.

Eine Bedingung besteht aus der Datenaktion der Rolle und Ausdrücken. Ein Ausdruck ist eine Logik-Anweisung mit dem Format von AttributeOperatorValue.

Die Unterstützung der Werte ist für die folgenden Zeichen eingeschränkt:

  • Alphanumerische Zeichen
  • Sonderzeichen:@, , .-

Log Analytics Granulare RBAC unterstützt Tabellen- und Spalten/Wertattribute:

Attributquelle Anzeigename Typ BESCHREIBUNG Attributname
Ressource Tabellenname Schnur Tabellennamen, die zum Zuweisen/Einschränken verwendet werden. Microsoft.OperationalInsights/workspaces/tables:`<name>`
Ressource Spaltenwert (Schlüssel ist der Spaltenname) Wörterbuch (Schlüsselwert) Spaltenname und -wert. Spaltenname ist der Schlüssel. Der Wert in der Spalte ist der Datenwert. Microsoft.OperationalInsights/workspaces/tables/record:<key>

Hier ist ein Beispielbild einer granularen RBAC-Rollenzuweisungsbedingung, die die Methode „Kein Zugriff auf Daten, außer das, was erlaubt ist“ verwendet, die über das Azure-Portal konfiguriert wurde.

Screenshot einer Beispiel-Rollenzuweisungsbedingung für Log Analytics.

Verringern Sie die Komplexität, indem Sie Ihre granularen RBAC-Rollenzuweisungen auf dem von Ihnen festgelegten Umfang so konfigurieren, dass sie übereinstimmen. Wenn Ihre benutzerdefinierte Rolle z. B. einem Ressourcengruppenbereich zugewiesen ist, ist es möglich, dass andere Arbeitsbereiche nicht über die in Ihrem Ausdruck angegebenen Tabellen- oder Spaltenressourcen verfügen, was dazu führt, dass die Bedingung unerwartet angewendet wird.

Wenn Sie jedoch eine Bedingung für eine Rollenzuweisung auf Tabellenebene festlegen, müssen zwei Rollen wie folgt erstellt werden:

  • Rolle 1: Aktion: Microsoft.OperationalInsights/workspaces/query/read für den Arbeitsbereich der Tabelle.
  • Rolle 2: DataAction: Microsoft.OperationalInsights/workspaces/tables/data/read für die Tabelle in diesem Arbeitsbereich. Definieren Sie die Bedingung für die Rolle mit der Datenaktion.

Um das Erstellen von zwei Rollen zu vermeiden, verwenden Sie den einfachsten Ansatz, indem Sie die Rolle im Arbeitsbereich zuweisen und die Bedingungen festlegen, um die Tabellenebene zu steuern.

Weitere Informationen finden Sie unter Azure RBAC-Bereichsebenen.

Ausdrucksoperatoren

Granulare RBAC-Ausdrücke verwenden eine Teilmenge von Attributbasierten Zugriffssteuerungsoperatoren (ABAC).

Das Attribut "Tabellenname" unterstützt vier Operatoren. Diese Operatoren bieten Ihnen flexibilität, die Werte von Tabellennamen beim Festlegen einer Bedingung abzugleichen.

ABAC-Operatoren BESCHREIBUNG
StringEquals Zuordnung, bei der die Groß- und Kleinschreibung beachtet wird. Die Werte müssen genau mit der Zeichenfolge übereinstimmen.
StringNotEquals Negation von StringEquals.
ForAllOfAnyValues:StringEquals Logisch gleichbedeutend mit in(). Wenn jeder Wert auf der linken Seite mindestens einem Wert auf der rechten Seite entspricht, ergibt die Auswertung des Ausdrucks „true“.
ForAllOfAllValues:StringNotEquals Logisch gleichbedeutend mit !in(). Wenn jeder Wert auf der linken Seite dem Vergleich mit mindestens einem Wert auf der rechten Seite entspricht, wird der Ausdruck als "false" ausgewertet.

ABAC-Bedingungen, die für Spaltenwerte in Log Analytics definiert sind, basieren auf den Daten in dieser Spalte. Es können nur Zeichenfolgendatentypen verglichen werden. Für das Zugriffsattribute auf Zeilenebene basiert jede Umwandlung ausschließlich auf dem KQL-Verhalten.

Die folgende Tabelle zeigt unterstützte ABAC-Ausdrucksoperatoren. Die entsprechenden Kusto-Operatoren werden übersichtlich aufgeführt.

ABAC-Operator Kusto-Äquivalentoperator BESCHREIBUNG
StringEquals / StringEqualsIgnoreCase == / =~ Beim Abgleich wird die Groß-/Kleinschreibung beachtet (oder die Groß-/Kleinschreibung nicht beachtet). Die Werte müssen genau mit der Zeichenfolge übereinstimmen.
StringNotEquals / StringNotEqualsIgnoreCase != / !~ Negation von StringEquals (oder StringEqualsIgnoreCase).
StringLike / StringLikeIgnoreCase has_cs / has Beim Abgleich wird die Groß-/Kleinschreibung beachtet (oder die Groß-/Kleinschreibung nicht beachtet). Rechte Seite des Operators (RHS) ist ein ganzer Begriff innerhalb der linken Seite (LHS).
StringNotLike / StringNotLikeIgnoreCase !has_cs / !has Negation des StringLike (oder StringLikeIgnoreCase) Operators
StringStartsWith / StringStartsWithIgnoreCase startswith_cs/ startswith Beim Abgleich wird die Groß-/Kleinschreibung beachtet (oder die Groß-/Kleinschreibung nicht beachtet). Der Wert beginnt mit der Zeichenfolge.
StringNotStartsWith / StringNotStartsWithIgnoreCase !startswith_cs / !startswith Negation des StringStartsWith-Operators (oder des StringStartsWithIgnoreCase-Operators).
ForAllOfAnyValues:StringEquals / ForAllOfAnyValues:StringEqualsIgnoreCase

ForAllOfAllValues:StringNotEquals / ForAllOfAllValues:StringNotEqualsIgnoreCase

ForAnyOfAnyValues:StringLikeIgnoreCase
In / In~


!in / !in~


has_any
'ForAllOfAnyValues:<BooleanFunction>' unterstützt mehrere Zeichenfolgen und Zahlen.
Wenn jeder Wert auf der linken Seite dem Vergleich mit mindestens einem Wert auf der rechten Seite entspricht, wird der Ausdruck als "true" ausgewertet.

ABAC-Bedingungen werden für Funktionen nicht direkt festgelegt. Wenn Sie die Bedingung für eine Tabelle festlegen, wird sie an jede Funktion weitergegeben, die darauf basiert. Weitere Informationen zu Operatoren und Ausdrücken finden Sie unter Zeichenfolgenoperatoren.

Tipp

Verwenden Sie Transformationen, um Daten zu bereichern, Datentypen zu ändern und den Fall zu ändern, um Ihren ABAC-Ausdrücken besser zu entsprechen. Wenn Ihre Daten die bedingungen, die Sie anwenden möchten, nicht unterstützt, sind Transformationen auch die Lösung. Wenn Sie beispielsweise Bedingungen auf Daten mit hoher Kardinalität anwenden möchten, z. B. IP-Bereiche, verwenden Sie Transformationen zum Gruppieren von IPs, die zu ausgewählten Subnetzen nach Subnetznamen gehören.

Weitere Informationen finden Sie unter Datensammlungstransformationen in Azure Monitor.

Überlegungen

Bei verwendung granularer RBAC in Log Analytics gelten mehrere Überlegungen. Die folgenden Abschnitte enthalten Einzelheiten.

  • Granulare RBAC ist nur in der öffentlichen Cloud verfügbar.

Azure Monitor

  • Suchaufträge und Sammelregeln sind für eine präzise RBAC-Unterstützung geplant, jedoch nicht für den Datenexport. Wenn für alle diese Erfahrungen kein Vollzugriff auf die abgefragten Tabellen vorhanden ist, kann der Benutzer den Suchauftrag oder die Suchregel nicht konfigurieren und erhält einen Fehler.
  • Warnungen: Nur verwaltete identitätsbasierte Protokollwarnungen werden unterstützt.
  • Application Insights: Nur arbeitsbereichsbasierte Application Insights werden unterstützt.

Microsoft Sentinel

Wenn Daten aus Originaltabellen mit Hunting, Lesezeichen, Analyseregeln und Vorfällen repliziert werden, werden die replizierten Daten nicht durch die ABAC-Bedingungen geschützt.

Azure ABAC und RBAC

Normale Azure RBAC- und ABAC-Einschränkungen gelten. Beispielsweise ist der Schwellenwert für maximale Rollenzuweisungen pro Abonnement ein Azure-Dienstlimit für RBAC. Azure ABAC beschränkt die Anzahl der Ausdrücke pro Bedingung und die Gesamtgröße der Bedingung in KB. Weitere Informationen finden Sie in den folgenden Artikeln:

Audit und Überwachung

Änderungen an Rollenzuweisungen werden in Azure-Aktivitätsprotokollen protokolliert. Benutzerabfragen in der LAQueryLogs Tabelle geben an, ob die Abfrage mit einer anwendbaren ABAC-Zugriffsbedingung in der ConditionalDataAccess Spalte ausgeführt wurde. Aktivieren Sie Protokolle mithilfe der Diagnoseeinstellungen im Log Analytics-Arbeitsbereich. Weitere Informationen dazu finden Sie unter Diagnoseeinstellungen in Azure Monitor-Protokollen.

Häufig gestellte Fragen

Ich greife über den Ressourcenkontext auf meine Protokolle zu. Kann meine Bedingung erzwungen werden?
RBAC und ABAC werden für Ressourcenkontextabfragen durchgesetzt, jedoch müssen die Arbeitsbereiche, die die Ressourcenprotokolle enthalten, die folgenden Voraussetzungen erfüllen:

  • Legen Sie den Zugriffssteuerungsmodus aller relevanten Arbeitsbereiche auf "Arbeitsbereichsberechtigungen erforderlich" fest.
    Wenn diese Einstellung auf "Ressourcen- oder Arbeitsbereichsberechtigungen" festgelegt ist, bietet die Azure-Leseberechtigung, die einer Ressource zugewiesen ist, Zugriff auf alle Protokolle. Arbeitsbereichs- und ABAC-Berechtigungen werden ignoriert.
  • Legen Sie ABAC für alle relevanten Arbeitsbereiche fest.

Weitere Informationen finden Sie unter Verwalten des Zugriffs auf Log Analytics-Arbeitsbereiche, Zugriffsmodus.

Granulare RBAC-Bedingungen beibehalten, wenn eine Tabelle exportiert wird?
granulare RBAC-Bedingungen werden nur für Abfragen erzwungen. Beispielsweise behalten Daten, die mithilfe des Arbeitsbereichs-Datenexportfeatures erfolgreich exportiert wurden, nicht die ABAC-Bedingungen für die Daten der Zieltabelle bei.

Wie konfigurieren Sie den Zugriff basierend auf der Datenklassifizierung?
Um das Bell-LaPadula-Zugriffsmodell zu implementieren, müssen Sie explizit ABAC-Bedingungen festlegen, um Prinzipien wie „nach unten lesen“ einzuhalten. Beispielsweise muss eine benutzende Person mit der höchsten Geheimnisberechtigung explizit für niedrigere Ebenen wie geheim, vertraulich und nicht klassifiziert festgelegt sein, um sicherzustellen, dass sie auf Daten auf Ebenen unter der höchsten zugewiesenen Ebene zugreifen kann.