Was ist die rollenbasierte Zugriffssteuerung in Azure (Azure Role-Based Access Control, Azure RBAC)?
Die Zugriffsverwaltung für Cloudressourcen ist eine wichtige Funktion für jede Organisation, die die Cloud nutzt. Mit der rollenbasierten Zugriffssteuerung in Azure (Azure RBAC) können Sie verwalten, welche Benutzer Zugriff auf Azure-Ressourcen haben, welche Aktionen die Benutzer für diese Ressourcen ausführen können und auf welche Bereiche die Benutzer zugreifen können.
Azure RBAC ist ein Autorisierungssystem, das auf Azure Resource Manager basiert und eine präzise Verwaltung des Zugriffs auf Azure-Ressourcen ermöglicht.
Dieses Video bietet eine schnelle Übersicht über Azure RBAC.
Wofür kann ich Azure RBAC verwenden?
Hier sind einige Beispiele für die Verwendungsmöglichkeiten von Azure RBAC:
- Ein Benutzer kann virtuelle Computer in einem Abonnement verwalten, während ein anderer Benutzer virtuelle Netzwerke verwalten kann
- Eine DBA-Gruppe kann SQL-Datenbanken in einem Abonnement verwalten
- Ein Benutzer kann sämtliche Ressourcen in einer Ressourcengruppe verwalten, wie z.B. virtuelle Computer, Websites und Subnetze
- Eine Anwendung kann auf sämtliche Ressourcen in einer Ressourcengruppe zugreifen
Funktionsweise von Azure RBAC
Sie können den Zugriff auf Ressourcen mit Azure RBAC steuern, indem Sie Azure-Rollen zuweisen. Dies ist ein wesentliches Konzept, das zur Durchsetzung von Berechtigungen verwendet wird. Eine Rollenzuweisung besteht aus drei Elementen: Sicherheitsprinzipal, Rollendefinition und Bereich.
Sicherheitsprinzipal
Ein Sicherheitsprinzipal ist ein Objekt, das einen Benutzer, eine Gruppe, einen Dienstprinzipal oder eine verwaltete Identität darstellt, der bzw. die Zugriff auf Azure-Ressourcen anfordert. Sie können jedem dieser Sicherheitsprinzipale eine Rolle zuweisen.
Rollendefinition
Eine Rollendefinition ist eine Sammlung von Berechtigungen. Sie wird in der Regel einfach Rolle genannt. Eine Rollendefinition listet die ausführbaren Aktionen wie etwa Lesen, Schreiben und Löschen auf. Rollen können auf allgemeiner Ebene erteilt werden (z.B. Benutzer) oder spezifisch sein (z.B. Leser virtueller Computer).
Azure umfasst mehrere integrierte Rollen, die Sie verwenden können. Mit der Rolle Mitwirkender von virtuellen Computern können Benutzer beispielsweise virtuelle Computer erstellen und verwalten. Wenn die integrierten Rollen den Ansprüchen Ihrer Organisation nicht entsprechen, können Sie Ihre eigenen benutzerdefinierten Azure-Rollen erstellen.
Dieses Video bietet eine schnelle Übersicht über integrierte Rollen und benutzerdefinierte Rollen.
Mit Datenaktionen in Azure können Sie Zugriff auf Daten in einem Objekt gewähren. Wenn ein Benutzer z.B. über Lesezugriff auf Daten in einem Speicherkonto verfügt, kann er die Blobs in diesem Speicherkonto lesen.
Weitere Informationen finden Sie unter Grundlegendes zu Rollendefinitionen für Azure-Ressourcen.
`Scope`
Ein Bereich ist der für den Zugriff geltende Ressourcensatz. Wenn Sie eine Rolle zuweisen, können Sie die zulässigen Aktionen durch das Definieren eines Bereichs weiter einschränken. Dies ist hilfreich, wenn Sie einem Benutzer die Rolle Mitwirkender von Websites zuweisen möchten, jedoch nur für eine Ressourcengruppe.
In Azure können Sie auf vier Ebenen einen Bereich angeben: Verwaltungsgruppe, Abonnement, Ressourcengruppe oder Ressource. Bereiche sind in einer Beziehung zwischen über- und untergeordneten Elementen strukturiert. Sie können Rollen auf jeder dieser Bereichsebenen zuweisen.
Weitere Informationen zum Begriff „Bereich“ finden Sie unter Grundlegendes zum Begriff „Bereich“.
Rollenzuweisungen
Eine Rollenzuweisung ist der Prozess, in dem eine Rollendefinition zum Zweck der Zugriffserteilung in einem bestimmten Bereich an einen Benutzer, eine Gruppe, einen Dienstprinzipal oder eine verwaltete Identität gebunden wird. Der Zugriff wird durch Erstellen einer Rollenzuweisung erteilt und durch Entfernen einer Rollenzuweisung widerrufen.
Das folgende Diagramm zeigt ein Beispiel für eine Rollenzuweisung. In diesem Beispiel wurde der Gruppe „Marketing“ die Rolle Mitwirkender für die Ressourcengruppe „Pharmavertrieb“ zugewiesen. Dies bedeutet, dass Benutzer in der Gruppe „Marketing“ in der Ressourcengruppe „Pharmavertrieb“ eine beliebige Azure-Ressource erstellen oder verwalten können. Benutzerinnen und Benutzer der Gruppe „Marketing“ haben keinen Zugriff auf Ressourcen außerhalb der Ressourcengruppe „Pharmavertrieb“, sofern ihnen keine weitere Rolle zugewiesen wurde.
Sie können über das Azure-Portal, die Azure CLI, Azure PowerShell, Azure SDKs oder REST-APIs Rollen zuweisen.
Weitere Informationen finden Sie unter Schritte zum Hinzufügen einer Rollenzuweisung.
Gruppen
Rollenzuweisungen sind für Gruppen transitiv. Das bedeutet, dass wenn Benutzer Mitglied einer Gruppe und diese Gruppe wiederum Mitglied einer anderen Gruppe ist, die über eine Rollenzuweisung verfügt, er ebenfalls über die Berechtigungen dieser Rollenzuweisung verfügt.
Mehrere Rollenzuweisungen
Was geschieht bei mehreren überlappenden Rollenzuweisungen? Azure RBAC ist ein additives Modell. Die hinzugefügten Rollenzuweisungen stellen daher die Summe Ihrer effektiven Berechtigungen dar. Sehen Sie sich das folgende Beispiel an, in dem einem Benutzer die Rolle „Mitwirkender“ im Abonnementbereich und die Rolle „Leser“ für eine Ressourcengruppe zugewiesen wird. Die Summe der Berechtigungen vom Typ „Mitwirkender“ und der Berechtigungen vom Typ „Leser“ entspricht praktisch der Rolle „Mitwirkender“ für das Abonnement. Daher hat die Zuweisung der Rolle „Leser“ in diesem Fall keine Auswirkung.
Ermitteln des Benutzerzugriffs auf eine Ressource durch Azure RBAC
Im Anschluss finden Sie die allgemeinen Schritte, mit denen von Azure RBAC ermittelt wird, ob Sie Zugriff auf eine Ressource haben. Diese Schritte gelten für Azure Resource Manager oder für Dienste auf Datenebene, die in Azure RBAC integriert sind. Es ist hilfreich, dies zu verstehen, wenn Sie versuchen, ein Zugriffsproblem zu behandeln.
Ein Benutzer (oder Dienstprinzipal) erhält ein Token für Azure Resource Manager.
Das Token enthält die Gruppenmitgliedschaften des Benutzers (einschließlich transitiver Gruppenmitgliedschaften).
Der Benutzer führt einen REST-API-Aufruf an Azure Resource Manager mit dem angefügten Token durch.
Azure Resource Manager ruft alle Rollenzuweisungen und Ablehnungszuweisungen ab, die die Ressource, für die die Aktion ausgeführt wird, betreffen.
Wenn eine Ablehnungszuweisung zutrifft, wird der Zugriff blockiert. Andernfalls wird die Auswertung fortgesetzt.
Azure Resource Manager begrenzt die Rollenzuweisungen, die diesen Benutzer oder seine Gruppe betreffen, und ermittelt, welche Rollen der Benutzer für diese Ressource besitzt.
Azure Resource Manager ermittelt, ob die Aktion im API-Aufruf in den Rollen, die der Benutzer für diese Ressource besitzt, enthalten ist. Falls die Rollen Aktionen (
Actions
) mit einem Platzhalter (*
) enthalten, werden die effektiven Berechtigungen berechnet, indemNotActions
von den zulässigen Aktionen (Actions
) subtrahiert wird. Die gleiche Subtraktion wird auch für andere Datenaktionen durchgeführt.Actions - NotActions = Effective management permissions
DataActions - NotDataActions = Effective data permissions
Wenn der Benutzer im angeforderten Bereich über keine Rolle mit der Aktion verfügt, wird kein Zugriff gewährt. Andernfalls werden alle ggf. vorhandenen Bedingungen ausgewertet.
Wenn die Rollenzuweisung Bedingungen enthält, werden sie ausgewertet. Andernfalls wird der Zugriff gewährt.
Sind die Bedingungen erfüllt, wird der Zugriff zugelassen. Andernfalls wird der Zugriff verweigert.
Die Auswertungslogik ist im folgenden Diagramm zusammengefasst:
Wo werden Azure RBAC-Daten gespeichert?
Rollendefinitionen, Rollenzuweisungen und Ablehnungszuweisungen werden global gespeichert, um sicherzustellen, dass Sie unabhängig von der Region, in der Sie die Ressource erstellt haben, Zugriff auf Ihre Ressourcen haben.
Wenn eine Rollenzuweisung oder andere Azure RBAC-Daten gelöscht werden, werden die Daten global gelöscht. Prinzipale, die über Azure RBAC-Daten Zugriff auf eine Ressource hatten, verlieren ihren Zugriff.
Warum sind Azure RBAC-Daten global?
Azure RBAC-Daten sind global, um sicherzustellen, dass Kundinnen und Kunden unabhängig vom Zugriffsort rechtzeitig auf Ressourcen zugreifen können. Azure RBAC wird durch den Azure Resource Manager erzwungen, der über einen globalen Endpunkt verfügt, und Anforderungen werden der Geschwindigkeit und Resilienz wegen an die nächstgelegene Region weitergeleitet. Daher muss Azure RBAC in allen Regionen erzwungen werden, und die Daten werden in alle Regionen repliziert. Weitere Informationen finden Sie unter Resilienz von Azure Resource Manager.
Betrachten Sie das folgende Beispiel. Arina erstellt einen virtuellen Computer in „Asien, Osten“. Bob, ein Mitglied des Teams von Arina, arbeitet in den USA. Bob muss auf den virtuellen Computer zugreifen, der in „Asien, Osten“ erstellt wurde. Um Bob rechtzeitig Zugriff auf den virtuellen Computer zu gewähren, muss Azure die Rollenzuweisung global replizieren, die Bob an jedem Ort, wo er sich befindet, Zugriff auf den virtuellen Computer gewährt.
Lizenzanforderungen
Die Nutzung dieses Features ist kostenlos und in Ihrem Azure-Abonnement enthalten.