Condividi tramite


Esercitazione: Creare un ruolo personalizzato di Azure con Azure CLI

Se i ruoli predefiniti di Azure non soddisfano le esigenze specifiche dell'organizzazione, è possibile creare ruoli personalizzati. Per questa esercitazione si crea un ruolo personalizzato denominato Reader Support Tickets usando l'interfaccia della riga di comando di Azure. 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 si apprenderà come:

  • Creare un ruolo personalizzato
  • Elencare i 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.

Prerequisiti

Per completare questa esercitazione, è necessario:

Accedere ad Azure CLI

Accedere all'interfaccia della riga di comando di Azure.

Creare un ruolo personalizzato

Il modo più semplice per creare un ruolo personalizzato consiste nell'iniziare con un modello JSON, aggiungere le modifiche e quindi creare un nuovo ruolo.

  1. Esaminare l'elenco delle azioni per il fornitore di risorse Microsoft.Support. È utile conoscere le azioni disponibili per creare le autorizzazioni.

    Action Description
    Microsoft.Support/register/action Registra per supportare il fornitore di risorse
    Microsoft.Support/supportTickets/read Ottiene i dettagli del ticket di supporto (inclusi lo stato, la gravità, i dettagli di contatto e le comunicazioni) o ottiene l'elenco dei ticket di supporto tra le sottoscrizioni.
    Microsoft.Support/supportTickets/write Crea o aggiorna un ticket di supporto. È possibile creare un ticket di supporto per problemi tecnici, di fatturazione, quote o gestione delle sottoscrizioni. È possibile aggiornare la gravità, i dettagli di contatto e le comunicazioni per i ticket di supporto esistenti.
  2. Creare un nuovo file denominato ReaderSupportRole.json.

  3. Aprire ReaderSupportRole.json in un editor e aggiungere il codice JSON seguente.

    Per informazioni sulle diverse proprietà, vedere Ruoli personalizzati di Azure.

    {
      "Name": "",
      "IsCustom": true,
      "Description": "",
      "Actions": [],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/subscriptions/{subscriptionId1}"
      ]
    }
    
  4. Aggiungere le azioni seguenti alla Actions proprietà . Queste azioni consentono all'utente di visualizzare tutti gli elementi nella sottoscrizione e creare ticket di supporto.

    "*/read",
    "Microsoft.Support/*"
    
  5. Ottenere l'ID della sottoscrizione usando il comando az account list .

    az account list --output table
    
  6. In AssignableScopessostituire {subscriptionId1} con l'ID sottoscrizione.

    È necessario aggiungere ID sottoscrizione espliciti. In caso contrario, non sarà consentito importare il ruolo nella sottoscrizione.

  7. Modificare le proprietà Name e Description con "Reader Support Tickets" e "View everything in the subscription and also open support tickets".

    Il file JSON dovrebbe essere simile al seguente:

    {
      "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"
      ]
    }
    
  8. Per creare il nuovo ruolo personalizzato, usare il comando az role definition create e specificare il file di definizione del ruolo JSON.

    az role definition create --role-definition "~/CustomRoles/ReaderSupportRole.json"
    
    {
      "additionalProperties": {},
      "assignableScopes": [
        "/subscriptions/00000000-0000-0000-0000-000000000000"
      ],
      "description": "View everything in the subscription and also open support tickets.",
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222",
      "name": "22222222-2222-2222-2222-222222222222",
      "permissions": [
        {
          "actions": [
            "*/read",
            "Microsoft.Support/*"
          ],
          "additionalProperties": {},
          "dataActions": [],
          "notActions": [],
          "notDataActions": []
        }
      ],
      "roleName": "Reader Support Tickets",
      "roleType": "CustomRole",
      "type": "Microsoft.Authorization/roleDefinitions"
    }
    

    Il nuovo ruolo personalizzato è ora disponibile e può essere assegnato a utenti, gruppi o entità servizio esattamente come i ruoli predefiniti.

Elencare i ruoli personalizzati

  • Per elencare tutti i ruoli personalizzati, usare il comando az role definition list con il --custom-role-only parametro .

    az role definition list --custom-role-only true
    
    [
      {
        "additionalProperties": {},
        "assignableScopes": [
          "/subscriptions/00000000-0000-0000-0000-000000000000"
        ],
        "description": "View everything in the subscription and also open support tickets.",
        "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222",
        "name": "22222222-2222-2222-2222-222222222222",
        "permissions": [
          {
            "actions": [
              "*/read",
              "Microsoft.Support/*",
              "Microsoft.Resources/deployments/*",
              "Microsoft.Insights/diagnosticSettings/*/read"
            ],
            "additionalProperties": {},
            "dataActions": [],
            "notActions": [],
            "notDataActions": []
          }
        ],
        "roleName": "Reader Support Tickets",
        "roleType": "CustomRole",
        "type": "Microsoft.Authorization/roleDefinitions"
      }
    ]
    

    È anche possibile visualizzare il ruolo personalizzato nel portale di Azure.

    screenshot del ruolo personalizzato importato nel portale di Azure

Aggiornare un ruolo personalizzato

Per aggiornare il ruolo personalizzato, aggiornare il file JSON e quindi aggiornare il ruolo personalizzato.

  1. Aprire il file ReaderSupportRole.json.

  2. In Actions aggiungere l'azione per creare e gestire distribuzioni di gruppi di risorse "Microsoft.Resources/deployments/*". Assicurarsi di includere una virgola dopo l'azione precedente.

    Il file JSON aggiornato dovrebbe essere simile al seguente:

    {
      "Name": "Reader Support Tickets",
      "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"
      ]
    }
    
  3. Per aggiornare il ruolo personalizzato, usare il comando az role definition update e specificare il file JSON aggiornato.

    az role definition update --role-definition "~/CustomRoles/ReaderSupportRole.json"
    
    {
      "additionalProperties": {},
      "assignableScopes": [
        "/subscriptions/00000000-0000-0000-0000-000000000000"
      ],
      "description": "View everything in the subscription and also open support tickets.",
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/22222222-2222-2222-2222-222222222222",
      "name": "22222222-2222-2222-2222-222222222222",
      "permissions": [
        {
          "actions": [
            "*/read",
            "Microsoft.Support/*",
            "Microsoft.Resources/deployments/*"
          ],
          "additionalProperties": {},
          "dataActions": [],
          "notActions": [],
          "notDataActions": []
        }
      ],
      "roleName": "Reader Support Tickets",
      "roleType": "CustomRole",
      "type": "Microsoft.Authorization/roleDefinitions"
    }
    

Eliminare un ruolo personalizzato

  • Usare il comando az role definition delete e specificare il nome del ruolo o l'ID ruolo per eliminare il ruolo personalizzato.

    az role definition delete --name "Reader Support Tickets"
    

Passaggi successivi