Share via


Problembehandlung: Bedingungen für die Azure-Rollenzuweisung

Allgemeine Fragen

Symptom: Bedingung wird nicht erzwungen

Ursache 1

Sicherheitsprinzipale verfügen über mindestens eine Rollenzuweisung im gleichen oder einem höheren Bereich.

Lösung 1

Stellen Sie sicher, dass die Sicherheitsprinzipale nicht über mehrere Rollenzuweisungen (mit oder ohne Bedingungen) verfügen, die Zugriff auf dieselbe Datenaktion gewähren, was zu einer Nichterzwingung von Bedingungen führt. Informationen zur Auswertungslogik finden Sie unter Wie Azure RBAC ermittelt, ob ein Benutzer Zugriff auf eine Ressource besitzt.

Ursache 2

Ihre Rollenzuweisung weist mehrere Aktionen auf, die eine Berechtigung gewähren, und Ihre Bedingung zielt nicht auf alle Aktionen ab. Sie können z. B. ein Blob erstellen, wenn Sie über /blobs/write- oder /blobs/add/action-Datenaktionen verfügen. Wenn Ihre Rollenzuweisung beide Datenaktionen enthält und Sie nur eine davon in einer Bedingung berücksichtigen, gewährt die Rollenzuweisung die Berechtigung zum Erstellen von Blobs und umgeht die Bedingung.

Lösung 2

Wenn Ihre Rollenzuweisung über mehrere Aktionen verfügt, die eine Berechtigung erteilen, stellen Sie sicher, dass Sie alle relevanten Aktionen als Ziel verwenden.

Ursache 3

Wenn Sie einer Rollenzuweisung eine Bedingung hinzufügen, kann es bis zu 5 Minuten dauern, bis die Bedingung erzwungen wird. Wenn Sie eine Bedingung hinzufügen, werden Ressourcenanbieter (z. B. Microsoft Storage) über die Aktualisierung benachrichtigt. Ressourcenanbieter aktualisieren sofort Updates ihre lokalen Caches, um sicherzustellen, dass sie über die neuesten Rollenzuweisungen verfügen. Dieser Vorgang wird normalerweise in 1 oder 2 Minuten abgeschlossen, kann aber bis zu 5 Minuten dauern.

Lösung 3

Warten Sie 5 Minuten, und testen Sie die Bedingung dann erneut.

Symptom: Bedingung führt zu Fehler des Typs „Ungültig“ beim Hinzufügen einer Bedingung

Wenn Sie versuchen, eine Rollenzuweisung mit einer Bedingung hinzuzufügen, erhalten Sie einen Fehler ähnlich dem folgenden:

The given role assignment condition is invalid.

Ursache 1

Die Eigenschaft conditionVersion ist auf „1.0“ festgelegt.

Lösung 1

Legen Sie die Eigenschaft conditionVersion auf „2.0“ fest.

Ursache 2

Ihre Bedingung ist nicht ordnungsgemäß formatiert.

Lösung 2

Beheben Sie alle Probleme mit dem Bedingungsformat oder der Syntax. Alternativ können Sie die Bedingung mithilfe des visuellen Editors im Azure-Portal hinzufügen.

Probleme im visuellen Editor

Symptom – Editor für Bedingungen wird beim Bearbeiten einer Bedingung angezeigt

Sie haben eine Bedingung mithilfe einer Vorlage erstellt, die in der Azure-Rollenzuweisungsverwaltung für andere Personen mit Bedingungen beschrieben wird. Wenn Sie versuchen, die Bedingung zu bearbeiten, wird der erweiterte Editor für Bedingungen angezeigt.

Screenshot des Editors für Bedingungen mit Optionen zum Bearbeiten einer Bedingung.

Wenn Sie die Bedingung zuvor bearbeitet haben, haben Sie die Bedingungsvorlage verwendet.

Screenshot der Bedingungsvorlagen mit aktivierter übereinstimmenden Vorlage.

Ursache

Die Bedingung stimmt nicht mit dem Muster für die Vorlage überein.

Lösung 1

Bearbeiten Sie die Bedingung so, dass sie einem der folgenden Vorlagenmuster entspricht.

Vorlage Bedingung
Rollen einschränken Beispiel: Einschränken von Rollen
Einschränken von Rollen und Prinzipaltypen Beispiel: Einschränken von Rollen und Prinzipaltypen
Einschränken von Rollen und Prinzipale Beispiel: Einschränken von Rollen und bestimmten Gruppen
Alle außer bestimmten Rollen zulassen Beispiel: Zulassen der meisten Rollen, aber nicht zulassen, dass andere Rollen zuweisen

Lösung 2

Löschen Sie die Bedingung, und erstellen Sie sie mithilfe der Schritte unter Azure-Rollenzuweisungsverwaltung an andere Personen mit Bedingungen neu.

Symptom: Prinzipal wird in der Attributquelle nicht angezeigt

Wenn Sie versuchen, eine Rollenzuweisung mit einer Bedingung hinzuzufügen, wird Prinzipal nicht in der Liste Attributquelle angezeigt.

Screenshot: Prinzipal in der Liste „Attributquelle“ beim Hinzufügen einer Bedingung

Stattdessen wird diese Meldung angezeigt:

To use principal (user) attributes, you must have Microsoft Entra permissions (such as the [Attribute Assignment Administrator](../active-directory/roles/permissions-reference.md#attribute-assignment-administrator) role) and custom security attributes defined in Microsoft Entra ID.

Ursache

Sie erfüllen die Voraussetzungen nicht. Um Prinzipalattribute verwenden zu können, müssen Sie über Folgendes verfügen:

  • Microsoft Entra-Berechtigungen für den angemeldeten Benutzer zum Lesen mindestens eines Attributsatzes
  • Benutzerdefinierte Sicherheitsattribute, die in Microsoft Entra ID definiert sind

Lösung

  1. Öffnen Sie Microsoft Entra ID>Benutzerdefinierte Sicherheitsattribute.

    Wenn die Seite Erste Schritte angezeigt wird, verfügen Sie nicht über die Berechtigungen, mindestens einen Attributsatz zu lesen, oder benutzerdefinierte Sicherheitsattribute wurden noch nicht definiert.

    Screenshot: Seite „Erste Schritte“ für benutzerdefinierte Sicherheitsattribute

  2. Wenn benutzerdefinierte Sicherheitsattribute definiert wurden, weisen Sie eine der folgenden Rollen im Mandantenbereich oder Attributsatzbereich zu. Weitere Informationen finden Sie unter Verwalten des Zugriffs auf benutzerdefinierte Sicherheitsattribute in Microsoft Entra ID.

    Wichtig

    Standardmäßig verfügen globale Administratoren und andere Administratorrollen nicht über Berechtigungen zum Lesen, Definieren oder Zuweisen von benutzerdefinierten Sicherheitsattributen.

  3. Wenn noch keine benutzerdefinierte Sicherheitsattribute definiert wurden, weisen Sie die Rolle Attributdefinitionsadministrator im Mandantenbereich zu, und fügen Sie benutzerdefinierte Sicherheitsattribute hinzu. Weitere Informationen finden Sie unter Hinzufügen oder Deaktivieren von benutzerdefinierten Sicherheitsattributen in Microsoft Entra ID.

    Wenn Sie fertig sind, sollten Sie mindestens einen Attributsatz lesen können.

    Screenshot: Attributsätze, die vom Benutzer gelesen werden können

    Der Prinzipal sollte nun in der Liste der Attributquellen angezeigt werden, wenn Sie eine Rollenzuweisung mit einer Bedingung hinzufügen.

Symptom: Prinzipal wird bei Verwendung von PIM nicht in der Attributquelle angezeigt

Wenn Sie versuchen, eine Rollenzuweisung mit einer Bedingung unter Verwendung von Microsoft Entra Privileged Identity Management (PIM) hinzuzufügen, wird Prinzipal nicht in der Attributquellenliste angezeigt.

Screenshot: Prinzipal in der Liste „Attributquelle“ beim Hinzufügen einer Bedingung mithilfe von Privileged Identity Management

Ursache

PIM unterstützt derzeit nicht die Verwendung des Prinzipalattributs in einer Rollenzuweisungsbedingung.

Fehlermeldungen im visuellen Editor

Symptom: Bedingung nicht erkannt

Nachdem Sie den Code-Editor verwendet haben, wechseln Sie zum visuellen Editor und erhalten eine Meldung ähnlich der folgenden:

The current expression cannot be recognized. Switch to the code editor to edit the expression or delete the expression and add a new one.

Ursache

Die Bedingung, die der visuelle Editor nicht analysieren kann, wurde aktualisiert.

Lösung

Beheben Sie alle Probleme mit dem Bedingungsformat oder der Syntax. Alternativ können Sie die Bedingung löschen und es erneut versuchen.

Symptom: Fehler mit Hinweis auf nicht geltendes Attribut für zuvor gespeicherte Bedingung

Wenn Sie eine zuvor gespeicherte Bedingung im visuellen Editor öffnen, erhalten Sie folgende Meldung:

Attribute does not apply for the selected actions. Select a different set of actions.

Ursache

Im Mai 2022 wurde die Aktion "Blob lesen" vom folgenden Format geändert:

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})

