Anpassade Azure-roller

Viktigt

Att lägga till AssignableScopes en hanteringsgrupp i är för närvarande en förhandsversion. Den här förhandsversionen tillhandahålls utan serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Om de inbyggda Azure-rollerna inte uppfyller organisationens specifika behov kan du skapa egna anpassade roller. Precis som inbyggda roller kan du tilldela anpassade roller till användare, grupper och tjänstens huvudnamn i hanteringsgruppen (endast i förhandsversion), prenumerations- och resursgruppsomfång.

Anpassade roller kan delas mellan prenumerationer som litar på samma Azure AD klientorganisation. Det finns en gräns på 5 000 anpassade roller per klientorganisation. (För Azure China 21Vianet är gränsen 2 000 anpassade roller.) Anpassade roller kan skapas med hjälp av Azure Portal, Azure PowerShell, Azure CLI eller REST-API:et.

Steg för att skapa en anpassad roll

Här är de grundläggande stegen för att skapa en anpassad roll.

  1. Fastställ vilka behörigheter du behöver.

    När du skapar en anpassad roll måste du känna till de åtgärder som är tillgängliga för att definiera dina behörigheter. Vanligtvis börjar du med en befintlig inbyggd roll och ändrar den sedan efter dina behov. Du lägger till åtgärderna i rolldefinitionensActions egenskaper eller NotActions . Om du har dataåtgärder lägger du till dem i DataActions egenskaperna eller NotDataActions .

    Mer information finns i nästa avsnitt Så här fastställer du de behörigheter du behöver.

  2. Bestäm hur du vill skapa den anpassade rollen.

    Du kan skapa anpassade roller med hjälp av Azure Portal, Azure PowerShell, Azure CLI eller REST-API:et.

  3. Skapa den anpassade rollen.

    Det enklaste sättet är att använda Azure Portal. Anvisningar om hur du skapar en anpassad roll med hjälp av Azure Portal finns i Skapa eller uppdatera anpassade Azure-roller med hjälp av Azure Portal.

  4. Testa den anpassade rollen.

    När du har din anpassade roll måste du testa den för att kontrollera att den fungerar som förväntat. Om du behöver göra justeringar senare kan du uppdatera den anpassade rollen.

Så här fastställer du vilka behörigheter du behöver

Azure har tusentals behörigheter som du kan inkludera i din anpassade roll. Här följer några metoder som kan hjälpa dig att fastställa vilka behörigheter du vill lägga till i din anpassade roll:

  • Titta på befintliga inbyggda roller.

    Du kanske vill ändra en befintlig roll eller kombinera behörigheter som används i flera roller.

  • Visa en lista över de Azure-tjänster som du vill bevilja åtkomst till.

  • Fastställ vilka resursprovidrar som mappar till Azure-tjänsterna.

    Azure-tjänster exponerar sina funktioner och behörigheter via resursprovidrar. Resursprovidern Microsoft.Compute tillhandahåller till exempel resurser för virtuella datorer och resursprovidern Microsoft.Billing tillhandahåller prenumerations- och faktureringsresurser. Att känna till resursprovidrar kan hjälpa dig att begränsa och fastställa vilka behörigheter du behöver för din anpassade roll.

    När du skapar en anpassad roll med hjälp av Azure Portal kan du också fastställa resursproviders genom att söka efter nyckelord. Den här sökfunktionen beskrivs i Skapa eller uppdatera anpassade Azure-roller med hjälp av Azure Portal.

    Fönstret Lägg till behörigheter med resursprovidern

  • Sök efter de tillgängliga behörigheterna för att hitta de behörigheter som du vill inkludera.

    När du skapar en anpassad roll med hjälp av Azure Portal kan du söka efter behörigheter efter nyckelord. Du kan till exempel söka efter behörigheter för virtuell dator eller fakturering . Du kan också ladda ned alla behörigheter som en CSV-fil och sedan söka i den här filen. Den här sökfunktionen beskrivs i Skapa eller uppdatera anpassade Azure-roller med hjälp av Azure Portal.

    Lägg till behörighetslista

