Esercitazione: Creare un ruolo personalizzato di Azure con Azure PowerShell
Se i ruoli predefiniti di Azure non soddisfano le esigenze specifiche dell'organizzazione, è possibile creare ruoli personalizzati. Per questa esercitazione viene creato un ruolo personalizzato denominato Reader Support Tickets con Azure PowerShell. Il ruolo personalizzato consente all'utente di visualizzare tutti gli elementi nel piano di controllo di una sottoscrizione e di aprire ticket di supporto.
In questa esercitazione apprenderai a:
- Creare un ruolo personalizzato
- Elencare ruoli personalizzati
- Aggiornare un ruolo personalizzato
- Eliminare un ruolo personalizzato
Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Nota
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Prerequisiti
Per completare questa esercitazione è necessario quanto segue:
- Autorizzazioni per creare ruoli personalizzati, ad esempio Accesso utenti Amministrazione istrator
- Azure Cloud Shell o Azure PowerShell
Accedere ad Azure PowerShell
Accedere ad Azure PowerShell.
Creare un ruolo personalizzato
Il modo più semplice per creare un ruolo personalizzato è quello di iniziare con un ruolo predefinito, modificarlo e quindi creare un nuovo ruolo.
In PowerShell usare il comando Get-AzProviderOperation per ottenere l'elenco delle operazioni del provider di risorse Microsoft.Support. È utile conoscere le operazioni disponibili per creare le autorizzazioni. È anche possibile visualizzare un elenco di tutte le operazioni in Operazioni dei provider di risorse di Azure.
Get-AzProviderOperation "Microsoft.Support/*" | FT Operation, Description -AutoSize
Operation Description --------- ----------- Microsoft.Support/register/action Registers to Support Resource Provider Microsoft.Support/supportTickets/read Gets Support Ticket details (including status, severity, contact ... Microsoft.Support/supportTickets/write Creates or Updates a Support Ticket. You can create a Support Tic...
Usare il comando Get-AzRoleDefinition per ottenere il ruolo Lettore in formato JSON.
Get-AzRoleDefinition -Name "Reader" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole.json
Aprire il file ReaderSupportRole.json in un editor.
Di seguito è riportato l'output JSON. Per informazioni sulle diverse proprietà, vedere Ruoli personalizzati di Azure.
{ "Name": "Reader", "Id": "acdd72a7-3385-48ef-bd42-f606fba81ae7", "IsCustom": false, "Description": "Lets you view everything, but not make any changes.", "Actions": [ "*/read" ], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/" ] }
Modificare il file JSON per aggiungere l'azione
"Microsoft.Support/*"
allaActions
proprietà . Assicurarsi di includere una virgola dopo l'azione di lettura. Questa azione consente all'utente di creare ticket di supporto.Ottenere l'ID della sottoscrizione usando il comando Get-AzSubscription.
Get-AzSubscription
In
AssignableScopes
aggiungere l'ID sottoscrizione con il formato seguente:"/subscriptions/00000000-0000-0000-0000-000000000000"
È necessario aggiungere ID sottoscrizione espliciti. In caso contrario non sarà possibile importare il ruolo nella sottoscrizione.
Eliminare la riga della proprietà
Id
e modificare la proprietàIsCustom
contrue
.Modificare le proprietà
Name
eDescription
con "Reader Support Tickets" e "View everything in the subscription and also open support tickets".Il file JSON deve apparire come segue:
{ "Name": "Reader Support Tickets", "IsCustom": true, "Description": "View everything in the subscription and also open support tickets.", "Actions": [ "*/read", "Microsoft.Support/*" ], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ] }
Per creare il nuovo ruolo personalizzato, usare il comando New-AzRoleDefinition e specificare il file di definizione del ruolo JSON.
New-AzRoleDefinition -InputFile "C:\CustomRoles\ReaderSupportRole.json"
Name : Reader Support Tickets Id : 22222222-2222-2222-2222-222222222222 IsCustom : True Description : View everything in the subscription and also open support tickets. Actions : {*/read, Microsoft.Support/*} NotActions : {} DataActions : {} NotDataActions : {} AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000}
Il nuovo ruolo personalizzato è ora disponibile nel portale di Azure e può essere assegnato a utenti, gruppi o entità servizio come i ruoli predefiniti.
Elencare ruoli personalizzati
Per elencare tutti i ruoli personalizzati, usare il comando Get-AzRoleDefinition.
Get-AzRoleDefinition | ? {$_.IsCustom -eq $true} | FT Name, IsCustom
Name IsCustom ---- -------- Reader Support Tickets True
È anche possibile visualizzare il ruolo personalizzato nel portale di Azure.
Aggiornare un ruolo personalizzato
Per aggiornare il ruolo personalizzato, è possibile aggiornare il file JSON o usare l'oggetto PSRoleDefinition
.
Per aggiornare il file JSON, usare il comando Get-AzRoleDefinition per ottenere il ruolo personalizzato in formato JSON.
Get-AzRoleDefinition -Name "Reader Support Tickets" | ConvertTo-Json | Out-File C:\CustomRoles\ReaderSupportRole2.json
Aprire il file in un editor.
In
Actions
aggiungere l'azione per creare e gestire le distribuzioni di"Microsoft.Resources/deployments/*"
gruppi di risorse .Il file JSON aggiornato deve apparire come segue:
{ "Name": "Reader Support Tickets", "Id": "22222222-2222-2222-2222-222222222222", "IsCustom": true, "Description": "View everything in the subscription and also open support tickets.", "Actions": [ "*/read", "Microsoft.Support/*", "Microsoft.Resources/deployments/*" ], "NotActions": [], "DataActions": [], "NotDataActions": [], "AssignableScopes": [ "/subscriptions/00000000-0000-0000-0000-000000000000" ] }
Per aggiornare il ruolo personalizzato, usare il comando Set-AzRoleDefinition e specificare il file JSON aggiornato.
Set-AzRoleDefinition -InputFile "C:\CustomRoles\ReaderSupportRole2.json"
Name : Reader Support Tickets Id : 22222222-2222-2222-2222-222222222222 IsCustom : True Description : View everything in the subscription and also open support tickets. Actions : {*/read, Microsoft.Support/*, Microsoft.Resources/deployments/*} NotActions : {} DataActions : {} NotDataActions : {} AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000}
Per aggiornare il ruolo personalizzato con l'oggetto
PSRoleDefintion
, usare prima di tutto il comando Get-AzRoleDefinition per ottenere il ruolo.$role = Get-AzRoleDefinition "Reader Support Tickets"
Chiamare il
Add
metodo per aggiungere l'azione per leggere le impostazioni di diagnostica.$role.Actions.Add("Microsoft.Insights/diagnosticSettings/*/read")
Usare il comando Set-AzRoleDefinition per aggiornare il ruolo.
Set-AzRoleDefinition -Role $role
Name : Reader Support Tickets Id : 22222222-2222-2222-2222-222222222222 IsCustom : True Description : View everything in the subscription and also open support tickets. Actions : {*/read, Microsoft.Support/*, Microsoft.Resources/deployments/*, Microsoft.Insights/diagnosticSettings/*/read} NotActions : {} DataActions : {} NotDataActions : {} AssignableScopes : {/subscriptions/00000000-0000-0000-0000-000000000000}
Eliminare un ruolo personalizzato
Usare il comando Get-AzRoleDefinition per ottenere l'ID del ruolo personalizzato.
Get-AzRoleDefinition "Reader Support Tickets"
Usare il comando Remove-AzRoleDefinition e specificare l'ID ruolo per eliminare il ruolo personalizzato.
Remove-AzRoleDefinition -Id "22222222-2222-2222-2222-222222222222"
Confirm Are you sure you want to remove role definition with id '22222222-2222-2222-2222-222222222222'. [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
Quando viene chiesto di confermare, digitare Y.