Vad är anpassade roller i Azure?

Slutförd

Ibland ger inte de inbyggda rollerna den exakta åtkomstnivå du behöver använda. Med anpassade roller kan du definiera roller som uppfyller organisationens krav. Du kan tilldela de anpassade Azure-roller du skapar till användare, grupper och huvudnamn för tjänster på nivån prenumeration, resursgrupp eller resurs.

I den här lektionen får du lära dig om anpassade roller i Azure RBAC (rollbaserad åtkomstkontroll).

Roller i Azure Active Directory och Azure

Det är lätt att blanda ihop Azure AD-roller (Active Directory) och Azure-roller när du börjar arbeta med Azure. Azure AD-roller är en mekanism för att hantera behörighet till AD-resurser som användarkonton och lösenord. Med Azure-roller får du tillgång till en mängd funktioner för att hantera Azure-resurser som virtuella datorer på detaljerad nivå.

Diagram som visar relationen mellan Azure-roller och Azure AD-roller.

I den här tabellen ser du små skillnader mellan hur du konfigurerar och hanterar de två typerna:

Azure-roller Azure AD-roller
Hantera åtkomst till Azure-resurser som virtuella datorer, lagring och nätverk Hantera åtkomst till Azure AD-resurser som användarkonton och lösenord
Flera omfångsnivåer (hanteringsgrupp, prenumeration, resursgrupp, resurs) Klientorganisation är enda omfångsnivån
Rollinformationen är tillgänglig via Azure-portalen, Azure CLI, Azure PowerShell, Azure Resource Manager-mallar och REST-API:er Rollinformationen är tillgänglig i administrationsportalen för Azure, administrationscenter för Microsoft 365, Microsoft Graph och Azure AD PowerShell

I vårt scenario behöver vi en anpassad roll för att hantera virtuella Azure-datorer på prenumerationsnivå. Vi måste alltså använda anpassade roller i Azure RBAC.

Tilldelning och omfattning för anpassade roller

Användare med rollen Administratör för användaråtkomst eller Ägare kan skapa och tilldela anpassade roller i Azure RBAC.

Anpassade roller kan tilldelas till:

Säkerhetsobjekt Sammanfattning
Användare En person som har en profil i Azure Active Directory
Grupper En uppsättning användare som skapats i Azure Active Directory
Tjänsters huvudnamn Ett säkerhets-ID som program och tjänster använder för åtkomst till specifika Azure-resurser
Hanterade identiteter En identitet i Azure Active Directory som Azure hanterar automatiskt

Du kan begränsa tilldelningen och relaterade behörigheter till olika nivåer i Azure. De olika omfattningarna är:

  • Prenumeration
  • Resursgrupp
  • Enskild resurs

Diagram som visar omfattningar för rolltilldelningar och deras relationer till varandra.

Rollers definition och struktur

Definitionen av en anpassad roll kan delas upp i en samling olika behörigheter. Varje definition anger vilka åtgärder som är tillåtna, som att läsa, skriva eller ta bort. Definitionen är utformad med hjälp av följande strukturer:

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

I det här exemplet visas definitionen för rollen Deltagare.

{
  "Name": "Contributor",
  "Id": "b24988ac-6180-42a0-ab88-20f7382dd24c",
  "IsCustom": false,
  "Description": "Lets you manage everything except access to resources.",
  "Actions": [
    "*"
  ],
  "NotActions": [
    "Microsoft.Authorization/*/Delete",
    "Microsoft.Authorization/*/Write",
    "Microsoft.Authorization/elevateAccess/Action",
    "Microsoft.Blueprint/blueprintAssignments/write",
    "Microsoft.Blueprint/blueprintAssignments/delete"
  ],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/"
  ]
}

Alla rolldefinitioner deklareras med följande format:

{Company}.{ProviderName}/{resourceType}/{action}

Åtgärdsdelen är normalt en av följande åtgärder:

  • *
  • läsa
  • skriva
  • åtgärd
  • ta bort

Definiera en anpassad roll för att hantera virtuella datorer

När du ska identifiera vilka behörigheter som ska ingå i en rolldefinition kan du använda listan med åtgärder för resursprovidern Azure Resource Manager och titta på de inbyggda Azure-roller som har behörigheter som liknar det du behöver.

Granska inbyggda roller

I vårt scenario har den inbyggda rollen Virtuell datordeltagare fler behörigheter än medarbetarna behöver och rollen Administratörsinloggning för virtuell dator har inte tillräckliga behörigheter.

Följande kommando returnerar behörigheterna för den inbyggda rollen Virtuell datordeltagare.

az role definition list --name "Virtual Machine Contributor" --output json | jq '.[] | .permissions[0].actions'

Följande lista är behörigheterna för den inbyggda rollen Virtuell datordeltagare.

