Concedere le autorizzazioni utente per specifici criteri di lab

Panoramica

In questo articolo viene illustrato come usare PowerShell per concedere agli utenti autorizzazioni per un particolare criterio di lab. In questo modo, le autorizzazioni possono essere applicate in base alle esigenze di ciascun utente. 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.

Criteri come risorse

Come illustrato nell'articolo Controllo degli accessi in base al ruolo di Azure , il controllo degli accessi in base al ruolo di Azure consente la gestione degli accessi con granularità fine delle risorse per Azure. Usando il controllo degli accessi in base al ruolo di Azure, è possibile separare i compiti all'interno del team DevOps e concedere solo la quantità di accesso agli utenti che devono eseguire i propri processi.

In DevTest Labs un criterio è un tipo di risorsa che consente l'azione RBAC di Azure Microsoft.DevTestLab/labs/policySets/policies/. Ogni criterio lab è una risorsa nel tipo di risorsa Criteri e può essere assegnato come ambito a un ruolo di Azure.

Ad esempio, per concedere agli utenti l'autorizzazione di lettura/scrittura ai criteri Dimensioni vm consentite , si creerebbe un ruolo personalizzato che funziona con l'azione Microsoft.DevTestLab/labs/policySets/policies / e quindi assegnare gli utenti appropriati a questo ruolo personalizzato nell'ambito di Microsoft.DevTestLab/labs/policySets/policies/AllowedVmSizesInLab.

Per altre informazioni sui ruoli personalizzati nel controllo degli accessi in base al ruolo di Azure, vedere i ruoli personalizzati di Azure.

Creazione di un ruolo personalizzato lab tramite PowerShell

Per iniziare, è necessario installare Azure PowerShell.

Dopo aver configurato i cmdlet PowerShell di Azure, è possibile eseguire le attività seguenti:

  • Elencare tutte le operazioni o azioni di un provider di risorse
  • Elencare le azioni di un particolare ruolo:
  • Creare un ruolo personalizzato

Lo script di PowerShell seguente offre alcuni esempi di esecuzione di queste attività:

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

Assegnazione agli utenti delle autorizzazioni per un criterio specifico tramite ruoli personalizzati

Dopo aver definito i ruoli personalizzati, è possibile assegnarli agli utenti. Per assegnare un ruolo personalizzato a un utente, è necessario prima ottenere il valore ObjectId che rappresenta l'utente. A tale scopo, usare il cmdlet Get-AzADUser .

Nell'esempio seguente il valore ObjectId dell'utente SomeUser è 05DEFF7B-0AC3-4ABF-B74D-6A72CD5BF3F3.

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

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

Dopo aver ottenuto ObjectId per l'utente e un nome di ruolo personalizzato, è possibile assegnare tale ruolo all'utente con il 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

Nell'esempio precedente viene usato il criterio AllowedVmSizesInLab . È possibile usare uno dei criteri seguenti:

  • MaxVmsAllowedPerUser
  • MaxVmsAllowedPerLab
  • AllowedVmSizesInLab
  • LabVmsShutdown

Creare un ruolo per consentire agli utenti di eseguire un'attività specifica

Questo script di esempio che crea il ruolo DevTest Labs Advanced User, che dispone dell'autorizzazione per avviare e arrestare tutte le macchine virtuali nel lab:

    $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 

Introduzione ad Azure DevTest Labs

Non si è ancora provato Azure? Creare un account Azure gratuito.

Si usa già Azure? Introduzione al primo lab in DevTest Labs: introduzione alla Azure DevTest Labs in pochi minuti.

Passaggi successivi

Dopo aver concesso le autorizzazioni utente per specifici criteri di lab, considerare i seguenti passaggi successivi: