Självstudie: Skapa en anpassad Azure-roll med Hjälp av Azure CLI

Om de inbyggda Azure-rollerna inte uppfyller organisationens specifika behov kan du skapa egna anpassade roller. För den här självstudien skapar du en anpassad roll med namnet Reader Support Tickets (Läsare av supportbegäranden) med hjälp av Azure CLI. Med den anpassade rollen kan användaren visa allt i kontrollplanet för en prenumeration och även öppna supportärenden.

I den här självstudien lär du dig att:

  • Skapa en anpassad roll
  • Lista anpassade roller
  • Uppdatera en anpassad roll
  • Ta bort en anpassad roll

Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Förutsättningar

För att kunna genomföra den här kursen behöver du följande:

Logga in på Azure CLI

Logga in på Azure CLI.

Skapa en anpassad roll

Det enklaste sättet att skapa en anpassad roll är att utgå från en JSON-mall, lägga till dina ändringar och sedan skapa en ny roll.

  1. Granska listan över åtgärder för resursprovidern Microsoft.Support. Det är bra att känna till vilka åtgärder som är tillgängliga för att skapa dina behörigheter.

    Åtgärd beskrivning
    Microsoft.Support/register/action Registrerar till supportresursprovidern
    Microsoft.Support/supportTickets/read Hämtar information om supportbegäran (inklusive status, allvarlighetsgrad, kontaktinformation och kommunikation) eller hämtar listan över supportbegäranden för alla prenumerationer.
    Microsoft.Support/supportTickets/write Skapar eller uppdaterar en supportbegäran. Du kan skapa en supportbegäran om tekniska problem, fakturering, kvoter eller prenumerationshantering. Du kan uppdatera allvarlighetsgraden, kontaktinformation och kommunikation för befintliga supportbegäranden.
  2. Skapa en ny fil med namnet ReaderSupportRole.json.

  3. Öppna ReaderSupportRole.json i en textredigerare och lägg till följande JSON.

    Information om de olika egenskaperna finns i Anpassade Azure-roller.

    {
      "Name": "",
      "IsCustom": true,
      "Description": "",
      "Actions": [],
      "NotActions": [],
      "DataActions": [],
      "NotDataActions": [],
      "AssignableScopes": [
        "/subscriptions/{subscriptionId1}"
      ]
    }
    
  4. Lägg till följande åtgärder i egenskapen Actions . Med de här åtgärderna kan användare visa allt i prenumerationen samt skapa supportbegäranden.

    "*/read",
    "Microsoft.Support/*"
    
  5. Hämta ID för din prenumeration med hjälp av kommandot az account list.

    az account list --output table
    
  6. I AssignableScopes ersätter du {subscriptionId1} med ditt prenumerations-ID.

    Du måste lägga till explicita prenumerations-ID:n; annars tillåts du inte importera rollen i din prenumeration.

  7. Ändra egenskaperna Name och Description till ”Reader Support Tickets” (Läsare av supportbegäranden) och ”View everything in the subscription and also open support tickets” (Visa allt i prenumerationen och även öppna supportbegäranden).

    Din JSON-fil ska se ut så här:

    {
      "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. För att skapa en ny anpassad roll använder du kommandot az role definition create och anger definitionsfilen för JSON-rollen.

    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"
    }
    

    Den nya anpassade rollen är nu tillgänglig och kan tilldelas till användare, grupper eller tjänstens huvudnamn precis som inbyggda roller.

Lista anpassade roller

  • För att lista alla dina anpassade roller använder du kommandot az role definition list med parametern --custom-role-only.

    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"
      }
    ]
    

    Du kan även visa den anpassade rollen i Azure-portalen.

    screenshot of custom role imported in the Azure portal

Uppdatera en anpassad roll

Om du vill uppdatera den anpassade rollen uppdaterar du JSON-filen och uppdaterar sedan den anpassade rollen.

  1. Öppna filen ReaderSupportRole.json.

  2. I Actionslägger du till åtgärden för att skapa och hantera resursgruppsdistributioner "Microsoft.Resources/deployments/*". Se till att inkludera ett kommatecken efter föregående åtgärd.

    Din uppdaterade JSON-fil ska se ut så här:

    {
      "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. För att uppdatera den anpassade rollen använder du kommandot az role definition update och anger den uppdaterade JSON-filen.

    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"
    }
    

Ta bort en anpassad roll

  • Använd kommandot az role definition delete och ange rollnamnet eller roll-ID för att ta bort den anpassade rollen.

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

Nästa steg