Hinzufügen oder Entfernen von Azure-Rollenzuweisungen mithilfe von Azure PowerShellAdd or remove Azure role assignments using Azure PowerShell

Azure RBAC (Role-Based Access Control, rollenbasierte Zugriffssteuerung) ist das Autorisierungssystem für die Verwaltung des Zugriffs auf Azure-Ressourcen.Azure role-based access control (Azure RBAC) is the authorization system you use to manage access to Azure resources. Sie weisen Benutzern, Gruppen, Dienstprinzipalen oder verwalteten Identitäten für einen bestimmten Bereich Rollen zu, um diesen Zugriff zu gewähren.To grant access, you assign roles to users, groups, service principals, or managed identities at a particular scope. In diesem Artikel wird das Zuweisen von Rollen mit Azure PowerShell beschrieben.Azure RBAC (Role-Based Access Control, rollenbasierte Zugriffssteuerung) ist das Autorisierungssystem für die Verwaltung des Zugriffs auf Azure-Ressourcen.Azure role-based access control (Azure RBAC) is the authorization system you use to manage access to Azure resources. Sie weisen Benutzern, Gruppen, Dienstprinzipalen oder verwalteten Identitäten für einen bestimmten Bereich Rollen zu, um diesen Zugriff zu gewähren.To grant access, you assign roles to users, groups, service principals, or managed identities at a particular scope. This article describes how to assign roles using Azure PowerShell.

Hinweis