So schließen Sie den Blob.List Teilvorgang aus:

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})

Wenn Sie eine Bedingung mit der Aktion "Blob lesen" vor Mai 2022 erstellt haben, wird möglicherweise diese Fehlermeldung im visuellen Editor angezeigt.

Lösung

Öffnen Sie den Bereich Aktion auswählen und wählen Sie die Aktion Blob lesen erneut aus.

Symptom: Fehler mit Hinweis auf nicht geltendes Attribut

Wenn Sie eine oder mehrere Aktionen im visuellen Editor mit einem vorhandenen Ausdruck auswählen, erhalten Sie die folgende Meldung, und das zuvor ausgewählte Attribut wird entfernt:

Attribute does not apply for the selected actions. Select a different set of actions.

Ursache

Das zuvor ausgewählte Attribut ist für die aktuell ausgewählten Aktionen nicht mehr anwendbar.

Lösung 1

Wählen Sie im Abschnitt Aktion hinzufügen eine Aktion aus, die für das ausgewählte Attribut verwendet werden kann. Eine Liste der Speicheraktionen, die von den einzelnen Speicherattributen unterstützt werden, finden Sie unter Aktionen und Attribute für Azure-Rollenzuweisungsbedingungen für Azure Blob Storage und Aktionen und Attribute für Azure-Rollenzuweisungsbedingungen für Azure-Warteschlangen.

Lösung 2

Wählen Sie im Abschnitt Ausdruck erstellen ein Attribut aus, das für die aktuell ausgewählten Aktionen verwendet werden kann. Eine Liste der Speicherattribute, die von den einzelnen Speicheraktionen unterstützt werden, finden Sie unter Aktionen und Attribute für Azure-Rollenzuweisungsbedingungen für Azure Blob Storage und Aktionen und Attribute für Azure-Rollenzuweisungsbedingungen für Azure-Warteschlangen.

Symptom: Warnung „Das Attribut trifft in diesem Kontext nicht zu.“

Wenn Sie Bearbeitungen im Code-Editor vornehmen und dann zum visuellen Editor wechseln, erhalten Sie die folgende Meldung, und das zuvor ausgewählte Attribut wird entfernt:

Attribute does not apply in this context. Use a different role assignment scope or remove the expression.

Ursache

Das angegebene Attribut ist im aktuellen Bereich nicht verfügbar. Ein Beispiel wäre etwa die Verwendung von Version ID in einem Speicherkonto mit aktiviertem hierarchischem Namespace.

Lösung

Wenn Sie das aktuell angegebene Attribut verwenden möchten, müssen Sie die Rollenzuweisungsbedingung in einem anderen Bereich (beispielsweise in einem Ressourcengruppenbereich) erstellen. Alternativ können Sie den Ausdruck entfernen und mit den aktuell ausgewählten Aktionen erneut erstellen.

Symptom: Fehler „Das Attribut wird nicht erkannt.“

Wenn Sie Bearbeitungen im Code-Editor vornehmen und dann zum visuellen Editor wechseln, erhalten Sie die folgende Meldung, und das zuvor ausgewählte Attribut wird entfernt:

Attribute is not recognized. Select a valid attribute or remove the expression.

Ursache

Das angegebene Attribut wird nicht erkannt (möglicherweise aufgrund eines Tippfehlers).

Lösung

Beheben Sie den Tippfehler im Code-Editor. Oder: Entfernen Sie den vorhandenen Ausdruck, und verwenden Sie den visuellen Editor, um ein Attribut auszuwählen.

Symptom: Fehler mit Hinweis auf ungültigen Attributwert

Wenn Sie Bearbeitungen im Code-Editor vornehmen und dann zum visuellen Editor wechseln, erhalten Sie die folgende Meldung, und das zuvor ausgewählte Attribut wird entfernt:

Attribute value is invalid. Select another attribute or value.

Ursache

Die rechte Seite des Ausdrucks enthält ein ungültiges Attribut oder einen ungültigen Wert.

Lösung

Verwenden Sie den visuellen Editor, um ein Attribut auszuwählen oder einen Wert anzugeben.

Symptom: Fehler „Es wurden keine Aktionen ausgewählt.“

Wenn Sie im visuellen Editor alle Aktionen entfernen, erhalten Sie die folgende Meldung:

No actions selected. Select one or more actions to edit expressions.

Ursache

Es ist zwar ein Ausdruck vorhanden, es wurden aber keine Aktionen als Ziel ausgewählt.

Lösung

Fügen Sie im Abschnitt Aktion hinzufügen mindestens eine Aktion als Ziel für den Ausdruck hinzu.

Symptom – Es sind keine Optionen verfügbarer Fehler

Wenn Sie versuchen, einen Ausdruck hinzuzufügen, erhalten Sie die folgende Meldung:

No options available

Ursache

Sie haben für mehrere Aktionen ausgewählt, und es gibt keine Attribute, die für alle aktuell ausgewählten Aktionen gelten.

Lösung

Wählen Sie im Abschnitt Aktion hinzufügen weniger Aktionen aus, die als Ziel verwendet werden sollen. Fügen Sie mehrere Bedingungen hinzu, um die entfernten Aktionen als Ziel zu verwenden.

Symptom – Rollendefinitions-IDs nicht gefunden

Wenn Sie versuchen, einen Ausdruck hinzuzufügen, erhalten Sie die folgende Meldung:

Cannot find built-in or custom role definitions with IDs: <role IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.

Ursache

Eine oder mehrere Rollendefinitions-IDs, die Sie für das Attribut Rollendefinitions-ID hinzufügen wollten, wurden nicht gefunden oder haben nicht das richtige GUID-Format: 00000000-0000-0000-0000-000000000000.

Lösung

Verwenden Sie den Bedingungseditor, um die Rolle auszuwählen. Wenn Sie die benutzerdefinierte Rolle kürzlich hinzugefügt haben, aktualisieren Sie die Seite, oder melden Sie sich ab, und melden Sie sich erneut an.

Symptom – Prinzipal-IDs nicht gefunden

Wenn Sie versuchen, einen Ausdruck hinzuzufügen, erhalten Sie die folgende Meldung:

Cannot find users, groups, or service principals in Azure Active Directory with principal IDs: <principal IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.

Ursache

Eine oder mehrere Prinzipal-IDs, die Sie für das Attribut Prinzipal-ID hinzufügen wollten, wurden nicht gefunden oder haben nicht das richtige GUID-Format: 00000000-0000-0000-0000-000000000000.

Lösung

Verwenden Sie den Bedingungseditor, um den Prinzipal auszuwählen. Wenn Sie den benutzerdefinierten Prinzipal kürzlich hinzugefügt haben, aktualisieren Sie die Seite, oder melden Sie sich ab, und melden Sie sich erneut an.

Fehlermeldungen in Azure PowerShell