[
  "Microsoft.Authorization/*/read",
  "Microsoft.Compute/availabilitySets/*",
  "Microsoft.Compute/locations/*",
  "Microsoft.Compute/virtualMachines/*",
  "Microsoft.Compute/virtualMachineScaleSets/*",
  "Microsoft.DevTestLab/schedules/*",
  "Microsoft.Insights/alertRules/*",
  "Microsoft.Network/applicationGateways/backendAddressPools/join/action",
  "Microsoft.Network/loadBalancers/backendAddressPools/join/action",
  "Microsoft.Network/loadBalancers/inboundNatPools/join/action",
  "Microsoft.Network/loadBalancers/inboundNatRules/join/action",
  "Microsoft.Network/loadBalancers/probes/join/action",
  "Microsoft.Network/loadBalancers/read",
  "Microsoft.Network/locations/*",
  "Microsoft.Network/networkInterfaces/*",
  "Microsoft.Network/networkSecurityGroups/join/action",
  "Microsoft.Network/networkSecurityGroups/read",
  "Microsoft.Network/publicIPAddresses/join/action",
  "Microsoft.Network/publicIPAddresses/read",
  "Microsoft.Network/virtualNetworks/read",
  "Microsoft.Network/virtualNetworks/subnets/join/action",
  "Microsoft.RecoveryServices/locations/*",
  "Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/write",
  "Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/*/read",
  "Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read",
  "Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/write",
  "Microsoft.RecoveryServices/Vaults/backupPolicies/read",
  "Microsoft.RecoveryServices/Vaults/backupPolicies/write",
  "Microsoft.RecoveryServices/Vaults/read",
  "Microsoft.RecoveryServices/Vaults/usages/read",
  "Microsoft.RecoveryServices/Vaults/write",
  "Microsoft.ResourceHealth/availabilityStatuses/read",
  "Microsoft.Resources/deployments/*",
  "Microsoft.Resources/subscriptions/resourceGroups/read",
  "Microsoft.SqlVirtualMachine/*",
  "Microsoft.Storage/storageAccounts/listKeys/action",
  "Microsoft.Storage/storageAccounts/read",
  "Microsoft.Support/*"
]

Om du vill hämta den här listan i PowerShell kör du följande kommando.

Get-AzRoleDefinition -Name "Virtual Machine Contributor" | Select Actions | ConvertTo-Json

I vårt scenario vill vi ha en anpassad roll som gör att du kan övervaka och starta om virtuella datorer för en viss prenumeration. Vi vill alltså ta med följande åtgärder på prenumerationsnivå:

  • Läsåtkomst till beräknings-, nätverks- och lagringsresurser
  • Möjlighet att starta och starta om virtuella datorer
  • Åtkomst till alla resursgrupper i prenumerationen
  • Åtkomst till övervakningsresurser

Vi kan använda några av åtgärderna i rolldefinitionen Virtuell datordeltagare, som "Microsoft.Insights/alertRules/*" för övervakning. Omstart och några till finns dock inte med som åtgärder i den rolldefinitionen.

Hitta resursproviderns åtgärder

Vi kan hitta åtgärden att starta om virtuella datorer i åtgärdslistan för resursprovidern Azure Resource Manager, eller så kan vi köra följande kommando för att returnera åtgärderna för virtuella datorer:

Get-AzProviderOperation */virtualMachines/*

Den här omstartsåtgärden returneras i listan.

Operation         : Microsoft.Compute/virtualMachines/restart/action
OperationName     : Restart Virtual Machine
ProviderNamespace : Microsoft Compute
ResourceName      : Virtual Machines
Description       : Restarts the virtual machine
IsDataAction      : False

Du kan använda Azure PowerShell-cmdlet:en Get-AzProviderOperation till att hämta den mest aktuella listan med resursproviderns åtgärder. Använd kommandot az provider operation show i Azure CLI. Det finns en publicerad lista med resursproviders och åtgärder bland Azure RBAC-innehållet på Docs.

Skapa rolldefinitionen Virtual Machine Operator

Vi antar att vi har valt ut det vi behöver genom att titta på relaterade inbyggda rolldefinitioner och resursproviderns åtgärdslista. Vi får då till slut följande rolldefinition för vår anpassade roll. Vi använder den här rolldefinitionen för vår anpassade roll.

   {
   "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.Support/*"
   ],
   "NotActions": [],
   "DataActions": [],
   "NotDataActions": [],
   "AssignableScopes": [
      "/subscriptions/{subscriptionId1}" 
   ]
   }

Testa dina kunskaper

1.

Vad ingår i definitionen av en anpassad roll i Azure?

2.

Vilka kommandon hjälper dig att avgöra vilka åtgärder som ska läggas till i definitionen av en anpassad roll?