Teilen über


Zuweisen von Azure-Rollen mithilfe von Azure PowerShell

Azure role-based access control (Azure RBAC) ist das Autorisierungssystem, das Sie zum Verwalten des Zugriffs auf Azure-Ressourcen verwenden. 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 mithilfe von Azure PowerShell zuweisen.

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Voraussetzungen

Um Rollen zuzuweisen, müssen Sie über Folgendes verfügen:

Schritte zum Zuweisen einer Azure-Rolle

Eine Rollenzuweisung besteht aus drei Elementen: Sicherheitsprinzipal, Rollendefinition und Bereich.

Schritt 1: Ermitteln, wer Zugriff benötigt

Sie können einem Benutzer, einer Gruppe, einem Dienstprinzipal oder einer verwalteten Identität eine Rolle zuweisen. Um eine Rolle zuzuweisen, müssen Sie möglicherweise die eindeutige ID des Objekts angeben. Die ID hat das Format: 11111111-1111-1111-1111-111111111111. Sie können die ID über das Azure-Portal oder Azure PowerShell abrufen.

Benutzer

Bei einem Microsoft Entra-Benutzer rufen Sie den Benutzerprinzipalnamen (z. B. patlong@contoso.com) oder die Benutzerobjekt-ID ab. Um die Objekt-ID abzurufen, können Sie Get-AzADUser verwenden.

Get-AzADUser -StartsWith <userName>
(Get-AzADUser -DisplayName <userName>).id

Gruppieren

Für eine Microsoft Entra-Gruppe benötigen Sie die Gruppenobjekt-ID. Um die Objekt-ID abzurufen, können Sie Get-AzADGroup verwenden.

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

Service Principal

Für einen Microsoft Entra-Dienstprinzipal (von einer Anwendung verwendete Identität) benötigen Sie die Dienstprinzipalobjekt-ID. Um die Objekt-ID abzurufen, können Sie Get-AzADServicePrincipal verwenden. Verwenden Sie für einen Dienstprinzipal die Objekt-ID und nicht die Anwendungs-ID.

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

Verwaltete Identität

Für eine vom System zugewiesene oder vom Benutzer zugewiesene verwaltete Identität benötigen Sie die Objekt-ID. Um die Objekt-ID abzurufen, können Sie Get-AzADServicePrincipal verwenden.

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

Schritt 2: Auswählen der entsprechenden Rolle

Berechtigungen werden in Rollen gruppiert. Sie können aus einer Liste mit mehreren integrierten Azure-Rollen auswählen oder eigene benutzerdefinierte Rollen verwenden. Es empfiehlt sich, den Zugriff mit den geringsten Berechtigungen zu gewähren, die erforderlich sind. Vermeiden Sie daher, eine breitere Rolle zuzuweisen.

Zum Auflisten von Rollen und Abrufen der eindeutigen Rollen-ID können Sie Get-AzRoleDefinition verwenden.

Get-AzRoleDefinition | Format-Table -Property Name, IsCustom, Id

Hier erfahren Sie, wie Sie die Details einer bestimmten Rolle auflisten.

Get-AzRoleDefinition -Name <roleName>

Weitere Informationen finden Sie unter "Azure-Rollendefinitionen auflisten".

Schritt 3: Identifizieren des erforderlichen Bereichs

Azure bietet vier Ebenen des Bereichs: Ressource, Ressourcengruppe, Abonnement und Verwaltungsgruppe. Es empfiehlt sich, den Zugriff mit den geringsten Berechtigungen zu gewähren, die erforderlich sind. Vermeiden Sie daher das Zuweisen einer Rolle in einem breiteren Bereich. Weitere Informationen zum Bereich finden Sie unter "Grundlegendes zum Bereich".

Ressourcenbereich

Für den Ressourcenbereich benötigen Sie die Ressourcen-ID der Ressource. Sie finden die Ressourcen-ID, indem Sie sich die Eigenschaften der Ressource im Azure-Portal ansehen. Eine Ressourcen-ID weist das folgende Format auf.

/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/<providerName>/<resourceType>/<resourceSubType>/<resourceName>

Bereich der Ressourcengruppe

Für den Ressourcengruppenbereich benötigen Sie den Namen der Ressourcengruppe. Sie finden den Namen auf der Seite "Ressourcengruppen " im Azure-Portal, oder Sie können Get-AzResourceGroup verwenden.

Get-AzResourceGroup

