Delen via


Gebruikersmachtigingen verlenen aan specifiek labbeleid

Overzicht

In dit artikel wordt uitgelegd hoe u PowerShell gebruikt om gebruikers machtigingen te verlenen aan een bepaald labbeleid. Op die manier kunnen machtigingen worden toegepast op basis van de behoeften van elke gebruiker. U kunt bijvoorbeeld een bepaalde gebruiker de mogelijkheid geven om de instellingen voor het VM-beleid te wijzigen, maar niet aan het kostenbeleid.

Beleid als resources

Zoals besproken in het artikel op basis van op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC), biedt Azure RBAC gedetailleerd toegangsbeheer van resources voor Azure. Met Azure RBAC kunt u taken scheiden binnen uw DevOps-team en alleen de hoeveelheid toegang verlenen aan gebruikers die ze nodig hebben om hun taken uit te voeren.

In DevTest Labs is een beleid een resourcetype waarmee de Azure RBAC-actie Microsoft.DevTestLab/labs/policySets/policies/. Elk labbeleid is een resource in het resourcetype Beleid en kan worden toegewezen als een bereik aan een Azure-rol.

Als u bijvoorbeeld gebruikers lees-/schrijfmachtigingen wilt verlenen voor het beleid toegestane VM-grootten , maakt u een aangepaste rol die werkt met de actie Microsoft.DevTestLab/labs/policySets/policies/policies/ en wijst u vervolgens de juiste gebruikers toe aan deze aangepaste rol in het bereik van Microsoft.DevTestLab/labs/policySets/policies/AllowedVmSizesInLab.

Zie de aangepaste Azure-rollen voor meer informatie over aangepaste rollen in Azure RBAC.

Een aangepaste labrol maken met PowerShell

Als u wilt beginnen, moet u Azure PowerShell installeren.

Nadat u de Azure PowerShell-cmdlets hebt ingesteld, kunt u de volgende taken uitvoeren:

  • Alle bewerkingen/acties voor een resourceprovider weergeven
  • Acties in een bepaalde rol weergeven:
  • Een aangepaste rol maken

Het volgende PowerShell-script illustreert voorbeelden van het uitvoeren van deze taken:

# 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)

Machtigingen toewijzen aan een gebruiker voor een specifiek beleid met behulp van aangepaste rollen

Nadat u uw aangepaste rollen hebt gedefinieerd, kunt u deze toewijzen aan gebruikers. Als u een aangepaste rol wilt toewijzen aan een gebruiker, moet u eerst de ObjectId verkrijgen die die gebruiker vertegenwoordigt. Gebruik hiervoor de cmdlet Get-AzADUser .

In het volgende voorbeeld is de ObjectId van de SomeUser-gebruiker 05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3.

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

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

Zodra u de ObjectId voor de gebruiker en een aangepaste rolnaam hebt, kunt u die rol toewijzen aan de gebruiker met de cmdlet New-AzRoleAssignment :

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

In het vorige voorbeeld wordt het beleid AllowedVmSizesInLab gebruikt. U kunt een van de volgende beleidsregels gebruiken:

  • MaxVmsAllowedPerUser
  • MaxVmsAllowedPerLab
  • AllowedVmSizesInLab
  • LabVmsShutdown

Een rol maken zodat gebruikers een specifieke taak kunnen uitvoeren

Dit voorbeeldscript waarmee de rol DevTest Labs Advanced User wordt gemaakt, die is gemachtigd om alle VM's in het lab te starten en te stoppen:

    $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 

Aan de slag met Azure DevTest Labs

Nieuw bij Azure? Maak een gratis Azure-account.

Gebruikt u Azure al? Maak uw eerste lab en ga binnen enkele minuten aan de slag met Azure DevTest Labs.

Volgende stappen

Zodra u gebruikersmachtigingen hebt verleend voor specifiek labbeleid, volgt u een aantal volgende stappen om rekening mee te houden: