Dela via


Vad är azure-attributbaserad åtkomstkontroll (Azure ABAC)?

Attributbaserad åtkomstkontroll (ABAC) är ett auktoriseringssystem som definierar åtkomst baserat på attribut som är associerade med säkerhetsobjekt, resurser och miljön för en åtkomstbegäran. Med ABAC kan du ge ett säkerhetsobjekt åtkomst till en resurs baserat på attribut. Azure ABAC avser implementeringen av ABAC för Azure.

Vad är villkor för rolltilldelning?

Rollbaserad åtkomstkontroll i Azure (Azure RBAC) är ett auktoriseringssystem som hjälper dig att hantera vem som har åtkomst till Azure-resurser, vad de kan göra med dessa resurser och vilka områden de har åtkomst till. I de flesta fall tillhandahåller Azure RBAC den åtkomsthantering du behöver med hjälp av rolldefinitioner och rolltilldelningar. Men i vissa fall kanske du vill tillhandahålla mer detaljerad åtkomsthantering eller förenkla hanteringen av hundratals rolltilldelningar.

Azure ABAC bygger på Azure RBAC genom att lägga till rolltilldelningsvillkor baserat på attribut i samband med 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. Ett villkor filtrerar ned behörigheter som beviljats som en del av rolldefinitionen och rolltilldelningen. Du kan till exempel lägga till ett villkor som kräver att ett objekt har en specifik tagg för att läsa objektet. Du kan inte uttryckligen neka åtkomst till specifika resurser med hjälp av villkor.

Genom att använda Azure RBAC och Azure ABAC integreras fördelarna med båda åtkomstkontrollmodellerna. Azure RBAC är enklare att implementera på grund av den nära anpassningen till affärslogiken, medan Azure ABAC ger större flexibilitet i vissa viktiga scenarier. Genom att kombinera dessa två metoder kan organisationer uppnå en mer avancerad auktoriseringsnivå.

Varför ska man använda villkor?

Det finns tre huvudsakliga fördelar med att använda rolltilldelningsvillkor:

  • Ge mer detaljerad åtkomstkontroll – En rolltilldelning använder en rolldefinition med åtgärder och dataåtgärder för att tilldela behörigheter till säkerhetsprincipaler. Du kan skriva villkor för att filtrera ned dessa behörigheter för mer detaljerad åtkomstkontroll. Du kan också lägga till villkor för specifika åtgärder. Du kan till exempel endast ge John läsåtkomst till blobar i din prenumeration om blobarna är taggade som Project=Blue.
  • Minska antalet rolltilldelningar – Varje Azure-prenumeration har för närvarande en gräns för rolltilldelning. Det finns scenarier som skulle kräva tusentals rolltilldelningar. Alla dessa rolltilldelningar måste hanteras. I dessa scenarier kan du eventuellt lägga till villkor för att använda betydligt färre rolltilldelningar.
  • Använd attribut som har specifik affärsbetydning – Med villkor kan du använda attribut som har specifik affärsbetydning för dig i åtkomstkontroll. Några exempel på attribut är projektnamn, programutvecklingssteg och klassificeringsnivåer. Värdena för dessa resursattribut är dynamiska och ändras när användare flyttar mellan team och projekt.

Exempelscenarier för villkor

Det finns flera scenarier där du kanske vill lägga till ett villkor i rolltilldelningen. Här följer några exempel.

  • Läs åtkomst till blobar med taggen Project=Cascade
  • Nya blobar måste innehålla taggen Project=Cascade
  • Befintliga blobar måste taggas med minst en projektnyckel eller programnyckel
  • Befintliga blobar måste taggas med en Projektnyckel och Cascade-, Baker- eller Skagit-värden
  • Läsa, skriva eller ta bort blobar i containrar med namnet blobs-example-container
  • Läsåtkomst till blobar i containrar med namnet blobs-exempel-container och med en sökväg som är skrivskyddad.
  • Skrivbehörighet till blobbar i containrar med namnet Contosocorp med sökvägen uploads/contoso
  • Läs åtkomst till blobar med taggen Program=Alpine och en sökväg för loggar
  • Läsåtkomst till blobar med taggen Project=Baker och användaren har ett matchande attribut Project=Baker
  • Läs åtkomst till blobar under ett visst datum-/tidsintervall.
  • Skriv endast åtkomst till blobar via en privat länk eller från ett specifikt undernät.

Mer information om hur du skapar dessa exempel finns i Exempel på Villkor för Azure-rolltilldelning för Blob Storage.

Var kan villkor läggas till?

