Vad är rollbaserad åtkomstkontroll i Azure (Azure RBAC)?

Åtkomsthantering för molnresurser är en viktig funktion för alla organisationer som använder molnet. Rollbaserad åtkomstkontroll i Azure (Azure RBAC) hjälper till vid hantering av vem som ska ha åtkomst till Azure-resurser, vad de ska kunna göra med resurserna och till vilka områden de ska ha åtkomst.

Azure RBAC är ett auktoriseringssystem som bygger på Azure Resource Manager som ger detaljerad åtkomsthantering till Azure-resurser.

Den här videon ger en snabb översikt över Azure RBAC.

Vad kan jag göra med Azure RBAC?

Här följer några exempel på vad du kan göra med Azure RBAC:

  • Tillåt en användare att hantera virtuella datorer i en prenumeration och en annan användare att hantera virtuella nätverk
  • Tillåta en DBA-grupp att hantera SQL-databaser i en prenumeration
  • Tillåt en användare att hantera alla resurser i en resursgrupp, till exempel virtuella datorer, webbplatser och undernät
  • Tillåt att ett program får åtkomst till alla resurser i en resursgrupp

Så här fungerar Azure RBAC

Du styr åtkomsten till resurser med hjälp av Azure RBAC genom att tilldela Azure-roller. Det här är ett nyckelbegrepp att förstå – det är så behörigheter framtvingas. En rolltilldelning består av tre delar: säkerhetsobjekt, rolldefinition och omfång.

Säkerhetsobjekt

En säkerhetsobjekt är ett objekt som representerar en användare, en grupp, tjänstens huvudnamn eller hanterad identitet som begär åtkomst till Azure-resurser. Du kan tilldela en roll till något av dessa säkerhetsobjekt.

Diagram showing the security principal types for a role assignment.

Rolldefinition

En rolldefinition är en samling behörigheter. Det kallas vanligtvis bara för en roll. En rolldefinition visar de åtgärder som kan utföras, till exempel läsa, skriva och ta bort. Roller kan vara på hög nivå, som ägare, eller specifika, som läsare för virtuell dator.

Diagram showing role definition example for a role assignment

Azure innehåller flera inbyggda roller som du kan använda. Till exempel tillåter rollen Virtuell datordeltagare att en användare skapar och hanterar virtuella datorer. Om de inbyggda rollerna inte uppfyller organisationens specifika behov kan du skapa egna anpassade Azure-roller.

Den här videon ger en snabb översikt över inbyggda roller och anpassade roller.

Azure har dataåtgärder som gör att du kan bevilja åtkomst till data i ett objekt. Till exempel kan en användare med dataläsningsåtkomst till ett lagringskonto läsa blobar eller meddelanden i det lagringskontot.

Mer information finns i Förstå rolldefinitioner för Azure.

Omfång

Omfång är den uppsättning resurser som åtkomsten gäller för. När du tilldelar en roll kan du ytterligare begränsa de åtgärder som tillåts genom att definiera ett omfång. Det här är användbart om du vill göra någon till webbplatsdeltagare, men bara för en resursgrupp.

I Azure kan du ange ett omfång på fyra nivåer: hanteringsgrupp, prenumeration, resursgrupp eller resurs. Omfång är strukturerade i en överordnad/underordnad relation. Du kan tilldela roller på någon av dessa omfångsnivåer.

Diagram showing scope levels for a role assignment.

Mer information om omfång finns i Förstå omfång.

Rolltilldelningar

En rolltilldelning är processen att koppla en rolldefinition till en användare, grupp, tjänstens huvudnamn eller hanterad identitet i ett visst omfång för att bevilja åtkomst. Åtkomst beviljas genom att en rolltilldelning skapas, och åtkomst återkallas genom att en rolltilldelning tas bort.

Följande diagram visar ett exempel på en rolltilldelning. I det här exemplet har marknadsföringsgruppen tilldelats rollen Deltagare för resursgruppen pharma-sales (läkemedelsförsäljning). Det innebär att användare i marknadsföringsgruppen kan skapa och hantera vilka Azure-resurser som helst i resursgruppen pharma-sales. Marknadsföringsanvändare har inte åtkomst till resurser utanför resursgruppen pharma-sales såvida de inte är en del av en annan rolltilldelning.

Diagram showing how security principal, role definition, and scope create a role assignment.

Du kan tilldela roller med hjälp av Azure Portal, Azure CLI, Azure PowerShell, Azure SDK:er eller REST-API:er.

Mer information finns i Steg för att tilldela en Azure-roll.

Grupper

Rolltilldelningar är transitiva för grupper, vilket innebär att om en användare är medlem i en grupp och gruppen är medlem i en annan grupp som har en rolltilldelning, kommer användaren att ha behörigheterna i rolltilldelningen.

Diagram showing how role assignments are transitive for groups.

Flera rolltilldelningar

