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:

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.

  1. 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...
    
  2. 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
    
  3. 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": [
        "/"
      ]
    }
    
  4. Modificare il file JSON per aggiungere l'azione "Microsoft.Support/*" alla Actions proprietà . Assicurarsi di includere una virgola dopo l'azione di lettura. Questa azione consente all'utente di creare ticket di supporto.

  5. Ottenere l'ID della sottoscrizione usando il comando Get-AzSubscription.

    Get-AzSubscription
    
  6. 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.

  7. Eliminare la riga della proprietà Id e modificare la proprietà IsCustom con true.

  8. Modificare le proprietà Name e Description 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"
      ]
    }
    
  9. 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.

    screenshot of custom role imported in the Azure portal

Aggiornare un ruolo personalizzato

Per aggiornare il ruolo personalizzato, è possibile aggiornare il file JSON o usare l'oggetto PSRoleDefinition.

  1. 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
    
  2. Aprire il file in un editor.

  3. In Actionsaggiungere 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"
      ]
    }
    
  4. 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}
    
  5. 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"
    
  6. Chiamare il Add metodo per aggiungere l'azione per leggere le impostazioni di diagnostica.

    $role.Actions.Add("Microsoft.Insights/diagnosticSettings/*/read")
    
  7. 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

  1. Usare il comando Get-AzRoleDefinition per ottenere l'ID del ruolo personalizzato.

    Get-AzRoleDefinition "Reader Support Tickets"
    
  2. 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"):
    
  3. Quando viene chiesto di confermare, digitare Y.

Passaggi successivi