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.
Wenn Sie die Bedingung zuvor bearbeitet haben, haben Sie die Bedingungsvorlage verwendet.
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.
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
Ö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.
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.
- Leser für Attributdefinitionen
- Leser für Attributzuweisungen
- Administrator für Attributdefinitionen
- Administrator für Attributzuweisungen
Wichtig
Standardmäßig verfügen globale Administratoren und andere Administratorrollen nicht über Berechtigungen zum Lesen, Definieren oder Zuweisen von benutzerdefinierten Sicherheitsattributen.
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.
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.
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.