Så vad händer om du har flera överlappande rolltilldelningar? Azure RBAC är en additiv modell, så dina gällande behörigheter är summan av dina rolltilldelningar. Fundera på följande exempel där en användare beviljas deltagarrollen i prenumerationsomfånget och läsarrollen på en resursgrupp. Summan av behörigheterna Deltagare och Läsarbehörigheter är i praktiken rollen Deltagare för prenumerationen. Därför har läsarrolltilldelningen ingen inverkan i det här fallet.

Diagram showing how multiple role assignments overlap.

Avvisa tilldelning

Tidigare var Azure RBAC en tillåten modell utan nekande, men nu har Azure RBAC stöd för att neka tilldelningar på ett begränsat sätt. På samma sätt som en rolltilldelning kopplar ett tilldelningsnekande en uppsättning nekandeåtgärder till en användare, grupp, tjänstens huvudnamn eller hanterad identitet i ett visst omfång för att neka åtkomst. En rolltilldelning definierar en uppsättning åtgärder som är tillåtna, medan en nekandetilldelning definierar en uppsättning åtgärder som inte är tillåtna. Med andra ord blockerar tilldelningsnekanden användare från att utföra angivna åtgärder, även om en rolltilldelning ger dem åtkomst. Tilldelningsnekanden åsidosätter rolltilldelningar.

Mer information finns i Förstå tilldelningar som nekas av Azure.

Så här avgör Azure RBAC om en användare har åtkomst till en resurs

Följande är de övergripande steg som Azure RBAC använder för att avgöra om du har åtkomst till en resurs. De här stegen gäller för Azure Resource Manager- eller dataplanstjänster som är integrerade med Azure RBAC. Det här är bra att förstå om du vill felsöka ett problem med åtkomst.

  1. En användare (eller tjänstens huvudnamn) hämtar en token för Azure Resource Manager.

    Token innehåller användarens gruppmedlemskap (inklusive transitiva gruppmedlemskap).

  2. Användaren gör ett REST API-anrop till Azure Resource Manager med den token som är ansluten.

  3. Azure Resource Manager hämtar alla rolltilldelningar och avvisar tilldelningar som tillämpas på resursen som åtgärden som utförs på.

  4. Om det gäller ett tilldelningsnekanden blockeras åtkomsten. Annars fortsätter utvärderingen.

  5. Azure Resource Manager begränsar rolltilldelningarna som gäller för den här användaren eller gruppen och avgör vilka roller som användaren har för den här resursen.

  6. Azure Resource Manager anger om åtgärden i API-anropet ingår i de roller som användaren har för den här resursen. Om rollerna innehåller Actions som har ett jokertecken (*) beräknas de gällande behörigheterna genom att subtrahera NotActions från den tillåtna Actions. På samma sätt görs samma subtraktion för alla dataåtgärder.

    Actions - NotActions = Effective management permissions

    DataActions - NotDataActions = Effective data permissions

  7. Om användaren inte har någon roll med åtgärden i det begärda omfånget tillåts inte åtkomst. Annars utvärderas alla villkor.

  8. Om rolltilldelningen innehåller villkor utvärderas de. Annars tillåts åtkomst.

  9. Om villkoren uppfylls tillåts åtkomst. Annars tillåts inte åtkomst.

Följande diagram är en sammanfattning av utvärderingslogik.

Evaluation logic flowchart for determining access to a resource.

Var lagras Azure RBAC-data?

Rolldefinitioner, rolltilldelningar och nekandetilldelningar lagras globalt för att säkerställa att du har åtkomst till dina resurser oavsett vilken region du skapade resursen.

När en rolltilldelning eller andra Azure RBAC-data tas bort tas data bort globalt. Huvudkonton som hade åtkomst till en resurs via Azure RBAC-data förlorar sin åtkomst.

Varför är Azure RBAC-data globala?

Azure RBAC-data är globala för att säkerställa att kunderna kan komma åt resurser i tid oavsett var de kommer åt dem. Azure RBAC tillämpas av Azure Resource Manager, som har en global slutpunkt och begäranden dirigeras till närmaste region för hastighet och motståndskraft. Därför måste Azure RBAC tillämpas i alla regioner och data replikeras till alla regioner. Mer information finns i Återhämtning för Azure Resource Manager.

Betänk följande exempel. Arina skapar en virtuell dator i Asien, östra. Bob, som är medlem i Arinas team, arbetar i USA. Bob måste komma åt den virtuella datorn som skapades i Asien, östra. För att ge Bob snabb åtkomst till den virtuella datorn måste Azure globalt replikera rolltilldelningen som ger Bob åtkomst till den virtuella datorn var Bob än befinner sig.

Diagram showing Azure RBAC data in multiple regions.

Licenskrav

Den här funktionen är kostnadsfri och ingår i din Azure-prenumeration.

Nästa steg