Abonnementbereich

Für den Abonnementbereich benötigen Sie die Abonnement-ID. Sie finden die ID auf der Seite "Abonnements " im Azure-Portal, oder Sie können Get-AzSubscription verwenden.

Get-AzSubscription

Verwaltungsgruppenbereich

Für den Verwaltungsgruppenbereich benötigen Sie den Namen der Verwaltungsgruppe. Sie finden den Namen auf der Seite "Verwaltungsgruppen " im Azure-Portal, oder Sie können Get-AzManagementGroup verwenden.

Get-AzManagementGroup

Schritt 4: Rollen zuweisen

Verwenden Sie den Befehl "New-AzRoleAssignment ", um eine Rolle zuzuweisen. Je nach Bereich weist der Befehl in der Regel eines der folgenden Formate auf.

Ressourcenbereich

New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/<providerName>/<resourceType>/<resourceSubType>/<resourceName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionId <roleId> `
-ResourceName <resourceName> `
-ResourceType <resourceType> `
-ResourceGroupName <resourceGroupName>

Bereich der Ressourcengruppe

New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-ResourceGroupName <resourceGroupName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-ResourceGroupName <resourceGroupName>

Abonnementbereich

New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /subscriptions/<subscriptionId>

Verwaltungsgruppenbereich

New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName <roleName> `
-Scope /providers/Microsoft.Management/managementGroups/<groupName>
New-AzRoleAssignment -ObjectId <objectId> `
-RoleDefinitionName <roleName> `
-Scope /providers/Microsoft.Management/managementGroups/<groupName>

Zuweisen von Rollenbeispielen

Eine Rolle für alle Blob-Container im Ressourcenbereich eines Speicherkontos zuweisen

Weist die Rolle "Mitwirkender für Storage Blob Data" einem Dienstprinzipal mit der Objekt-ID 55555555-5555-5555-5555-555555555555 und der Anwendungs-ID 66666666-6666-6666-6666-666666666666 im Ressourcenumfang für ein Speicherkonto namens storage12345 zu.

PS C:\> New-AzRoleAssignment -ApplicationId 66666666-6666-6666-6666-666666666666 `
-RoleDefinitionName "Storage Blob Data Contributor" `
-Scope "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345"

RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345/providers/Microsoft.Authorization/roleAssignments/cccccccc-cccc-cccc-cccc-cccccccccccc
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345
DisplayName        : example-identity
SignInName         :
RoleDefinitionName : Storage Blob Data Contributor
RoleDefinitionId   : ba92f5b4-2d11-453d-a403-e96b0029c9fe
ObjectId           : 55555555-5555-5555-5555-555555555555
ObjectType         : ServicePrincipal
CanDelegate        : False

Zuweisen einer Rolle für einen bestimmten Blobcontainerressourcenbereich

Weist die Rolle "Storage Blob Data Contributor" einem Dienstprinzipal mit Objekt-ID 55555555-5555-5555-5555-555555555555 und Anwendungs-ID 66666666-6666-6666-6666-666666666666 im Ressourcenbereich eines Blob-Containers namens blob-container-01 zu.

PS C:\> New-AzRoleAssignment -ApplicationId 66666666-6666-6666-6666-666666666666 `
-RoleDefinitionName "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"

RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345/blobServices/default/containers/blob-container-01/providers/Microsoft.Authorization/roleAssignm
                     ents/dddddddd-dddd-dddd-dddd-dddddddddddd
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/storage12345/blobServices/default/containers/blob-container-01
DisplayName        : example-identity
SignInName         :
RoleDefinitionName : Storage Blob Data Contributor
RoleDefinitionId   : ba92f5b4-2d11-453d-a403-e96b0029c9fe
ObjectId           : 55555555-5555-5555-5555-555555555555
ObjectType         : ServicePrincipal
CanDelegate        : False

Zuweisen einer Rolle für eine Gruppe in einem bestimmten Ressourcenbereich für virtuelle Netzwerke

Weist die Rolle Mitwirkender von virtuellen Computern der Gruppe Pharma Sales Admins mit der ID „aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa“ an einem Ressourcenbereich für ein virtuelles Netzwerk namens pharma-sales-project-network zu.

PS C:\> New-AzRoleAssignment -ObjectId aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa `
-RoleDefinitionName "Virtual Machine Contributor" `
-ResourceName pharma-sales-project-network `
-ResourceType Microsoft.Network/virtualNetworks `
-ResourceGroupName MyVirtualNetworkResourceGroup

RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup
                     /providers/Microsoft.Network/virtualNetworks/pharma-sales-project-network/providers/Microsoft.Authorizat
                     ion/roleAssignments/bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup
                     /providers/Microsoft.Network/virtualNetworks/pharma-sales-project-network
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

Zuweisen einer Rolle für einen Benutzer im Geltungsbereich einer Ressourcengruppe

Weist dem Benutzer im Ressourcengruppenbereich patlong@contoso.com die Rolle Mitwirkender für virtuelle Computer zu.

PS C:\> New-AzRoleAssignment -SignInName patlong@contoso.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        : Pat Long
SignInName         : patlong@contoso.com
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId   : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId           : 44444444-4444-4444-4444-444444444444
ObjectType         : User
CanDelegate        : False

Alternativ können Sie die vollqualifizierte Ressourcengruppe mit dem -Scope Parameter angeben:

PS C:\> New-AzRoleAssignment -SignInName patlong@contoso.com `
-RoleDefinitionName "Virtual Machine Contributor" `
-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        : Pat Long
SignInName         : patlong@contoso.com
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId   : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId           : 44444444-4444-4444-4444-444444444444
ObjectType         : User
CanDelegate        : False

Einem Benutzer eine Rolle unter Verwendung der eindeutigen Rollen-ID auf der Ebene einer Ressourcengruppe zuweisen

Es gibt ein paar Male, wenn sich ein Rollenname ändern kann, z. B.:

  • Sie verwenden Ihre eigene benutzerdefinierte Rolle, und Sie entscheiden, den Namen zu ändern.
  • Sie verwenden eine Vorschaurolle mit dem Namen (Vorschau ). Wenn die Rolle freigegeben wird, wird die Rolle umbenannt.

Auch wenn eine Rolle umbenannt wird, ändert sich die Rollen-ID nicht. Wenn Sie Skripts oder Automatisierung verwenden, um Ihre Rollenzuweisungen zu erstellen, empfiehlt es sich, die eindeutige Rollen-ID anstelle des Rollennamens zu verwenden. Daher funktionieren Ihre Skripts wahrscheinlich besser, wenn eine Rolle umbenannt wird.

Im folgenden Beispiel wird dem Benutzer im Ressourcengruppenbereich patlong@contoso.com die Rolle Mitwirkender für virtuelle Computer zugewiesen.

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        : Pat Long
SignInName         : patlong@contoso.com
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId   : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId           : 44444444-4444-4444-4444-444444444444
ObjectType         : User
CanDelegate        : False

Zuweisen einer Rolle für eine Anwendung im Umfang einer Ressourcengruppe

Weist einer Anwendung mit der Objekt-ID „77777777-7777-7777-7777-777777777777“ des Dienstprinzipals die Rolle Mitwirkender für virtuelle Computer im Ressourcengruppenbereich pharma-sales zu.

PS C:\> New-AzRoleAssignment -ObjectId 77777777-7777-7777-7777-777777777777 `
-RoleDefinitionName "Virtual Machine Contributor" `
-ResourceGroupName pharma-sales

RoleAssignmentId   : /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/66666666-6666-6666-6666-666666666666
Scope              : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
DisplayName        : MyApp1
SignInName         :
RoleDefinitionName : Virtual Machine Contributor
RoleDefinitionId   : 9980e02c-c2be-4d73-94e8-173b1dc7cf3c
ObjectId           : 77777777-7777-7777-7777-777777777777
ObjectType         : ServicePrincipal
CanDelegate        : False

Zuweisen einer Rolle für einen Benutzer in einem Abonnementbereich

Weist dem Benutzer die annm@example.com auf Abonnement-Ebene zu.

PS C:\> New-AzRoleAssignment -SignInName annm@example.com `
-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        : Ann M
SignInName         : annm@example.com
RoleDefinitionName : Reader
RoleDefinitionId   : acdd72a7-3385-48ef-bd42-f606fba81ae7
ObjectId           : 77777777-7777-7777-7777-777777777777
ObjectType         : ServicePrincipal
CanDelegate        : False

Zuweisen einer Rolle für einen Benutzer auf Ebene einer Managementgruppe

Weist dem Benutzer die Rolle "Abrechnungsleser" im Bereich einer Verwaltungsgruppe zu.

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

Nächste Schritte