Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die attributbasierte Zugriffskontrolle (attribute-based access control, ABAC) ist ein Autorisierungssystem, das den Zugriff auf der Grundlage von Attributen definiert, die mit Sicherheitsprinzipalen, Ressourcen und der Umgebung einer Zugriffsanforderung verbunden sind. Mit ABAC können Sie einer Ressource basierend auf Attributen einen Sicherheitsprinzipalzugriff gewähren. Azure ABAC bezieht sich auf die Implementierung von ABAC für Azure.
Was sind Rollenzuweisungsbedingungen?
Azure role-based access control (Azure RBAC) ist ein Autorisierungssystem, das Ihnen hilft, zu verwalten, wer Zugriff auf Azure-Ressourcen hat, was sie mit diesen Ressourcen tun können und auf welche Bereiche sie Zugriff haben. In den meisten Fällen stellt Azure RBAC die zugriffsverwaltung bereit, die Sie benötigen, indem Rollendefinitionen und Rollenzuweisungen verwendet werden. In einigen Fällen möchten Sie jedoch möglicherweise ein differenziertes Zugriffsmanagement bereitstellen oder die Verwaltung von Hunderten von Rollenzuweisungen vereinfachen.
Azure ABAC baut auf Azure RBAC auf und fügt Rollenzuweisungsbedingungen auf der Grundlage von Attributen im Kontext bestimmter Aktionen hinzu. Eine Rollenzuweisungsbedingung ist eine zusätzliche Überprüfung, die Sie optional zu Ihrer Rollenzuweisung hinzufügen können, um eine genauere Zugriffssteuerung bereitzustellen. Eine Bedingung filtert Berechtigungen nach unten, die als Teil der Rollendefinition und Rollenzuweisung gewährt werden. So können Sie beispielsweise eine Bedingung hinzufügen, die vorschreibt, dass ein Objekt ein bestimmtes Etikett tragen muss, um es lesen zu können. Bedingungen können nicht dazu verwendet werden, den Zugriff auf bestimmte Ressourcen explizit zu verweigern.
Die Verwendung von Azure RBAC und Azure ABAC integriert die Vorteile beider Zugriffssteuerungsmodelle. Azure RBAC ist aufgrund seiner engen Ausrichtung mit Geschäftslogik einfacher zu implementieren, während Azure ABAC in einigen wichtigen Szenarien eine größere Flexibilität bietet. Durch die Kombination dieser beiden Methoden können Organisationen ein komplexeres Autorisierungsniveau erreichen.
Warum Bedingungen verwenden?
Es gibt drei Hauptvorteile für die Verwendung von Rollenzuweisungsbedingungen:
- Bereitstellen einer differenzierten Zugriffssteuerung – Eine Rollenzuweisung verwendet eine Rollendefinition mit Aktionen und Datenaktionen, um Sicherheitsprinzipalberechtigungen zu erteilen. Sie können Bedingungen formulieren, um diese Berechtigungen für eine feinkörnigere Zugriffssteuerung zu filtern. Sie können auch Bedingungen zu bestimmten Aktionen hinzufügen. Sie können z. B. John Lesezugriff auf Blobs in Ihrem Abonnement nur gewähren, wenn die Blobs als Project=Blue markiert sind.
- Verringern Sie die Anzahl der Rollenzuweisungen – Jedes Azure-Abonnement weist derzeit ein Grenzwert für Rollenzuweisungen auf. Es gibt Szenarien, die Tausende von Rollenzuweisungen erfordern würden. Alle diese Rollenzuweisungen müssten verwaltet werden. In diesen Szenarien könnten Sie möglicherweise Bedingungen hinzufügen, um deutlich weniger Rollenzuweisungen zu verwenden.
- Verwenden Sie Attribute, die eine bestimmte geschäftliche Bedeutung haben – Bedingungen ermöglichen ihnen die Verwendung von Attributen, die für Sie in der Zugriffssteuerung eine bestimmte geschäftliche Bedeutung haben. Einige Beispiele für Attribute sind Projektname, Softwareentwicklungsphase und Klassifizierungsebenen. Die Werte dieser Ressourcenattribute sind dynamisch und ändern sich, wenn Benutzer über Teams und Projekte hinweg wechseln.
Beispielszenarien für Bedingungen
Es gibt mehrere Szenarien, in denen Sie Ihrer Rollenzuweisung möglicherweise eine Bedingung hinzufügen möchten. Hier sind einige Beispiele.
- Lesezugriff auf Blobs mit dem Tag Project=Cascade
- Neue Blobs müssen das Tag "Project=Cascade" enthalten.
- Vorhandene Blobs müssen mit mindestens einem Projektschlüssel oder Programmschlüssel markiert werden.
- Vorhandene Blobs müssen mit einem Project-Schlüssel und einem Cascade-, Baker- oder Skagit-Wert markiert werden.
- Lesen, Schreiben oder Löschen von Blobs in Containern mit dem Namen „blobs-example-container“
- Lesezugriff auf Blobs in Containern mit dem Namen „blobs-example-container“ und dem Pfad „readonly“
- Schreibzugriff auf Blobs in Containern mit dem Namen „Contosocorp“ und dem Pfad „uploads/contoso“
- Lesezugriff auf Blobs mit dem Tag „Program=Alpine“ und dem Pfad „logs“
- Lesezugriff auf Blobs mit dem Tag Project=Baker und der Benutzer verfügt über ein übereinstimmendes Attribut Project=Baker
- Lesezugriff auf Blobs während eines bestimmten Datums/Zeitbereichs.
- Schreibzugriff auf Blobs nur über eine private Verbindung oder über ein bestimmtes Subnetz.
Weitere Informationen zum Erstellen dieser Beispiele finden Sie unter Beispiel für Azure-Rollenzuweisungsbedingungen für Blob Storage.
Wo können Bedingungen hinzugefügt werden?
Derzeit können Bedingungen zu integrierten oder benutzerdefinierten Rollenzuweisungen hinzugefügt werden, die Blob-Speicher- oder Warteschlangen-Speicher-Datenaktionen enthalten. Bedingungen werden im selben Umfang wie die Rollenzuweisung hinzugefügt. Genau wie bei Rollenzuweisungen müssen Sie über Microsoft.Authorization/roleAssignments/write
Berechtigungen zum Hinzufügen einer Bedingung verfügen.
Hier sind einige der Blob-Speicherattribute, die Sie in Ihren Bedingungen verwenden können.
- Kontoname
- Blobindextags
- Blobpfad
- Blobpräfix
- Containername
- Name des Verschlüsselungsbereichs
- Ist die aktuelle Version
- Ist der hierarchische Namespace aktiviert
- Ist eine private Verbindung
- Schnappschuss
- UTC jetzt (das aktuelle Datum und die aktuelle Uhrzeit in koordinierter Weltzeit)
- Versions-ID
Wie sieht eine Bedingung aus?
Sie können neuen oder vorhandenen Rollenzuweisungen Bedingungen hinzufügen. Dies ist die Rolle des Speicher-Blob-Datenlesers, die einem Benutzer namens Chandra im Rahmen einer Ressourcengruppe zugewiesen wurde. Außerdem wurde eine Bedingung hinzugefügt, die nur Lesezugriff auf Blobs mit dem Tag Project=Cascade zulässt.
Wenn Chandra versucht, ein Blob ohne das Project=Cascade-Tag zu lesen, ist der Zugriff nicht zulässig.
So sieht die Bedingung im Azure-Portal aus:
So sieht die Bedingung im Code aus:
(
(
!(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$>] StringEqualsIgnoreCase 'Cascade'
)
)
Weitere Informationen zum Format der Bedingungen finden Sie im Format der Azure-Rollenzuweisungsbedingung und -syntax.
Status der Bedingungsfeatures
In der folgenden Tabelle sind die Status der Merkmale der Bedingungen aufgeführt.
Merkmal | Der Status | Datum |
---|---|---|
Verwenden von Umgebungsattributen in einer Bedingung | Allgemein verfügbar | April 2024 |
Hinzufügen von Bedingungen mithilfe des Bedingungs-Editors im Azure-Portal | Allgemein verfügbar | Oktober 2022 |
Hinzufügen von Bedingungen mithilfe der Azure PowerShell-, Azure CLI- oder REST-API | Allgemein verfügbar | Oktober 2022 |
Verwenden Sie Ressourcen- und Anforderungsattribute für bestimmte Kombinationen von Azure-Speicherressourcen, Zugriffsattributtypen und Speicherkonto-Leistungsstufen. Weitere Informationen finden Sie unter Status der Bedingungsfeatures in Azure Storage. | Allgemein verfügbar | Oktober 2022 |
Verwenden benutzerdefinierter Sicherheitsattribute für einen Prinzipal in einer Bedingung | Allgemein verfügbar | November 2023 |
Bedingungen und Microsoft Entra PIM
Sie können auch Bedingungen für berechtigte Rollenzuweisungen mithilfe von Microsoft Entra Privileged Identity Management (Microsoft Entra PIM) für Azure-Ressourcen hinzufügen. Mit Microsoft Entra PIM müssen Ihre Endbenutzer eine berechtigte Rollenzuweisung aktivieren, um die Berechtigung zum Ausführen bestimmter Aktionen zu erhalten. Mithilfe von Bedingungen in Microsoft Entra PIM können Sie nicht nur den Zugriff eines Benutzers auf eine Ressource einschränken, sondern auch Microsoft Entra PIM verwenden, um ihn mit einer zeitgebundenen Einstellung, einem Genehmigungsworkflow, einem Überwachungspfad usw. zu schützen. Weitere Informationen finden Sie unter Zuweisen von Azure-Ressourcenrollen in Privileged Identity Management.
Terminologie
Um Azure RBAC und Azure ABAC besser zu verstehen, können Sie sich auf die folgende Liste der Begriffe beziehen.
Begriff | Definition |
---|---|
attributbasierte Zugriffssteuerung (ABAC) | Ein Autorisierungssystem, das den Zugriff basierend auf Attributen definiert, die Sicherheitsprinzipale, Ressourcen und Umgebung zugeordnet sind. Mit ABAC können Sie einer Ressource basierend auf Attributen einen Sicherheitsprinzipalzugriff gewähren. |
Azure ABAC (Attributbasierte Zugriffskontrolle) | Bezieht sich auf die Implementierung von ABAC für Azure. |
Rollenzuweisungsbedingung | Eine zusätzliche Überprüfung, die Sie optional zu Ihrer Rollenzuweisung hinzufügen können, um eine differenziertere Zugriffssteuerung bereitzustellen. |
Merkmal | In diesem Kontext ein Schlüssel-Wert-Paar wie „Project=Blue“, wobei „Project“ der Attributschlüssel und „Blue“ der Attributwert ist. Attribute und Tags sind synonym für Zugriffssteuerungszwecke. |
Ausdruck | Ein Ausdruck innerhalb einer Bedingung, der als wahr oder falsch ausgewertet wird. Ein Ausdruck hat das Format <Attribut><Operator><Wert>. |
Grenzen
Hier sind einige der Grenzwerte für Bedingungen.
Ressource | Grenze | Hinweise |
---|---|---|
Anzahl von Ausdrücken pro Bedingung mithilfe des visuellen Editors | 5 | Sie können mithilfe des Code-Editors mehr als fünf Ausdrücke hinzufügen. |
Bekannte Probleme
Hier sind die bekannten Probleme mit Bedingungen:
- Wenn Sie Microsoft Entra Privileged Identity Management (PIM) und benutzerdefinierte Sicherheitsattribute verwenden, wird Principal beim Hinzufügen einer Bedingung nicht in der Attributquelle angezeigt.