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 „aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb“.
PS C:\>Get-AzADUser -SearchString "SomeUser"
DisplayName Type ObjectId
----------- ---- --------
someuser@hotmail.com aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
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 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb -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? Erstellen Sie Ihr erstes Lab, und führen Sie Erste Schritte mit Azure DevTest Labs in wenigen Minuten durch.
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: