Dela via


Förstå Azure-rolltilldelningar.

Med rolltilldelningar kan du bevilja ett huvudnamn (till exempel en användare, en grupp, en hanterad identitet eller ett huvudnamn för tjänsten) åtkomst till en specifik Azure-resurs. I den här artikeln beskrivs information om rolltilldelningar.

Rolltilldelning

Åtkomst till Azure-resurser beviljas genom att skapa en rolltilldelning och åtkomsten återkallas genom att en rolltilldelning tas bort.

En rolltilldelning har flera komponenter, bland annat:

  • Huvudnamnet eller vem som har tilldelats rollen.
  • Den roll som de har tilldelats.
  • Det omfång som rollen tilldelas till.
  • Namnet på rolltilldelningen och en beskrivning som hjälper dig att förklara varför rollen har tilldelats.

Du kan till exempel använda Azure RBAC för att tilldela roller som:

  • Användaren Sally har ägaråtkomst till lagringskontot contoso123 i resursgruppen ContosoStorage.
  • Alla i gruppen Molnadministratörer i Microsoft Entra ID har läsåtkomst till alla resurser i resursgruppen ContosoStorage.
  • Den hanterade identitet som är associerad med ett program kan starta om virtuella datorer i Contosos prenumeration.

Följande visar ett exempel på egenskaperna i en rolltilldelning när de visas med Azure PowerShell:

{
  "RoleAssignmentName": "00000000-0000-0000-0000-000000000000",
  "RoleAssignmentId": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
  "Scope": "/subscriptions/11111111-1111-1111-1111-111111111111",
  "DisplayName": "User Name",
  "SignInName": "user@contoso.com",
  "RoleDefinitionName": "Contributor",
  "RoleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c",
  "ObjectId": "22222222-2222-2222-2222-222222222222",
  "ObjectType": "User",
  "CanDelegate": false,
  "Description": null,
  "ConditionVersion": null,
  "Condition": null
}

Följande visar ett exempel på egenskaperna i en rolltilldelning när de visas med hjälp av Azure CLI eller REST-API:et:

{
  "canDelegate": null,
  "condition": null,
  "conditionVersion": null,
  "description": null,
  "id": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
  "name": "00000000-0000-0000-0000-000000000000",
  "principalId": "22222222-2222-2222-2222-222222222222",
  "principalName": "user@contoso.com",
  "principalType": "User",
  "roleDefinitionId": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c",
  "roleDefinitionName": "Contributor",
  "scope": "/subscriptions/11111111-1111-1111-1111-111111111111",
  "type": "Microsoft.Authorization/roleAssignments"
}

I följande tabell beskrivs vad rolltilldelningsegenskaperna betyder.

Property beskrivning
RoleAssignmentName
name
Namnet på rolltilldelningen, som är en globalt unik identifierare (GUID).
RoleAssignmentId
id
Det unika ID:t för rolltilldelningen, som innehåller namnet.
Scope
scope
Den Azure-resursidentifierare som rolltilldelningen är begränsad till.
RoleDefinitionId
roleDefinitionId
Det unika ID:t för rollen.
RoleDefinitionName
roleDefinitionName
Namnet på rollen.
ObjectId
principalId
Microsoft Entra-objektidentifieraren för huvudnamnet som har rollen tilldelad.
ObjectType
principalType
Typen av Microsoft Entra-objekt som huvudnamnet representerar. Giltiga värden är User, Groupoch ServicePrincipal.
DisplayName För rolltilldelningar för användare visas användarens visningsnamn.
SignInName
principalName
Användarens unika huvudnamn (UPN) eller namnet på programmet som är associerat med tjänstens huvudnamn.
Description
description
Beskrivningen av rolltilldelningen.
Condition
condition
Villkorsinstruktor som skapats med en eller flera åtgärder från rolldefinitioner och attribut.
ConditionVersion
conditionVersion
Villkorets versionsnummer. Standardvärdet är 2.0 och är den enda version som stöds.
CanDelegate
canDelegate
Inte implementerad.

Omfattning

När du skapar en rolltilldelning måste du ange det omfång som den tillämpas på. Omfånget representerar den resurs eller uppsättning resurser som huvudkontot har åtkomst till. Du kan begränsa en rolltilldelning till en enskild resurs, en resursgrupp, en prenumeration eller en hanteringsgrupp.

Dricks

Använd det minsta omfång som du behöver för att uppfylla dina krav.

Om du till exempel behöver bevilja en hanterad identitet åtkomst till ett enda lagringskonto är det bra säkerhetspraxis att skapa rolltilldelningen i lagringskontots omfång, inte i resursgruppen eller prenumerationsomfånget.

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

Roll att tilldela

En rolltilldelning är associerad med en rolldefinition. Rolldefinitionen anger de behörigheter som huvudnamnet ska ha inom rolltilldelningens omfång.

Du kan tilldela en inbyggd rolldefinition eller en anpassad rolldefinition. När du skapar en rolltilldelning kräver vissa verktyg att du använder rolldefinitions-ID:t medan andra verktyg gör att du kan ange namnet på rollen.

Mer information om rolldefinitioner finns i Förstå rolldefinitioner.

Huvudkonto

Huvudnamn är användare, säkerhetsgrupper, hanterade identiteter, arbetsbelastningsidentiteter och tjänstens huvudnamn. Huvudkonton skapas och hanteras i din Microsoft Entra-klientorganisation. Du kan tilldela en roll till valfritt huvudnamn. Använd Microsoft Entra ID-objekt-ID för att identifiera det huvudnamn som du vill tilldela rollen till.

När du skapar en rolltilldelning med hjälp av Azure PowerShell, Azure CLI, Bicep eller någon annan IaC-teknik (infrastruktur som kod) anger du huvudtypen. Huvudtyperna är Användare, Grupp och ServicePrincipal. Det är viktigt att ange rätt huvudnamnstyp. Annars kan du få tillfälliga distributionsfel, särskilt när du arbetar med tjänstens huvudnamn och hanterade identiteter.

Name

Resursnamnet för en rolltilldelning måste vara en globalt unik identifierare (GUID).

Resursnamn för rolltilldelning måste vara unika i Microsoft Entra-klientorganisationen, även om rolltilldelningens omfattning är smalare.

Dricks

När du skapar en rolltilldelning med hjälp av Azure Portal, Azure PowerShell eller Azure CLI ger skapandeprocessen rolltilldelningen ett unikt namn åt dig automatiskt.

Om du skapar en rolltilldelning med hjälp av Bicep eller någon annan IaC-teknik (infrastruktur som kod) måste du noggrant planera hur du namnger dina rolltilldelningar. Mer information finns i Skapa Azure RBAC-resurser med hjälp av Bicep.

Beteende för resursborttagning

När du tar bort en användare, grupp, tjänstens huvudnamn eller hanterade identitet från Microsoft Entra-ID är det bra att ta bort eventuella rolltilldelningar. De tas inte bort automatiskt. Alla rolltilldelningar som refererar till ett borttaget huvudnamns-ID blir ogiltiga.

Om du försöker återanvända en rolltilldelnings namn för en annan rolltilldelning misslyckas distributionen. Det här problemet är mer sannolikt när du använder Bicep eller en Azure Resource Manager-mall (ARM-mall) för att distribuera dina rolltilldelningar, eftersom du uttryckligen måste ange rolltilldelningsnamnet när du använder dessa verktyg. Om du vill kringgå det här beteendet bör du antingen ta bort den gamla rolltilldelningen innan du återskapar den eller se till att du använder ett unikt namn när du distribuerar en ny rolltilldelning.

beskrivning

Du kan lägga till en textbeskrivning i en rolltilldelning. Även om beskrivningar är valfria är det en bra idé att lägga till dem i dina rolltilldelningar. Ange en kort motivering för varför huvudnamnet behöver den tilldelade rollen. När någon granskar rolltilldelningarna kan beskrivningar hjälpa till att förstå varför de har skapats och om de fortfarande är tillämpliga.

Villkor

Vissa roller stöder rolltilldelningsvillkor baserat på attribut i kontexten för specifika åtgärder. Ett villkor för rolltilldelning är ytterligare en kontroll som du kan lägga till i rolltilldelningen för att ge mer detaljerad åtkomstkontroll.

Du kan till exempel lägga till ett villkor som kräver att ett objekt har en specifik tagg för att användaren ska kunna läsa objektet.

Du skapar vanligtvis villkor med hjälp av ett redigeringsprogram för visuella villkor, men så här ser ett exempelvillkor ut i kod:

((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEqualsIgnoreCase 'Cascade'))

Föregående villkor gör det möjligt för användare att läsa blobar med en blobindextaggnyckel för Project och värdet Cascade.

Mer information om villkor finns i Vad är azure-attributbaserad åtkomstkontroll (Azure ABAC)?

Nästa steg