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 och 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 är 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
Sättet du kontrollerar åtkomsten till resurser med hjälp av Azure RBAC är att tilldela Azure-roller. Det här är ett viktigt begrepp att förstå – det är hur behörigheter tillämpas. En rolltilldelning består av tre delar: säkerhetsobjekt, rolldefinition och omfång.
Säkerhetsobjekt
Ett säkerhetsobjekt är ett objekt som representerar en användare, grupp, tjänstens huvudnamn eller en hanterad identitet som begär åtkomst till Azure-resurser. Du kan tilldela en roll till något av dessa säkerhetsobjekt.
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äsning, skrivning och borttagning. Roller kan vara på hög nivå, som ägare, eller specifika, som läsare för virtuell dator.
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.
Omfattning
Omfång är den uppsättning resurser som åtkomsten som gäller för. När du tilldelar en roll kan du ytterligare begränsa vilka åtgärder som tillåts genom att definiera ett område. Det här är användbart om du vill göra någon till en Webbplatsdeltagare men endast 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.
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 ingår i en annan rolltilldelning.
Du kan tilldela roller med hjälp av Azure-portalen, 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 har användaren behörigheterna i rolltilldelningen.
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.
Hur Azure RBAC avgör 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 användbart för att förstå om du försöker felsöka ett åtkomstproblem.
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).
Användaren gör ett REST API-anrop till Azure Resource Manager med den token som är ansluten.
Azure Resource Manager hämtar alla rolltilldelningar och avvisar tilldelningar som tillämpas på resursen som åtgärden som utförs på.
Om det gäller ett tilldelningsnekanden blockeras åtkomsten. Annars fortsätter utvärderingen.
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.
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 effektiva behörigheterna genom att subtraheraNotActions
från den tillåtnaActions
. På samma sätt görs samma subtraktion för alla dataåtgärder.Actions - NotActions = Effective management permissions
DataActions - NotDataActions = Effective data permissions
Om användaren inte har någon roll med åtgärden i det begärda omfånget tillåts inte åtkomst. Annars utvärderas eventuella villkor.
Om rolltilldelningen innehåller villkor utvärderas de. Annars tillåts åtkomst.
Om villkoren uppfylls tillåts åtkomst. Annars tillåts inte åtkomst.
Följande diagram är en sammanfattning av utvärderingslogik.
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. Huvudnamn 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 återhämtning. Därför måste Azure RBAC tillämpas i alla regioner och data replikeras till alla regioner. Mer information finns i Återhämtning av 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.
Licenskrav
Den här funktionen är kostnadsfri och ingår i din Azure-prenumeration.