Dieser Artikel wurde aktualisiert und beinhaltet jetzt das neue Az-Modul von Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Sie können das AzureRM-Modul weiterhin verwenden, das bis mindestens Dezember 2020 weiterhin Fehlerbehebungen erhält.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Weitere Informationen zum neuen Az-Modul und zur Kompatibilität mit AzureRM finden Sie unter Introducing the new Azure PowerShell Az module (Einführung in das neue Az-Modul von Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Anweisungen zur Installation des Az-Moduls finden Sie unter Install Azure PowerShell (Installieren von Azure PowerShell).For Az module installation instructions, see Install Azure PowerShell.

VoraussetzungenPrerequisites

Sie benötigen Folgendes, um Rollenzuweisungen hinzufügen oder entfernen zu können:To add or remove role assignments, you must have:

Abrufen von Objekt-IDsGet object IDs

Sie müssen ggf. die eindeutige ID eines Objekts angeben, um Rollenzuweisungen hinzufügen oder entfernen zu können.To add or remove role assignments, you might need to specify the unique ID of an object. Die ID weist dieses Format auf: 11111111-1111-1111-1111-111111111111.The ID has the format: 11111111-1111-1111-1111-111111111111. Sie können die ID über das Azure-Portal oder Azure PowerShell abrufen.You can get the ID using the Azure portal or Azure PowerShell.

BenutzerUser

Zum Abrufen der Objekt-ID für einen Azure AD-Benutzer können Sie Get-AzADUser verwenden.To get the object ID for an Azure AD user, you can use Get-AzADUser.

Get-AzADUser -StartsWith <string_in_quotes>
(Get-AzADUser -DisplayName <name_in_quotes>).id

GroupGroup

Zum Abrufen der Objekt-ID für eine Azure AD-Gruppe können Sie Get-AzADGroup verwenden.To get the object ID for an Azure AD group, you can use Get-AzADGroup.

Get-AzADGroup -SearchString <group_name_in_quotes>
(Get-AzADGroup -DisplayName <group_name_in_quotes>).id

ApplicationApplication

Die Objekt-ID für einen Azure AD-Dienstprinzipal (eine von einer Anwendung verwendete Identität) können Sie mit Get-AzADServicePrincipal abrufen.To get the object ID for an Azure AD service principal (identity used by an application), you can use Get-AzADServicePrincipal. Verwenden Sie für einen Dienstprinzipal die Objekt-ID und nicht die Anwendungs-ID.For a service principal, use the object ID and not the application ID.

Get-AzADServicePrincipal -SearchString <service_name_in_quotes>
(Get-AzADServicePrincipal -DisplayName <service_name_in_quotes>).id

Hinzufügen einer RollenzuweisungAdd a role assignment

In Azure RBAC fügen Sie zum Gewähren des Zugriffs eine Rollenzuweisung hinzu.In Azure RBAC, to grant access, you add a role assignment.

Benutzer in einem RessourcengruppenbereichUser at a resource group scope

Verwenden Sie New-AzRoleAssignment, um für einen Benutzer in einem Ressourcengruppenbereich eine Rollenzuweisung hinzuzufügen.To add a role assignment for a user at a resource group scope, use New-AzRoleAssignment.

New-AzRoleAssignment -SignInName <email_or_userprincipalname> -RoleDefinitionName <role_name> -ResourceGroupName <resource_group_name>
PS C:\> New-AzRoleAssignment -SignInName alain@example.com -RoleDefinitionName "Virtual Machine Contributor" -ResourceGroupName pharma-sales


RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales/pr
                     oviders/Microsoft.Authorization/roleAssignments/55555555-5555-5555-5555-555555555555
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName        : Alain Charon
SignInName         : alain@example.com
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId   : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId           : 44444444-4444-4444-4444-444444444444
ObjectType         : User
CanDelegate        : False

Verwenden der eindeutigen Rollen-IDUsing the unique role ID

In bestimmten Fällen kann sich ein Rollenname ändern, z. B.:There are a couple of times when a role name might change, for example:

  • Sie verwenden eine eigene benutzerdefinierte Rolle und beschließen, den Namen zu ändern.You are using your own custom role and you decide to change the name.
  • Sie verwenden eine als Vorschauversion verfügbare Rolle, deren Name den Zusatz (Vorschauversion) enthält.You are using a preview role that has (Preview) in the name. Beim Veröffentlichen wird die Rolle umbenannt.When the role is released, the role is renamed.

Wichtig

Eine Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen.A preview version is provided without a service level agreement, and it's not recommended for production workloads. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar.Certain features might not be supported or might have constrained capabilities. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

Auch wenn eine Rolle umbenannt wird, ändert sich die Rollen-ID nicht.Even if a role is renamed, the role ID does not change. Wenn Sie Ihre Rollenzuweisungen mithilfe von Skripts oder mittels Automatisierung erstellen, wird empfohlen, die eindeutige Rollen-ID anstelle des Rollennamens zu verwenden.If you are using scripts or automation to create your role assignments, it's a best practice to use the unique role ID instead of the role name. Wird eine Rolle umbenannt, ist auf diese Weise die Wahrscheinlichkeit größer, dass Ihre Skripts funktionieren.Therefore, if a role is renamed, your scripts are more likely to work.

Verwenden Sie New-AzRoleAssignment, um eine Rollenzuweisung mithilfe der eindeutigen Rollen-ID anstelle des Rollennamens hinzuzufügen.To add a role assignment using the unique role ID instead of the role name, use New-AzRoleAssignment.

New-AzRoleAssignment -ObjectId <object_id> -RoleDefinitionId <role_id> -Scope <resource_group_name/resource/management groups>

Im folgenden Beispiel wird dem Benutzer alain@example.com im Ressourcengruppenkontext pharma-sales die Rolle Mitwirkender für virtuelle Computer zugewiesen.The following example assigns the Virtual Machine Contributor role to alain@example.com user at the pharma-sales resource group scope. Zum Abrufen der eindeutigen Rollen-ID können Sie Get-AzRoleDefinition verwenden. Weitere Informationen finden Sie unter Integrierte Azure-Rollen.To get the unique role ID, you can use Get-AzRoleDefinition or see Azure built-in roles.

PS C:\> New-AzRoleAssignment -ObjectId 44444444-4444-4444-4444-444444444444 -RoleDefinitionId 9980e02c-c2be-4d73-94e8-173b1dc7cf3c -Scope /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales

RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales/providers/Microsoft.Authorization/roleAssignments/55555555-5555-5555-5555-555555555555
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName        : Alain Charon
SignInName         : alain@example.com
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId   : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId           : 44444444-4444-4444-4444-444444444444
ObjectType         : User
CanDelegate        : False

Gruppe in einem RessourcenbereichGroup at a resource scope

Verwenden Sie New-AzRoleAssignment, um für eine Gruppe in einem Ressourcenbereich eine Rollenzuweisung hinzuzufügen.To add a role assignment for a group at a resource scope, use New-AzRoleAssignment. Informationen zum Abrufen der Objekt-ID für die Gruppe finden Sie unter Abrufen von Objekt-IDs.For information about how to get the object ID of the group, see Get object IDs.

New-AzRoleAssignment -ObjectId <object_id> -RoleDefinitionName <role_name> -ResourceName <resource_name> -ResourceType <resource_type> -ParentResource <parent resource> -ResourceGroupName <resource_group_name>
PS C:\> Get-AzADGroup -SearchString "Pharma"

SecurityEnabled DisplayName         Id                                   Type
--------------- -----------         --                                   ----
           True Pharma Sales Admins aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa Group

PS C:\> New-AzRoleAssignment -ObjectId aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa -RoleDefinitionName "Virtual Machine Contributor" -ResourceName RobertVirtualNetwork -ResourceType Microsoft.Network/virtualNetworks -ResourceGroupName RobertVirtualNetworkResourceGroup

RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup
                     /providers/Microsoft.Network/virtualNetworks/RobertVirtualNetwork/providers/Microsoft.Authorizat
                     ion/roleAssignments/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup
                     /providers/Microsoft.Network/virtualNetworks/RobertVirtualNetwork
DisplayName        : Pharma Sales Admins
SignInName         :
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId   : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId           : aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
ObjectType         : Group
CanDelegate        : False

Anwendung in einem AbonnementbereichApplication at a subscription scope

Verwenden Sie New-AzRoleAssignment, um für eine Anwendung in einem Abonnementbereich eine Rollenzuweisung hinzuzufügen.To add a role assignment for an application at a subscription scope, use New-AzRoleAssignment. Informationen zum Abrufen der Objekt-ID für die Anwendung finden Sie unter Abrufen von Objekt-IDs.For information about how to get the object ID of the application, see Get object IDs.

New-AzRoleAssignment -ObjectId <object_id> -RoleDefinitionName <role_name> -Scope /subscriptions/<subscription_id>
PS C:\> New-AzRoleAssignment -ObjectId 77777777-7777-7777-7777-777777777777 -RoleDefinitionName "Reader" -Scope /subscriptions/00000000-0000-0000-0000-000000000000

RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/66666666-6666-6666-6666-666666666666
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000
DisplayName        : MyApp1
SignInName         :
RoleDefinitionName : Reader
RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
ObjectId           : 77777777-7777-7777-7777-777777777777
ObjectType         : ServicePrincipal
CanDelegate        : False

Benutzer in einem VerwaltungsgruppenbereichUser at a management group scope

Verwenden Sie New-AzRoleAssignment, um für einen Benutzer in einem Verwaltungsgruppenbereich eine Rollenzuweisung hinzuzufügen.To add a role assignment for a user at a management group scope, use New-AzRoleAssignment. Die Verwaltungsgruppen-ID befindet sich auf dem Blatt Verwaltungsgruppen im Azure-Portal, oder Sie können zum Abrufen auch Get-AzManagementGroup verwenden.To get the management group ID, you can find it on the Management groups blade in the Azure portal or you can use Get-AzManagementGroup.

New-AzRoleAssignment -SignInName <email_or_userprincipalname> -RoleDefinitionName <role_name> -Scope /providers/Microsoft.Management/managementGroups/<group_id>
PS C:\> New-AzRoleAssignment -SignInName alain@example.com -RoleDefinitionName "Billing Reader" -Scope /providers/Microsoft.Management/managementGroups/marketing-group

RoleAssignmentId   : /providers/Microsoft.Management/managementGroups/marketing-group/providers/Microsoft.Authorization/roleAssignments/22222222-2222-2222-2222-222222222222
Scope              : /providers/Microsoft.Management/managementGroups/marketing-group
DisplayName        : Alain Charon
SignInName         : alain@example.com
RoleDefinitionName : Billing Reader
RoleDefinitionId   : fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64
ObjectId           : 44444444-4444-4444-4444-444444444444
ObjectType         : User
CanDelegate        : False

Entfernen einer RollenzuweisungRemove a role assignment

In Azure RBAC entfernen Sie mit Remove-AzRoleAssignment eine Rollenzuweisung und somit den Zugriff.In Azure RBAC, to remove access, you remove a role assignment by using Remove-AzRoleAssignment.

Im folgenden Beispiel wird die Zuweisung der Rolle Mitwirkender für virtuelle Computer von Benutzer alain@example.com für die Ressourcengruppe pharma-sales entfernt:The following example removes the Virtual Machine Contributor role assignment from the alain@example.com user on the pharma-sales resource group:

PS C:\> Remove-AzRoleAssignment -SignInName alain@example.com -RoleDefinitionName "Virtual Machine Contributor" -ResourceGroupName pharma-sales

Das folgende Beispiel entfernt die Rolle <role_name> aus <object_id> in einem Abonnementbereich.The following example removes the <role_name> role from <object_id> at a subscription scope.

Remove-AzRoleAssignment -ObjectId <object_id> -RoleDefinitionName <role_name> -Scope /subscriptions/<subscription_id>

Das folgende Beispiel entfernt die Rolle <role_name> aus <object_id> im Verwaltungsgruppenbereich.The following example removes the <role_name> role from <object_id> at the management group scope.

Remove-AzRoleAssignment -ObjectId <object_id> -RoleDefinitionName <role_name> -Scope /providers/Microsoft.Management/managementGroups/<group_id>

Wenn Sie die folgende Fehlermeldung erhalten: „The provided information does not map to a role assignment“ (Die angegebenen Informationen stimmen mit keiner Rollenzuweisung überein), sollten Sie sicherstellen, dass auch die Parameter -Scope oder -ResourceGroupName angegeben werden.If you get the error message: "The provided information does not map to a role assignment", make sure that you also specify the -Scope or -ResourceGroupName parameters. Weitere Informationen finden Sie unter Behandeln von Problemen bei Azure RBAC.For more information, see Troubleshoot Azure RBAC.

Nächste SchritteNext steps