Symptom: Fehler mit Hinweis auf ungültiges Ressourcenattribut

Wenn Sie mit Azure PowerShell versuchen, eine Rollenzuweisung mit einer Bedingung hinzuzufügen, erhalten Sie einen Fehler ähnlich dem folgenden:

New-AzRoleAssignment : Resource attribute
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

Ursache

Wenn Ihre Bedingung ein Dollarzeichen ($) enthält, müssen Sie ihm einen umgekehrten Schrägstrich (`) voranstellen.

Lösung

Fügen Sie vor jedem Dollarzeichen einen umgekehrten Schrägstrich (`) hinzu. Die Folgenden wird ein Beispiel gezeigt. Weitere Informationen zu Regeln für Anführungszeichen in PowerShell finden Sie unter Informationen zu Regeln für Anführungszeichen.

$condition = "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<`$key_case_sensitive`$>] StringEquals 'Cascade'))"

Symptom: Fehler beim Kopieren und Einfügen einer Bedingung

Ursache

Wenn Sie PowerShell verwenden und eine Bedingung aus einem Dokument kopieren, kann diese Sonderzeichen enthalten, die den folgenden Fehler verursachen. Einige Editoren (z. B. Microsoft Word) fügen beim Formatieren von Text, der nicht angezeigt wird, Steuerzeichen hinzu.

The given role assignment condition is invalid.

Lösung

Wenn Sie eine Bedingung aus einem Rich-Text-Editor kopiert haben und sicher sind, dass die Bedingung richtig ist, löschen Sie alle Leerzeichen und Zeilenumbrüche, und fügen Sie dann die relevanten Leerzeichen wieder hinzu. Alternativ können Sie einen Nur-Text-Editor oder einen Code-Editor verwenden, z. B. Visual Studio Code.

Fehlermeldungen in der Azure CLI

Symptom: Fehler mit Hinweis auf ungültiges Ressourcenattribut

Wenn Sie mit der Azure CLI versuchen, eine Rollenzuweisung mit einer Bedingung hinzuzufügen, erhalten Sie einen Fehler ähnlich dem folgenden:

Resource attribute Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

Ursache

Wenn Ihre Bedingung ein Dollarzeichen ($) enthält, müssen Sie ihm einen umgekehrten Schrägstrich (\) voranstellen.

Lösung

Fügen Sie vor jedem Dollarzeichen einen umgekehrten Schrägstrich (\) hinzu. Die Folgenden wird ein Beispiel gezeigt. Weitere Informationen zu Regeln für Anführungszeichen in Bash finden Sie unter Doppelte Anführungszeichen.

condition="((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<\$key_case_sensitive\$>] StringEquals 'Cascade'))"

Symptom: Fehler mit Hinweis auf unbekannte Argumente

Wenn Sie mit der Azure CLI versuchen, eine Rollenzuweisung mit einer Bedingung hinzuzufügen, erhalten Sie einen Fehler ähnlich dem folgenden:

az: error: unrecognized arguments: --description {description} --condition {condition} --condition-version 2.0

Ursache

Sie verwenden wahrscheinlich eine frühere Version von Azure CLI, die keine Bedingungsparameter für die Rollenzuweisung unterstützt.

Lösung

Führen Sie ein Update auf die neueste Version der Azure CLI (2.18 oder höher) aus. Weitere Informationen finden Sie unter Installieren der Azure-Befehlszeilenschnittstelle.

Symptom: Fehler beim Zuweisen einer Bedingungszeichenfolge zu einer Variablen in Bash

Wenn Sie versuchen, einer Variablen in Bash eine Bedingungszeichenfolge zuzuweisen, erhalten Sie die Meldung bash: !: event not found.

Ursache

Wenn die Verlaufserweiterung in Bash aktiviert ist, wird aufgrund des Ausrufezeichens (!) unter Umständen die Meldung bash: !: event not found angezeigt.

Lösung

Deaktivieren Sie die Verlaufserweiterung mit dem Befehl set +H. Verwenden Sie set -H, um die Verlaufserweiterung erneut zu aktivieren.

Nächste Schritte