Exempel på anpassad roll

Nedan visas hur en anpassad roll ser ut som den visas med hjälp av Azure PowerShell i JSON-format. Den här anpassade rollen kan användas för övervakning och omstart av virtuella datorer.

{
  "Name": "Virtual Machine Operator",
  "Id": "88888888-8888-8888-8888-888888888888",
  "IsCustom": true,
  "Description": "Can monitor and restart virtual machines.",
  "Actions": [
    "Microsoft.Storage/*/read",
    "Microsoft.Network/*/read",
    "Microsoft.Compute/*/read",
    "Microsoft.Compute/virtualMachines/start/action",
    "Microsoft.Compute/virtualMachines/restart/action",
    "Microsoft.Authorization/*/read",
    "Microsoft.ResourceHealth/availabilityStatuses/read",
    "Microsoft.Resources/subscriptions/resourceGroups/read",
    "Microsoft.Insights/alertRules/*",
    "Microsoft.Insights/diagnosticSettings/*",
    "Microsoft.Support/*"
  ],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/subscriptions/{subscriptionId1}",
    "/subscriptions/{subscriptionId2}",
    "/providers/Microsoft.Management/managementGroups/{groupId1}"
  ]
}

Följande visar samma anpassade roll som visas med hjälp av Azure CLI.

[
  {
    "assignableScopes": [
      "/subscriptions/{subscriptionId1}",
      "/subscriptions/{subscriptionId2}",
      "/providers/Microsoft.Management/managementGroups/{groupId1}"
    ],
    "description": "Can monitor and restart virtual machines.",
    "id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/88888888-8888-8888-8888-888888888888",
    "name": "88888888-8888-8888-8888-888888888888",
    "permissions": [
      {
        "actions": [
          "Microsoft.Storage/*/read",
          "Microsoft.Network/*/read",
          "Microsoft.Compute/*/read",
          "Microsoft.Compute/virtualMachines/start/action",
          "Microsoft.Compute/virtualMachines/restart/action",
          "Microsoft.Authorization/*/read",
          "Microsoft.ResourceHealth/availabilityStatuses/read",
          "Microsoft.Resources/subscriptions/resourceGroups/read",
          "Microsoft.Insights/alertRules/*",
          "Microsoft.Insights/diagnosticSettings/*",
          "Microsoft.Support/*"
        ],
        "dataActions": [],
        "notActions": [],
        "notDataActions": []
      }
    ],
    "roleName": "Virtual Machine Operator",
    "roleType": "CustomRole",
    "type": "Microsoft.Authorization/roleDefinitions"
  }
]

Egenskaper för anpassad roll

I följande tabell beskrivs vad egenskaperna för anpassade roller innebär.

Egenskap Krävs Typ Beskrivning
Name
roleName
Ja Sträng Visningsnamnet för den anpassade rollen. Även om en rolldefinition är en hanteringsgrupp eller en resurs på prenumerationsnivå kan en rolldefinition användas i flera prenumerationer som delar samma Azure AD klientorganisation. Det här visningsnamnet måste vara unikt i omfånget för den Azure AD klientorganisationen. Kan innehålla bokstäver, siffror, blanksteg och specialtecken. Maximalt antal tecken är 512.
Id
name
Ja Sträng Det unika ID:t för den anpassade rollen. För Azure PowerShell och Azure CLI genereras detta ID automatiskt när du skapar en ny roll.
IsCustom
roleType
Ja Sträng Anger om detta är en anpassad roll. Ange till true eller CustomRole för anpassade roller. Ange till false eller BuiltInRole för inbyggda roller.
Description
description
Ja Sträng Beskrivningen av den anpassade rollen. Kan innehålla bokstäver, siffror, blanksteg och specialtecken. Maximalt antal tecken är 2048.
Actions
actions
Ja Sträng[] En matris med strängar som anger de kontrollplansåtgärder som rollen tillåter att utföras. Mer information finns i Åtgärder.
NotActions
notActions
Inga Sträng[] En matris med strängar som anger de kontrollplansåtgärder som undantas från den tillåtna Actions. Mer information finns i NotActions (Åtgärder).
DataActions
dataActions
Inga Sträng[] En matris med strängar som anger de dataplansåtgärder som rollen tillåter att utföras för dina data i objektet. Om du skapar en anpassad roll med DataActionskan den rollen inte tilldelas i hanteringsgruppens omfång. Mer information finns i DataActions.
NotDataActions
notDataActions
Inga Sträng[] En matris med strängar som anger de dataplansåtgärder som undantas från tillåtna DataActions. Mer information finns i NotDataActions.
AssignableScopes
assignableScopes
Ja Sträng[] En matris med strängar som anger omfången som den anpassade rollen är tillgänglig för tilldelning. Det maximala antalet AssignableScopes är 2 000. Mer information finns i AssignableScopes.

Behörighetssträngar är skiftlägesokänsliga. När du skapar dina anpassade roller är konventionen att matcha det fall som du ser för behörigheter i Azure-resursprovideråtgärder.

Behörigheter för jokertecken

Actions, NotActions, DataActionsoch NotDataActions har stöd för jokertecken (*) för att definiera behörigheter. Ett jokertecken (*) utökar behörigheten till allt som matchar den åtgärdssträng som du anger. Anta till exempel att du vill lägga till alla behörigheter som är relaterade till Azure Cost Management och exporter. Du kan lägga till alla dessa åtgärdssträngar:

Microsoft.CostManagement/exports/action
Microsoft.CostManagement/exports/read
Microsoft.CostManagement/exports/write
Microsoft.CostManagement/exports/delete
Microsoft.CostManagement/exports/run/action

I stället för att lägga till alla dessa strängar kan du bara lägga till en jokerteckensträng. Följande jokerteckensträng motsvarar till exempel de föregående fem strängarna. Detta omfattar även eventuella framtida exportbehörigheter som kan läggas till.

Microsoft.CostManagement/exports/*

Vi rekommenderar att du anger Actions och DataActions uttryckligen i stället för att använda jokertecknet (*). Ytterligare åtkomst och behörigheter som beviljas via framtiden Actions eller DataActions kan vara oönskat beteende med jokertecknet.

Vem kan skapa, ta bort, uppdatera eller visa en anpassad roll

Precis som inbyggda roller AssignableScopes anger egenskapen de omfång som rollen är tillgänglig för tilldelning. Egenskapen AssignableScopes för en anpassad roll styr också vem som kan skapa, ta bort, uppdatera eller visa den anpassade rollen.

Uppgift Åtgärd Beskrivning
Skapa/ta bort en anpassad roll Microsoft.Authorization/ roleDefinitions/write Användare som beviljas den här åtgärden för alla AssignableScopes anpassade roller kan skapa (eller ta bort) anpassade roller för användning i dessa omfång. Till exempel Ägare och Administratörer för användaråtkomst för hanteringsgrupper, prenumerationer och resursgrupper.
Uppdatera en anpassad roll Microsoft.Authorization/ roleDefinitions/write Användare som beviljas den här åtgärden för alla AssignableScopes anpassade roller kan uppdatera anpassade roller i dessa omfång. Till exempel Ägare och Administratörer för användaråtkomst för hanteringsgrupper, prenumerationer och resursgrupper.
Visa en anpassad roll Microsoft.Authorization/ roleDefinitions/read Användare som beviljas den här åtgärden i ett omfång kan visa de anpassade roller som är tillgängliga för tilldelning i det omfånget. Alla inbyggda roller tillåter att anpassade roller är tillgängliga för tilldelning.

Hitta rolltilldelningar för att ta bort en anpassad roll

Innan du kan ta bort en anpassad roll måste du ta bort alla rolltilldelningar som använder den anpassade rollen. Om du försöker ta bort en anpassad roll med rolltilldelningar får du meddelandet: There are existing role assignments referencing role (code: RoleDefinitionHasAssignments).

Här följer steg som hjälper dig att hitta rolltilldelningarna innan du tar bort en anpassad roll:

Begränsningar för anpassade roller

I följande lista beskrivs gränserna för anpassade roller.

  • Varje klientorganisation kan ha upp till 5 000 anpassade roller.
  • Azure China 21Vianet kan ha upp till 2 000 anpassade roller för varje klientorganisation.
  • Du kan inte ange AssignableScopes rotomfattningen ("/").
  • Du kan inte använda jokertecken (*) i AssignableScopes. Jokerteckenbegränsningen säkerställer att en användare inte kan få åtkomst till ett omfång genom att uppdatera rolldefinitionen.
  • Du kan bara definiera en hanteringsgrupp i AssignableScopes en anpassad roll. Att lägga till AssignableScopes en hanteringsgrupp i är för närvarande i förhandsversion.
  • Du kan bara ha ett jokertecken i en åtgärdssträng.
  • Anpassade roller med DataActions kan inte tilldelas i hanteringsgruppens omfång.
  • Azure Resource Manager verifierar inte att hanteringsgruppen finns i rolldefinitionens AssignableScopes.

Mer information om anpassade roller och hanteringsgrupper finns i Vad är Azure-hanteringsgrupper?

Indata- och utdataformat

Om du vill skapa en anpassad roll med hjälp av kommandoraden använder du vanligtvis JSON för att ange de egenskaper som du vill använda för den anpassade rollen. Beroende på vilka verktyg du använder ser indata- och utdataformaten något annorlunda ut. I det här avsnittet visas formaten för in- och utdata beroende på verktyget.

Azure PowerShell

Om du vill skapa en anpassad roll med Azure PowerShell måste du ange följande indata.

{
  "Name": "",
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Om du vill uppdatera en anpassad roll med Azure PowerShell måste du ange följande indata. Observera att egenskapen Id har lagts till.

{
  "Name": "",
  "Id": "",
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Följande visar ett exempel på utdata när du listar en anpassad roll med Azure PowerShell och kommandot ConvertTo-Json.

{
  "Name": "",
  "Id": "",
  "IsCustom": true,
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Azure CLI

Om du vill skapa eller uppdatera en anpassad roll med Azure CLI måste du ange följande indata. Det här formatet är samma format när du skapar en anpassad roll med Azure PowerShell.

{
  "Name": "",
  "Description": "",
  "Actions": [],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": []
}

Följande visar ett exempel på utdata när du listar en anpassad roll med hjälp av Azure CLI.

[
  {
    "assignableScopes": [],
    "description": "",
    "id": "",
    "name": "",
    "permissions": [
      {
        "actions": [],
        "dataActions": [],
        "notActions": [],
        "notDataActions": []
      }
    ],
    "roleName": "",
    "roleType": "CustomRole",
    "type": "Microsoft.Authorization/roleDefinitions"
  }
]

REST-API

Om du vill skapa eller uppdatera en anpassad roll med hjälp av REST-API:et måste du ange följande indata. Det här formatet är samma format som genereras när du skapar en anpassad roll med hjälp av Azure Portal.

{
  "properties": {
    "roleName": "",
    "description": "",
    "assignableScopes": [],
    "permissions": [
      {
        "actions": [],
        "notActions": [],
        "dataActions": [],
        "notDataActions": []
      }
    ]
  }
}

Följande visar ett exempel på utdata när du listar en anpassad roll med hjälp av REST-API:et.

{
    "properties": {
        "roleName": "",
        "type": "CustomRole",
        "description": "",
        "assignableScopes": [],
        "permissions": [
            {
                "actions": [],
                "notActions": [],
                "dataActions": [],
                "notDataActions": []
            }
        ],
        "createdOn": "",
        "updatedOn": "",
        "createdBy": "",
        "updatedBy": ""
    },
    "id": "",
    "type": "Microsoft.Authorization/roleDefinitions",
    "name": ""
}

Nästa steg