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 granulare degli accessi 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 necessari per svolgere il proprio lavoro.
In DevTest Labs un criterio è un tipo di risorsa che abilita l'azione controllo degli accessi in base al ruolo di Azure Microsoft.DevTestLab/labs/policySets/policies/. Ogni criterio lab è una risorsa nel tipo di risorsa Criteri e può essere assegnata come ambito a un ruolo di Azure.
Ad esempio, per concedere agli utenti l'autorizzazione di lettura/scrittura per il criterio Dimensioni macchina virtuale consentite , è necessario creare un ruolo personalizzato che funzioni 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 l'ObjectId dell'utente SomeUser è aaaaaa-0000-1111-2222-bbbbbbbbbb.
PS C:\>Get-AzADUser -SearchString "SomeUser"
DisplayName Type ObjectId
----------- ---- --------
someuser@hotmail.com aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
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 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb -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 hai ancora provato Azure? Creare un account Azure gratuito.
Si usa già Azure? Creare il primo lab e iniziare a usare Azure DevTest Labs in pochi minuti.
Passaggi successivi
Dopo aver concesso le autorizzazioni utente per specifici criteri di lab, considerare i seguenti passaggi successivi: