Gewähren von Benutzerberechtigungen für bestimmte Labrichtlinien

Übersicht

Dieser Artikel veranschaulicht, wie Sie mit PowerShell Benutzerberechtigungen für eine bestimmte Labrichtlinie gewähren. Auf diese Weise können Berechtigungen basierend auf den Anforderungen der einzelnen Benutzer gewährt werden. Sie möchten beispielsweise einem bestimmten Benutzer die Möglichkeit zum Ändern der Richtlinieneinstellungen der virtuellen Computer gewähren, jedoch nicht für die Kostenrichtlinien.

Richtlinien als Ressourcen

Wie im Artikel Hinzufügen oder Entfernen von Azure-Rollenzuweisungen über das Azure-Portal verdeutlicht, ermöglicht die Azure RBAC eine differenzierte Zugriffsverwaltung für Azure-Ressourcen. Mithilfe der Azure RBAC können Sie Aufgaben in Ihrem DevOps-Team verteilen und Benutzern nur den Zugriff gewähren, den sie zur Ausführung ihrer Aufgaben benötigen.

In DevTest Labs ist eine Richtlinie ein Ressourcentyp, der die Azure RBAC-Aktion Microsoft.DevTestLab/labs/policySets/policies/ ermöglicht. Jede Labrichtlinie ist eine Ressource im Richtlinienressourcentyp und kann als Bereich einer Azure-Rolle zugewiesen werden.

Um Benutzern beispielsweise Lese-/Schreibberechtigungen für die Richtlinie Zulässige VM-Größen zu erteilen, erstellen Sie eine benutzerdefinierte Rolle, die mit der Aktion Microsoft.DevTestLab/labs/policySets/policies/ arbeitet, und weisen dieser benutzerdefinierten Rolle anschließend im Bereich von Microsoft.DevTestLab/labs/policySets/policies/AllowedVmSizesInLab die entsprechenden Benutzer zu.

Weitere Informationen zu benutzerdefinierten Rollen in Azure RBAC finden Sie unter Benutzerdefinierte Azure-Rollen.

Erstellen einer benutzerdefinierten Labrolle mithilfe von PowerShell

Um zu beginnen, müssen Sie Azure PowerShell installieren.

Nachdem Sie Azure PowerShell-Cmdlets eingerichtet haben, können Sie die folgenden Aufgaben ausführen:

  • Auflisten aller Vorgänge/Aktionen für einen Ressourcenanbieter
  • Auflisten der Aktionen in einer bestimmten Rolle
  • Erstellen einer benutzerdefinierten Rolle

Im folgenden PowerShell-Skript sind Beispiele für diese Aufgaben veranschaulicht:

# List all the operations/actions for a resource provider.
Get-AzProviderOperation -OperationSearchString "Microsoft.DevTestLab/*"

# List actions in a particular role.
(Get-AzRoleDefinition "DevTest Labs User").Actions

# Create custom role.
$policyRoleDef = (Get-AzRoleDefinition "DevTest Labs User")
$policyRoleDef.Id = $null
$policyRoleDef.Name = "Policy Contributor"
$policyRoleDef.IsCustom = $true
$policyRoleDef.AssignableScopes.Clear()
$policyRoleDef.AssignableScopes.Add("/subscriptions/<SubscriptionID> ")
$policyRoleDef.Actions.Add("Microsoft.DevTestLab/labs/policySets/policies/*")
$policyRoleDef = (New-AzRoleDefinition -Role $policyRoleDef)

Zuweisen von Benutzerberechtigungen für eine bestimmte Richtlinie mithilfe von benutzerdefinierten Rollen

Nachdem Sie Ihre benutzerdefinierten Rollen definiert haben, können Sie diese Benutzern zuweisen. Um einem Benutzer eine benutzerdefinierte Rolle zuzuweisen, benötigen Sie zunächst die ObjectId dieses Benutzers. Verwenden Sie dazu das Get-AzADUser-Cmdlet.

Im folgenden Beispiel lautet die ObjectId des Benutzers SomeUser 05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3.

PS C:\>Get-AzADUser -SearchString "SomeUser"

DisplayName                    Type                           ObjectId
-----------                    ----                           --------
someuser@hotmail.com                                          05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3

Sobald Sie über die ObjectId für den Benutzer und den Namen einer benutzerdefinierte Rolle verfügen, können Sie dem Benutzer diese Rolle mit dem New-AzRoleAssignment-Cmdlet zuweisen:

PS C:\>New-AzRoleAssignment -ObjectId 05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3 -RoleDefinitionName "Policy Contributor" -Scope /subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroupName>/providers/Microsoft.DevTestLab/labs/<LabName>/policySets/default/policies/AllowedVmSizesInLab

Im vorherigen Beispiel wird die AllowedVmSizesInLab -Richtlinie verwendet. Sie können die folgenden Richtlinien verwenden:

  • MaxVmsAllowedPerUser
  • MaxVmsAllowedPerLab
  • AllowedVmSizesInLab
  • LabVmsShutdown

Eine bestimmte Rolle erstellen, um Benutzern das Ausführen einer bestimmten Aufgabe zu ermöglichen

Dieses Beispielskript erstellt die Rolle DevTest Labs Advanced User, die über die Berechtigung zum Starten und Beenden alle VMs im Lab verfügt:

    $policyRoleDef = Get-AzRoleDefinition "DevTest Labs User"
    $policyRoleDef.Actions.Remove('Microsoft.DevTestLab/Environments/*')
    $policyRoleDef.Id = $null
    $policyRoleDef.Name = "DevTest Labs Advanced User"
    $policyRoleDef.IsCustom = $true
    $policyRoleDef.AssignableScopes.Clear()
    $policyRoleDef.AssignableScopes.Add("/subscriptions/<subscription Id>")
    $policyRoleDef.Actions.Add("Microsoft.DevTestLab/labs/virtualMachines/Start/action")
    $policyRoleDef.Actions.Add("Microsoft.DevTestLab/labs/virtualMachines/Stop/action")
    $policyRoleDef = New-AzRoleDefinition -Role $policyRoleDef 

Erste Schritte mit Azure DevTest Labs

Neu bei Azure? Kostenloses Azure-Konto erstellen.

Sind Sie bereits in Azure? Erste Schritte mit Ihrem ersten Lab in DevTest Labs: Erste Schritte mit Azure DevTest Labs in Minuten.

Nächste Schritte

Nachdem Sie Benutzerberechtigungen für bestimmte Labrichtlinien gewährt haben, finden Sie im Folgenden Informationen zu den nächsten möglichen Schritten: