Concedere le autorizzazioni utente per specifici criteri di labGrant user permissions to specific lab policies

OverviewOverview

In questo articolo viene illustrato come usare PowerShell per concedere agli utenti autorizzazioni per un particolare criterio di lab.This article illustrates how to use PowerShell to grant users permissions to a particular lab policy. In questo modo, le autorizzazioni possono essere applicate in base alle esigenze di ciascun utente.That way, permissions can be applied based on each user's needs. Ad esempio, è possibile concedere a un determinato utente la possibilità di modificare le impostazioni dei criteri delle macchine virtuali, ma non i criteri dei costi.For example, you might want to grant a particular user the ability to change the VM policy settings, but not the cost policies.

Criteri come risorsePolicies as resources

Come descritto nell'articolo Controllo degli accessi in base al ruolo di Azure , il controllo degli accessi in base al ruolo consente la gestione specifica degli accessi delle risorse per Azure.As discussed in the Azure Role-based Access Control article, RBAC enables fine-grained access management of resources for Azure. Usando il Controllo degli accessi in base al ruolo di Azure, è possibile separare compiti all'interno del team DevOps e concedere agli utenti solo la quantità di accesso di cui hanno bisogno per svolgere il proprio lavoro.Using RBAC, you can segregate duties within your DevOps team and grant only the amount of access to users that they need to perform their jobs.

Nei lab di sviluppo/test un criterio è un tipo di risorsa che abilita l'azione del controllo degli accessi in base al ruolo Microsoft.DevTestLab/labs/policySets/policies/.In DevTest Labs, a policy is a resource type that enables the RBAC action Microsoft.DevTestLab/labs/policySets/policies/. Ogni criterio di lab è una risorsa del tipo di risorsa Criterio e può essere assegnato come ambito a un ruolo del controllo degli accessi in base al ruolo.Each lab policy is a resource in the Policy resource type, and can be assigned as a scope to an RBAC role.

Per concedere ad esempio le autorizzazioni di lettura/scrittura agli utenti per il criterio Allowed VM Sizes, è possibile creare un ruolo personalizzato da usare con l'azione Microsoft.DevTestLab/labs/policySets/policies/* e assegnare gli utenti al ruolo nell'ambito di Microsoft.DevTestLab/labs/policySets/policies/AllowedVmSizesInLab.For example, in order to grant users read/write permission to the Allowed VM Sizes policy, you would create a custom role that works with the Microsoft.DevTestLab/labs/policySets/policies/* action, and then assign the appropriate users to this custom role in the scope of Microsoft.DevTestLab/labs/policySets/policies/AllowedVmSizesInLab.

Per altre informazioni sui ruoli personalizzati in RBAC, vedere il controllo di accesso ai ruoli personalizzati.To learn more about custom roles in RBAC, see the Custom roles access control.

Creazione di un ruolo personalizzato lab tramite PowerShellCreating a lab custom role using PowerShell

Per iniziare, leggere l'articolo seguente che descrive come installare e configurare i cmdlet PowerShell di Azure: https://azure.microsoft.com/blog/azps-1-0-pre.In order to get started, you’ll need to read the following article, which will explain how to install and configure the Azure PowerShell cmdlets: https://azure.microsoft.com/blog/azps-1-0-pre.

Dopo aver configurato i cmdlet PowerShell di Azure, è possibile eseguire le attività seguenti:Once you’ve set up the Azure PowerShell cmdlets, you can perform the following tasks:

  • Elencare tutte le operazioni o azioni di un provider di risorseList all the operations/actions for a resource provider
  • Elencare le azioni di un particolare ruolo:List actions in a particular role:
  • Creare un ruolo personalizzatoCreate a custom role

Lo script di PowerShell seguente offre alcuni esempi di esecuzione di queste attività:The following PowerShell script illustrates examples of how to perform these tasks:

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

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

‘Create custom role.
$policyRoleDef = (Get-AzureRmRoleDefinition "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-AzureRmRoleDefinition -Role $policyRoleDef)

Assegnazione agli utenti delle autorizzazioni per un criterio specifico tramite ruoli personalizzatiAssigning permissions to a user for a specific policy using custom roles

Dopo aver definito i ruoli personalizzati, è possibile assegnarli agli utenti.Once you’ve defined your custom roles, you can assign them to users. Per assegnare un ruolo personalizzato a un utente, è necessario prima ottenere il valore ObjectId che rappresenta l'utente.In order to assign a custom role to a user, you must first obtain the ObjectId representing that user. A tale scopo, usare il cmdlet Get-AzureRmADUser .To do that, use the Get-AzureRmADUser cmdlet.

Nell'esempio seguente il valore ObjectId dell'utente SomeUser è 05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3.In the following example, the ObjectId of the SomeUser user is 05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3.

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

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

Dopo avere ottenuto il valore ObjectId dell'utente e il nome di un ruolo personalizzato, è possibile assegnare il ruolo all'utente usando il cmdlet New-AzureRmRoleAssignment:Once you have the ObjectId for the user and a custom role name, you can assign that role to the user with the New-AzureRmRoleAssignment cmdlet:

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

Nell'esempio precedente viene usato il criterio AllowedVmSizesInLab .In the previous example, the AllowedVmSizesInLab policy is used. È possibile usare uno dei seguenti criteri:You can use any of the following polices:

  • MaxVmsAllowedPerUserMaxVmsAllowedPerUser
  • MaxVmsAllowedPerLabMaxVmsAllowedPerLab
  • AllowedVmSizesInLabAllowedVmSizesInLab
  • LabVmsShutdownLabVmsShutdown

Introduzione ad Azure DevTest LabsGet started with Azure DevTest Labs

Non si è ancora provato Azure?New to Azure? Creare un account Azure gratuito.Create a free Azure account.

Si usa già Azure?Already on Azure? È possibile iniziare a usare il primo laboratorio in DevTest Labs.Get started with your first lab in DevTest Labs!

Iniziare a usare Azure DevTest Labs in pochi minutiGet started with Azure DevTest Labs in minutes

Passaggi successiviNext steps

Dopo aver concesso le autorizzazioni utente per specifici criteri di lab, considerare i seguenti passaggi successivi:Once you've granted user permissions to specific lab policies, here are some next steps to consider: