Grundlegendes zu Azure-Rollenzuweisungen
Mit Rollenzuweisungen können Sie einem Prinzipal (z. B. einem Benutzer, einer Gruppe, einer verwalteten Identität oder einem Dienstprinzipal) Zugriff auf eine bestimmte Azure-Ressource gewähren. In diesem Artikel werden Rollenzuweisungen genauer beschrieben.
Rollenzuweisung
Der Zugriff auf Azure-Ressourcen wird durch das Erstellen einer Rollenzuweisung erteilt und durch Entfernen einer Rollenzuweisung widerrufen.
Eine Rollenzuweisung hat mehrere Komponenten, darunter:
- Den Prinzipal, dem die Rolle zugewiesen wird
- Die zugewiesene Rolle
- Der Bereich, für den die Rolle zugewiesen ist
- Den Namen der Rollenzuweisung und eine Beschreibung, in der erläutert wird, warum die Rolle zugewiesen wurde
Beispielsweise können Sie Azure RBAC nutzen, um folgende Rollen zuzuweisen:
- Der Benutzer „Sally“ verfügt über Besitzerzugriff auf das Speicherkonto contoso123 in der Ressourcengruppe ContosoStorage.
- Alle Benutzer in der Gruppe „Cloudadministratoren“ in Microsoft Entra ID verfügen über Lesezugriff auf alle Ressourcen in der Ressourcengruppe ContosoStorage.
- Die verwaltete Identität, die einer Anwendung zugeordnet ist, darf virtuelle Computer im Abonnement von Contoso neu starten.
Nachstehend finden Sie ein Beispiel für die in einer Rollenzuweisung enthaltenen Eigenschaften, die mit Azure PowerShell angezeigt werden:
{
"RoleAssignmentName": "00000000-0000-0000-0000-000000000000",
"RoleAssignmentId": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
"Scope": "/subscriptions/11111111-1111-1111-1111-111111111111",
"DisplayName": "User Name",
"SignInName": "user@contoso.com",
"RoleDefinitionName": "Contributor",
"RoleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c",
"ObjectId": "22222222-2222-2222-2222-222222222222",
"ObjectType": "User",
"CanDelegate": false,
"Description": null,
"ConditionVersion": null,
"Condition": null
}
Nachstehend finden Sie ein Beispiel für die in einer Rollenzuweisung enthaltenen Eigenschaften, die mithilfe der Azure CLI oder der REST-API angezeigt werden:
{
"canDelegate": null,
"condition": null,
"conditionVersion": null,
"description": null,
"id": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
"name": "00000000-0000-0000-0000-000000000000",
"principalId": "22222222-2222-2222-2222-222222222222",
"principalName": "user@contoso.com",
"principalType": "User",
"roleDefinitionId": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c",
"roleDefinitionName": "Contributor",
"scope": "/subscriptions/11111111-1111-1111-1111-111111111111",
"type": "Microsoft.Authorization/roleAssignments"
}
In der folgenden Tabelle wird erläutert, was die einzelnen Eigenschaften der Rollenzuweisung bedeuten.
Eigenschaft | Beschreibung |
---|---|
RoleAssignmentName name |
Der Name der Rollenzuweisung, der ein global eindeutiger Bezeichner (GUID) ist |
RoleAssignmentId id |
Die eindeutige ID der Rollenzuweisung, die den Namen enthält |
Scope scope |
Der Azure-Ressourcenbezeichner, auf den die Rollenzuweisung begrenzt ist |
RoleDefinitionId roleDefinitionId |
Die eindeutige ID der Rolle. |
RoleDefinitionName roleDefinitionName |
Der Name der Rolle. |
ObjectId principalId |
Der Microsoft Entra-Objektbezeichner für den Prinzipal, dem die Rolle zugewiesen ist |
ObjectType principalType |
Der Typ des Microsoft Entra-Objekts, das der Prinzipal darstellt Zu den gültigen Werten zählen User , Group und ServicePrincipal . |
DisplayName |
Bei Rollenzuweisungen für Benutzer: der Anzeigename des Benutzers |
SignInName principalName |
Der eindeutige Prinzipalname (UPN) des Benutzers oder der Name der Anwendung, die dem Dienstprinzipal zugeordnet ist |
Description description |
Die Beschreibung der Rollenzuweisung |
Condition condition |
Bedingungsanweisung, die mit einer oder mehreren Aktionen aus Rollendefinition und Attributen erstellt wurde |
ConditionVersion conditionVersion |
Die Versionsnummer der Bedingung. Der Standardwert lautet 2.0 und ist die einzige öffentlich unterstützte Version. |
CanDelegate canDelegate |
Nicht implementiert. |
Bereich
Wenn Sie eine Rollenzuweisung erstellen, müssen Sie den Bereich angeben, auf den sie angewendet wird. Der Bereich stellt die Ressource oder die Gruppe von Ressourcen dar, auf die der Prinzipal zugreifen darf. Sie können eine Rollenzuweisung auf eine einzelne Ressource, eine Ressourcengruppe, ein Abonnement oder eine Verwaltungsgruppe festlegen.
Tipp
Verwenden Sie den kleinsten Bereich, den Sie benötigen, um Ihre Anforderungen zu erfüllen.
Wenn Sie beispielsweise einer verwalteten Identität Zugriff auf ein einzelnes Speicherkonto gewähren müssen, empfiehlt es sich aus Sicherheitsgründen, die Rollenzuweisung im Bereich des Speicherkontos und nicht im Bereich der Ressourcengruppe oder des Abonnements zu erstellen.
Weitere Informationen zum Begriff „Bereich“ finden Sie unter Grundlegendes zum Begriff „Bereich“.
Zuzuweisende Rolle
Eine Rollenzuweisung ist mit einer Rollendefinition verbunden. Die Rollendefinition gibt die Berechtigungen an, die der Prinzipal innerhalb des Bereichs der Rollenzuweisung aufweisen soll.
Sie können eine integrierte Rollendefinition oder eine benutzerdefinierte Rollendefinition zuweisen. Wenn Sie eine Rollenzuweisung erstellen, müssen Sie bei einigen Tools die Rollendefinitions-ID verwenden, während Sie bei anderen Tools den Namen der Rolle angeben können.
Weitere Informationen zu Rollendefinitionen finden Sie unter Grundlegendes zu Rollendefinitionen.
Prinzipal
Prinzipale umfassen Benutzer, Sicherheitsgruppen, verwaltete Identitäten, Workloadidentitäten und Dienstprinzipale. Prinzipale werden in Ihrem Microsoft Entra-Mandanten erstellt und verwaltet. Sie können jedem Prinzipal eine Rolle zuweisen. Verwenden Sie die Objekt-ID von Microsoft Entra ID, um den Prinzipal zu ermitteln, dem Sie die Rolle zuweisen möchten.
Wenn Sie eine Rollenzuweisung mithilfe von Azure PowerShell, der Azure CLI, Bicep oder einer anderen Infrastructure-as-Code-Technologie (IaC) erstellen, geben Sie den Prinzipaltyp an. Zu den Prinzipaltypen gehören Benutzer, Gruppe und ServicePrincipal. Es ist wichtig, den richtigen Prinzipaltyp anzugeben. Andernfalls kann es zu zeitweiligen Bereitstellungsfehlern kommen, insbesondere wenn Sie mit Dienstprinzipalen und verwalteten Identitäten arbeiten.
Name
Der Ressourcenname einer Rollenzuweisung muss eine GUID (Globally Unique Identifier) sein.
Die Ressourcennamen von Rollenzuweisungen müssen innerhalb des Microsoft Entra-Mandanten eindeutig sein, auch wenn der Gültigkeitsbereich dieser Rollenzuweisung kleiner ist.
Tipp
Wenn Sie eine Rollenzuweisung mithilfe des Azure-Portals, mit Azure PowerShell oder der Azure CLI erstellen, wird der Rollenzuweisung bei der Erstellung automatisch ein eindeutiger Name zugewiesen.
Wenn Sie eine Rollenzuweisung mithilfe von Bicep oder einer anderen Infrastructure-as-Code-Technologie (IaC) erstellen, müssen Sie sorgfältig planen, wie Sie Ihre Rollenzuweisungen benennen. Weitere Informationen finden Sie unter Erstellen von Azure RBAC-Ressourcen mithilfe von Bicep.
Verhalten der Ressourcenlöschung
Wenn Sie Benutzer*innen, Gruppen, Dienstprinzipale oder verwaltete Identitäten aus Microsoft Entra ID löschen, empfiehlt es sich, alle entsprechenden Rollenzuweisungen zu löschen. Sie werden nicht automatisch gelöscht. Alle Rollenzuweisungen, die auf eine gelöschte Prinzipal-ID verweisen, werden ungültig.
Wenn Sie versuchen, den Namen einer Rollenzuweisung für eine andere Rollenzuweisung wiederzuverwenden, schlägt die Bereitstellung fehl. Dieses Problem tritt eher auf, wenn Sie Bicep oder eine Azure Resource Manager-Vorlage (ARM-Vorlage) verwenden, um Ihre Rollenzuweisungen bereitzustellen, da Sie den Namen der Rollenzuweisung explizit festlegen müssen, wenn Sie diese Tools verwenden. Um dieses Verhalten zu umgehen, sollten Sie entweder die alte Rollenzuweisung entfernen, bevor Sie es neu erstellen oder sicherstellen, dass Sie einen eindeutigen Namen verwenden, wenn Sie eine neue Rollenzuweisung bereitstellen.
Beschreibung
Sie können einer Rollenzuweisung eine Textbeschreibung hinzufügen. Sie müssen Ihren Rollenzuweisungen keine Beschreibungen hinzufügen, dies wird jedoch empfohlen. Geben Sie eine kurze Begründung dafür an, warum der Prinzipal die zugewiesene Rolle benötigt. Wenn jemand die Rollenzuweisungen überwacht, kann anhand von Beschreibungen nachvollzogen werden, warum sie erstellt wurden und ob sie noch anwendbar sind.
Bedingungen
Einige Rollen unterstützen Rollenzuweisungsbedingungen anhand von Attributen im Zusammenhang mit bestimmten Aktionen. Eine Rollenzuweisungsbedingung ist eine zusätzliche Überprüfung, die Sie Ihrer Rollenzuweisung optional hinzufügen können, um eine präzisere Zugriffssteuerung zu ermöglichen.
So können Sie beispielsweise eine Bedingung hinzufügen, die festlegt, dass ein Objekt über ein bestimmtes Tag verfügen muss, damit der Benutzer das Objekt lesen kann.
In der Regel erstellen Sie Bedingungen mithilfe eines visuellen Bedingungs-Editors, aber hier sehen Sie ein Beispiel, wie eine Bedingung im Code aussieht:
((!(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'))
Die voranstehende Bedingung ermöglicht Benutzern das Lesen von Blobs mit dem Blobindextag-Schlüssel Project und dem Wert Cascade.
Weitere Informationen zu Bedingungen finden Sie unter Was ist die attributbasierte Zugriffssteuerung von Azure (Azure ABAC)?.