Zuweisen von Azure-Rollen mithilfe der Azure-Befehlszeilenschnittstelle
Artikel
Azure RBAC (Role-Based Access Control, rollenbasierte Zugriffssteuerung) ist das Autorisierungssystem für die Verwaltung des Zugriffs auf Azure-Ressourcen. Sie weisen Benutzern, Gruppen, Dienstprinzipalen oder verwalteten Identitäten für einen bestimmten Bereich Rollen zu, um diesen Zugriff zu gewähren. In diesem Artikel wird beschrieben, wie Sie Rollen mit Azure CLI zuweisen.
Voraussetzungen
Zum Zuweisen von Rollen müssen Sie über Folgendes verfügen:
Das Zuweisen einer Rolle besteht aus drei Elementen: Sicherheitsprinzipal, Rollendefinition und Bereich.
Schritt 1: Ermitteln, wer Zugriff benötigt
Sie können eine Rolle einem Benutzer, einer Gruppe, einem Dienstprinzipal oder einer verwalteten Identität zuweisen. Sie müssen ggf. die eindeutige ID des Objekts angeben, um eine Rolle zuzuweisen. Die ID weist dieses Format auf: 11111111-1111-1111-1111-111111111111. Sie können die ID über das Azure-Portal oder die Azure-Befehlszeilenschnittstelle (Azure CLI) abrufen.
Benutzer
Rufen Sie für einen Microsoft Entra-Benutzer den Benutzerprinzipalnamen ab, z patlong@contoso.com . B. die Benutzerobjekt-ID. Zum Abrufen der Objekt-ID können Sie az ad user show verwenden.
Azure CLI
az ad user show --id"{principalName}"--query"id"--output tsv
Gruppieren
Für eine Microsoft Entra-Gruppe benötigen Sie die Gruppenobjekt-ID. Zum Abrufen der Objekt-ID können Sie az ad group show oder az ad group list verwenden.
Azure CLI
az ad group show --group"{groupName}"--query"id"--output tsv
Dienstprinzipal
Für einen Microsoft Entra-Dienstprinzipal (von einer Anwendung verwendete Identität) benötigen Sie die Dienstprinzipalobjekt-ID. Zum Abrufen der Objekt-ID können Sie az ad sp list verwenden. Verwenden Sie für einen Dienstprinzipal die Objekt-ID und nicht die Anwendungs-ID.
Azure CLI
az ad sp list --all--query"[].{displayName:displayName, id:id}"--output tsv
az ad sp list --display-name"{displayName}"
Verwaltete Identität
Bei einer systemseitig oder benutzerseitig zugewiesenen verwalteten Identität benötigen Sie die Objekt-ID. Zum Abrufen der Objekt-ID können Sie az ad sp list verwenden.
Azure CLI
az ad sp list --all--filter"servicePrincipalType eq 'ManagedIdentity'"
Sie können auch az identity list verwenden, um nur benutzerseitig zugewiesene verwaltete Identitäten aufzulisten.
Azure CLI
az identity list
Schritt 2: Auswählen der entsprechenden Rolle
Berechtigungen sind in Rollen zusammengefasst. Sie können aus einer Liste von verschiedenen in Azure integrierten Rollen auswählen oder eigene benutzerdefinierte Rollen verwenden. Es hat sich bewährt, den Zugriff mit den minimal erforderlichen Berechtigungen zu gewähren. Daher sollten Sie keine allgemeine Rolle zuweisen.
Zum Auflisten der Rollen und Abrufen der eindeutigen Rollen-ID können Sie az role definition list verwenden.
Azure CLI
az role definition list --query"[].{name:name, roleType:roleType, roleName:roleName}"--output tsv
Im Folgenden wird gezeigt, wie Sie die Details einer bestimmten Rolle auflisten.
Schritt 3: Identifizieren des erforderlichen Bereichs
Azure bietet vier Bereichsebenen: Ressource, Ressourcengruppe, Abonnement und Verwaltungsgruppe. Es hat sich bewährt, den Zugriff mit den minimal erforderlichen Berechtigungen zu gewähren. Daher sollten Sie Rollen nicht für einen allgemeinen Bereich zuweisen. Weitere Informationen zum Begriff „Bereich“ finden Sie unter Grundlegendes zum Begriff „Bereich“.
Ressourcenbereich
Für den Ressourcenbereich benötigen Sie die Ressourcen-ID der Ressource. Die Ressourcen-ID finden Sie unter den Eigenschaften der Ressource im Azure-Portal. Ressourcen-IDs weisen folgendes Format auf:
Für den Bereich der Ressourcengruppe benötigen Sie den Namen der Ressourcengruppe. Sie finden den Namen im Azure-Portal auf der Seite Ressourcengruppen oder mithilfe von az group list.
Azure CLI
az group list --query"[].{name:name}"--output tsv
Abonnementbereich
Für den Abonnementbereich benötigen Sie die Abonnement-ID. Sie finden die Abonnement-ID im Azure-Portal auf der Seite Abonnements oder durch Ausführen von az account list.
Azure CLI
az account list --query"[].{name:name, id:id}"--output tsv
Verwaltungsgruppenbereich
Für den Verwaltungsgruppenbereich benötigen Sie den Namen der Verwaltungsgruppe. Sie finden den Namen im Azure-Portal auf der Seite Verwaltungsgruppen oder durch Ausführen von az account management-group list.
Azure CLI
az account management-group list --query"[].{name:name, id:id}"--output tsv
Schritt 4: Rollen zuweisen
Verwenden Sie zum Zuweisen einer Rolle den Befehl az role assignment create. Abhängig vom Bereich weist der Befehl in der Regel eines der folgenden Formate auf.
Ressourcenbereich
Azure CLI
az role assignment create --assignee"{assignee}" \
--role"{roleNameOrId}" \
--scope"/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceSubType}/{resourceName}"
Ressourcengruppenbereich
Azure CLI
az role assignment create --assignee"{assignee}" \
--role"{roleNameOrId}" \
--scope"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}"
Abonnementbereich
Azure CLI
az role assignment create --assignee"{assignee}" \
--role"{roleNameOrId}" \
--scope"/subscriptions/{subscriptionId}"
Verwaltungsgruppenbereich
Azure CLI
az role assignment create --assignee"{assignee}" \
--role"{roleNameOrId}" \
--scope"/providers/Microsoft.Management/managementGroups/{managementGroupName}"
Im Folgenden finden Sie eine Beispielausgabe, wenn Sie einem Benutzer die Rolle Mitwirkender für virtuelle Computer in einem Ressourcengruppenbereich zuweisen.
Zuweisen einer Rolle für alle Blobcontainer in einem Speicherkonto-Ressourcenbereich
Weist einem Dienstprinzipal mit der Objekt-ID 55555555-5555-5555-5555-555555555555 die Rolle Mitwirkender an Speicherblobdaten im Ressourcenbereich für das Speicherkonto storage12345 zu.
Azure CLI
az role assignment create --assignee"55555555-5555-5555-5555-555555555555" \
--role"Storage Blob Data Contributor" \
--scope"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345"
Zuweisen einer Rolle für einen bestimmten Blobcontainer-Ressourcenbereich
Weist einem Dienstprinzipal mit der Objekt-ID 55555555-5555-5555-5555-555555555555 die Rolle Mitwirkender an Speicherblobdaten im Ressourcenbereich für den Blobcontainer blob-container-01 zu.
Azure CLI
az role assignment create --assignee"55555555-5555-5555-5555-555555555555" \
--role"Storage Blob Data Contributor" \
--scope"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345/blobServices/default/containers/blob-container-01"
Zuweisen einer Rolle für eine Gruppe im Ressourcenbereich eines bestimmten virtuellen Netzwerks
Weist der Gruppe Ann Mack Team mit der ID „22222222-2222-2222-2222-222222222222“ die Rolle Mitwirkender für virtuelle Computer im Ressourcenbereich für das virtuelle Netzwerk pharma-sales-project-network zu.
Azure CLI
az role assignment create --assignee"22222222-2222-2222-2222-222222222222" \
--role"Virtual Machine Contributor" \
--scope"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pharma-sales/providers/Microsoft.Network/virtualNetworks/pharma-sales-project-network"
Zuweisen einer Rolle für einen Benutzer im Ressourcengruppenbereich
az role assignment create --assignee"patlong@contoso.com" \
--role"Virtual Machine Contributor" \
--scope"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pharma-sales"
Zuweisen einer Rolle für einen Benutzer mithilfe der eindeutigen Rollen-ID in einem Ressourcengruppenbereich
In bestimmten Fällen kann sich ein Rollenname ändern, z. B.:
Sie verwenden eine eigene benutzerdefinierte Rolle und beschließen, den Namen zu ändern.
Sie verwenden eine als Vorschauversion verfügbare Rolle, deren Name den Zusatz (Vorschauversion) enthält. Beim Veröffentlichen wird die Rolle umbenannt.
Auch wenn eine Rolle umbenannt wird, ändert sich die Rollen-ID nicht. Wenn Sie Ihre Rollenzuweisungen mithilfe von Skripts oder mittels Automatisierung erstellen, wird empfohlen, die eindeutige Rollen-ID anstelle des Rollennamens zu verwenden. Wird eine Rolle umbenannt, ist auf diese Weise die Wahrscheinlichkeit größer, dass Ihre Skripts funktionieren.
Im folgenden Beispiel wird dem Benutzer patlong@contoso.com im Ressourcengruppenbereich pharma-sales die Rolle Mitwirkender für virtuelle Computer zugewiesen.
Azure CLI
az role assignment create --assignee"patlong@contoso.com" \
--role"9980e02c-c2be-4d73-94e8-173b1dc7cf3c" \
--scope"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pharma-sales"
Zuweisen einer Rolle für alle Blobcontainer in einem Ressourcengruppenbereich
Weist einem Dienstprinzipal mit der Objekt-ID 55555555-5555-5555-5555-555555555555 die Rolle Mitwirkender an Speicherblobdaten im Ressourcengruppenbereich Example-Storage-rg zu.
Azure CLI
az role assignment create --assignee"55555555-5555-5555-5555-555555555555" \
--role"Storage Blob Data Contributor" \
--scope"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/Example-Storage-rg"
Zuweisen einer Rolle für eine Anwendung in einem Ressourcengruppenbereich
Weist einer Anwendung mit der Objekt-ID „44444444-4444-4444-4444-444444444444“ des Dienstprinzipals die Rolle Mitwirkender für virtuelle Computer im Ressourcengruppenbereich pharma-sales zu.
Azure CLI
az role assignment create --assignee"44444444-4444-4444-4444-444444444444" \
--role"Virtual Machine Contributor" \
--scope"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pharma-sales"
Zuweisen einer Rolle für einen neuen Dienstprinzipal in einem Ressourcengruppenbereich
Wenn Sie einen neuen Dienstprinzipal erstellen und sofort versuchen, diesem eine Rolle zuzuweisen, kann die Rollenzuweisung in einigen Fällen fehlschlagen. Wenn Sie z.B. ein Skript verwenden, um eine neue verwaltete Identität zu erstellen, und dann versuchen, dem Dienstprinzipal eine Rolle zuzuweisen, kann die Rollenzuweisung fehlschlagen. Der Grund für diesen Fehler ist wahrscheinlich eine Replikationsverzögerung. Der Dienstprinzipal wird in einer Region erstellt, die Rollenzuweisung kann aber in einer anderen Region stattfinden, in die der Dienstprinzipal noch nicht repliziert wurde. Um dieses Szenario zu beheben, sollten Sie beim Erstellen der Rollenzuweisung den Prinzipaltyp angeben.
Verwenden Sie az role assignment create zum Zuweisen einer Rolle, geben Sie einen Wert für --assignee-object-id an, und legen Sie dann --assignee-principal-type auf ServicePrincipal fest.
Azure CLI
az role assignment create --assignee-object-id"{assigneeObjectId}" \
--assignee-principal-type"{assigneePrincipalType}" \
--role"{roleNameOrId}" \
--scope"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}"
Im folgenden Beispiel wird der verwalteten Identität msi-test im Ressourcengruppenkontext pharma-sales die Rolle Mitwirkender für virtuelle Computer zugewiesen:
Azure CLI
az role assignment create --assignee-object-id"33333333-3333-3333-3333-333333333333" \
--assignee-principal-type"ServicePrincipal" \
--role"Virtual Machine Contributor" \
--scope"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/pharma-sales"
Zuweisen einer Rolle für einen Benutzer in einem Abonnementbereich
Weist dem Benutzer annm@example.com die Rolle Leser im Abonnementbereich zu.
Azure CLI
az role assignment create --assignee"annm@example.com" \
--role"Reader" \
--scope"/subscriptions/00000000-0000-0000-0000-000000000000"
Zuweisen einer Rolle für eine Gruppe in einem Abonnementbereich
Weist der Gruppe Ann Mack Team mit der ID „22222222-2222-2222-2222-222222222222“ die Rolle Leser im Abonnementbereich zu.
Azure CLI
az role assignment create --assignee"22222222-2222-2222-2222-222222222222" \
--role"Reader" \
--scope"/subscriptions/00000000-0000-0000-0000-000000000000"
Zuweisen einer Rolle für alle Blobcontainer in einem Abonnementbereich
az role assignment create --assignee"alain@example.com" \
--role"Storage Blob Data Reader" \
--scope"/subscriptions/00000000-0000-0000-0000-000000000000"
Zuweisen einer Rolle für einen Benutzer in einem Verwaltungsgruppenbereich
Weist dem Benutzer alain@example.com die Rolle Abrechnungsleser im Verwaltungsgruppenbereich zu.
Azure CLI
az role assignment create --assignee"alain@example.com" \
--role"Billing Reader" \
--scope"/providers/Microsoft.Management/managementGroups/marketing-group"
Hier erfahren Sie, wie Sie mithilfe von integrierten Azure-Rollen, verwalteten Identitäten und RBAC-Richtlinien den Zugriff auf Azure-Ressourcen steuern. Identität ist der Schlüssel zu sicheren Lösungen.
Erfahren Sie, wie Sie mithilfe der Azure-Befehlszeilenschnittstelle und Azure RBAC (Role-Based Access Control, rollenbasierte Zugriffssteuerung) ermitteln können, auf welche Ressourcen Benutzer, Gruppen, Dienstprinzipale und verwaltete Identitäten Zugriff haben.
Hier erfahren Sie, wie Sie Bedingungen der attributbasierten Zugriffssteuerung (Attribute-Based Access Control, ABAC) in Azure-Rollenzuweisungen über die Azure CLI und unter Verwendung der rollenbasierten Zugriffssteuerung von Azure (Role-Based Access Control, Azure RBAC) hinzufügen, auflisten, anzeigen oder löschen.