För närvarande kan villkor läggas till i inbyggda eller anpassade rolltilldelningar som har bloblagrings- eller kölagringsdataåtgärder. Villkor läggs till i samma omfång som rolltilldelningen. Precis som rolltilldelningar måste du ha Microsoft.Authorization/roleAssignments/write behörighet att lägga till ett villkor.

Här är några av de attribut för bloblagring som du kan använda i dina villkor.

  • Kontonamn
  • Taggar för blobindex
  • Blob-sökväg
  • Blobprefix
  • Containerns namn
  • Namn på krypteringsomfång
  • Är aktuell version
  • Är hierarkiskt namnområde aktiverat
  • Är privat länk
  • Ögonblicksbild
  • UTC nu (aktuellt datum och tid i Coordinated Universal Time)
  • Versionsidentitet

Hur ser ett villkor ut?

Du kan lägga till villkor i nya eller befintliga rolltilldelningar. Här är rollen Storage Blob Data Reader som har tilldelats till en användare med namnet Chandra i ett resursgruppsomfång. Ett villkor har också lagts till som endast tillåter läsåtkomst till blobar med taggen Project=Cascade.

Diagram över rolltilldelning med ett villkor.

Om Chandra försöker läsa en blob utan taggen Project=Cascade tillåts inte åtkomst.

Diagram över åtkomst tillåts inte med ett villkor.

Så här ser villkoret ut i Azure-portalen:

Skärmbild av villkorsredigeraren i Azure-portalen som visar avsnittet bygguttryck med värden för blobindextaggar.

Så här ser villkoret 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'
    )
)

Mer information om villkorsformatet finns i Villkorsformat och syntax för Azure-rolltilldelningsvillkor.

Status för villkorsegenskaper

I följande tabell visas status för villkorsfunktioner:

Egenskap Läge Datum
Använda miljöattribut i ett villkor GA April 2024
Lägga till villkor med hjälp av villkorsredigeraren i Azure-portalen GA Oktober 2022
Lägg till villkor genom att använda Azure PowerShell, Azure CLI eller REST API GA Oktober 2022
Använd resurs- och begärandeattribut för specifika kombinationer av Azure-lagringsresurser, åtkomstattributtyper och lagringskontoprestandanivåer. Mer information finns i Status för villkorsfunktioner i Azure Storage. GA Oktober 2022
Använd anpassade säkerhetsattribut på ett huvudobjekt i ett villkor GA November 2023

Villkor och Microsoft Entra PIM

Du kan också lägga till villkor för berättigade rolltilldelningar med Microsoft Entra Privileged Identity Management (Microsoft Entra PIM) för Azure-resurser. Med Microsoft Entra PIM måste slutanvändarna aktivera en berättigad rolltilldelning för att få behörighet att utföra vissa åtgärder. Med hjälp av villkor i Microsoft Entra PIM kan du inte bara begränsa en användares åtkomst till en resurs med hjälp av detaljerade villkor, utan även använda Microsoft Entra PIM för att skydda den med en tidsbunden inställning, arbetsflöde för godkännande, spårning och så vidare. Mer information finns i Tilldela Azure-resursroller i Privileged Identity Management.

Terminologi

För att bättre förstå Azure RBAC och Azure ABAC kan du gå tillbaka till följande lista med villkor.

Begrepp Definition
attributbaserad åtkomstkontroll (ABAC) Ett auktoriseringssystem som definierar åtkomst baserat på attribut som är associerade med säkerhetsobjekt, resurser och miljö. Med ABAC kan du ge ett säkerhetsobjekt åtkomst till en resurs baserat på attribut.
Azure ABAC (attributbaserad åtkomstkontroll) Refererar till implementeringen av ABAC för Azure.
villkor för rolltilldelning En ytterligare kontroll som du kan lägga till i rolltilldelningen för att ge mer detaljerad åtkomstkontroll.
attribut I det här sammanhanget är ett nyckel/värde-par som Project=Blue, där Project är attributnyckeln och Blue är attributvärdet. Attribut och taggar är synonyma för åtkomstkontroll.
uttryck Ett påstående i ett villkor som utvärderas till sant eller falskt. Ett uttryck har formatet <attributoperatorvärde><><>.

Gränser

Här är några av begränsningarna för villkor.

Resurs Begränsning Noteringar
Antal uttryck per villkor med hjälp av det visuella redigeringsprogrammet 5 Du kan lägga till fler än fem uttryck med hjälp av kodredigeraren

Kända problemområden

Här är de kända problemen med villkor:

  • Om du använder Microsoft Entra Privileged Identity Management (PIM) och anpassade säkerhetsattribut visas inte Principal i attributkällan när du lägger till ett villkor.

Nästa steg