Åtgärder och attribut för Azure Key Vault ABAC-villkor (förhandsversion)

Note

Azure ABAC för Key Vault finns i förhandsversionen. Vissa aspekter kan ändras före allmän tillgänglighet. För förhandsversionsvillkor, se de kompletterande användningsvillkoren.

Den här artikeln beskriver de åtgärder, attribut och operatorer som stöds och som du kan använda under villkor för Azure rolltilldelningar för Azure Key Vault. En översikt över hur rolltilldelningsvillkor fungerar finns i Vad är Azure attributbaserad åtkomstkontroll (Azure ABAC)?. En lista över Key Vault dataåtgärder som en specifik behörighet påverkar finns i åtgärdsguiden Azure RBAC for Key Vault dataplan.

Overview

Azure ABAC för Key Vault bygger på Azure RBAC genom att lägga till villkor i rolltilldelningar. Azure utvärderar varje villkor vid körning mot attributen för den resurs som används eller den inkommande begäran, och tillåter eller nekar antingen begäran baserat på jämförelseoperatorer.

Fördelarna med att använda rolltilldelningsvillkor för Key Vault är:

  • Finare åtkomst till hemligheter. Begränsa ett huvudnamn till hemligheter vars namn matchar ett specifikt mönster (till exempel app-* eller team-prod-*), eller till specifika nyckelvalv efter valvnamn.
  • Färre rolltilldelningar att hantera. Använd en enda villkorsgrindad rolltilldelning för en säkerhetsgrupp i stället för många enskilda tilldelningar som modellerar samma behörigheter. ABAC hjälper dig att skala rollhantering – det beviljar inte behörigheter som en rolltilldelning inte redan beviljar.
  • Utökar befintliga Azure RBAC. ABAC-lager ovanpå dina befintliga rolltilldelningar. Du behöver inte ersätta RBAC för att använda den.

I den här förhandsversionen gäller ABAC för Key Vault endast för hemliga dataåtgärder och stöder två attribut: valvnamnet och det hemliga namnet. Viktiga dataåtgärder, certifikatdataåtgärder, taggbaserade attribut, tokenattribut och inbyggda Key Vault ABAC-villkor för någon roll ingår inte.

Om du vill använda ABAC-villkor måste nyckelvalvets behörighetsmodell anges till Azure RBAC. Bakgrund finns i Azure RBAC jämfört med åtkomstprinciper och Förbereda för Key Vault API-version 2026-02-01 och senare.

Villkorsformat

Villkor använder följande allmänna format:

@Resource[<ResourceType>:<AttributeName>] <Operator> '<Value>'
Component Description
@Resource Refererar till ett attribut för resursen som används. Använd @Request när attributet beskriver den inkommande begäran (till exempel namnet på en hemlighet som ännu inte finns).
ResourceType Resurstypen Azure Resource Manager. För Key Vault i den här förhandsversionen, antingen Microsoft.KeyVault/vaults eller Microsoft.KeyVault/vaults/secrets.
AttributeName Det specifika attribut som ska utvärderas. I den här förhandsversionen name är det enda attribut som stöds.
Operator Jämförelseoperatorn. Se Operatorer som stöds.
Value Det literalvärde som ska jämföras med.

Villkorsversionen måste vara inställd på 2.0. Fullständig grammatik finns i Azure villkorsformat och syntax för rolltilldelning.

Operatorer som stöds

Azure Key Vault ABAC-villkor stöder alla strängjämförelseoperatorer som definierats i Azure ABAC-villkorsformat. En fullständig lista över operatorer och deras beteende finns i Strängjämförelseoperatorer.

Note

Azure ABAC-strängjämförelseoperatorer innehåller skiftlägeskänsliga varianter, men Key Vault valvnamn och objektnamn är skiftlägeskänsliga och normaliseras till gemener. Därför gäller skiftlägeskänslig matchning inte för Key Vault ABAC-villkor. Använd gemener i dina villkor – ett värde som innehåller versaler matchar inte valv eller hemligt namn.

Azure Key Vault åtgärder

Du kan tillämpa ABAC-villkor på följande Key Vault hemliga dataåtgärder. Varje underavsnitt beskriver åtgärden, den underliggande DataAction, attributkällan som utvärderas (resurs eller begäran) och ett exempelvillkor.

Hämta hemlighet

Property Value
Visningsnamn Hämta hemlighet
Description Hämtar värdet för en hemlig information.
DataAction Microsoft.KeyVault/vaults/secrets/getSecret/action
Resursattribut Hemligt namn
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/getSecret/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'test-app'

Läsa hemliga metadata

Property Value
Visningsnamn Läsa hemliga metadata
Description Visar eller visar egenskaperna för en hemlighet, men inte dess värde.
DataAction Microsoft.KeyVault/vaults/secrets/readMetadata/action
Resursattribut Hemligt namn
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/readMetadata/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'api-'

Varning

Omfattar readMetadata/action både hämtning av en enskild hemlighets egenskaper (som bär ett hemligt namn) och listar hemligheter i ett valv (ett samlingsanrop utan namn per hemlighet). ABAC utvärderar ett villkor per åtgärd, inte rad för rad mot listresultat, så ett villkor för hemligt namn misslyckas readMetadata/action med listanropet med ett 403-fel – name attributet finns inte i samlingsbegäran och kan inte matcha. Det här beteendet visas på portalens bladet Hemligheter som en tom lista.

Om du vill att ett huvudnamn ska se varje hemligt namn i listan men bara öppna de värden som matchar ett mönster ska du inte grinda readMetadata/action. Bevilja readMetadata/action i stället villkorslöst och tillämpa villkoret secret-name på getSecret/action. Se exemplet Begränsa läsbehörighet till hemligheter med ett namnprefix .

Ange hemlighet

Property Value
Visningsnamn Ange hemlighet
Description Anger värdet för en hemlighet. Om hemligheten inte finns skapas den första versionen. Annars skapas en ny version med det angivna värdet.
DataAction Microsoft.KeyVault/vaults/secrets/setSecret/action
Attribueter för begäran Hemligt namn
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/setSecret/action'}) OR @Request[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'

Uppdatera hemlighet

Property Value
Visningsnamn Uppdatera hemlighet
Description Uppdaterar attributen som är associerade med den angivna hemligheten.
DataAction Microsoft.KeyVault/vaults/secrets/update/action
Resursattribut Hemligt namn
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/update/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'

Ta bort hemlighet

Property Value
Visningsnamn Ta bort hemlighet
Description Tar bort en hemlighet. Alla versioner tas bort.
DataAction Microsoft.KeyVault/vaults/secrets/delete
Resursattribut Hemligt namn
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/delete'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'temp-'

Säkerhetskopieringshemlighet

Property Value
Visningsnamn Säkerhetskopieringshemlighet
Description Skapar säkerhetskopian av en hemlighet. Filen kan användas för att återställa hemligheten i ett nyckelvalv i samma prenumeration. Begränsningar kan gälla.
DataAction Microsoft.KeyVault/vaults/secrets/backup/action
Resursattribut Hemligt namn
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/backup/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'critical-'

Återställ hemlighet

Property Value
Visningsnamn Återställ hemlighet
Description Återställer en hemlighet och alla dess versioner från en säkerhetskopia som genereras av Key Vault.
DataAction Microsoft.KeyVault/vaults/secrets/restore/action
Attribueter för begäran Hemligt namn
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/restore/action'}) OR @Request[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'

Återställa hemlighet

Property Value
Visningsnamn Återställa hemlighet
Description Återställer en borttagen hemlighet. Åtgärden utför återföringen av åtgärden Ta bort och gäller i valv som är aktiverade för mjuk borttagning.
DataAction Microsoft.KeyVault/vaults/secrets/recover/action
Resursattribut Hemligt namn
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/recover/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'

Rensa hemlighet

Property Value
Visningsnamn Rensa hemlighet
Description Rensar en borttagen hemlighet, vilket gör den oåterkallelig.
DataAction Microsoft.KeyVault/vaults/secrets/purge/action
Resursattribut Hemligt namn
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/purge/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'old-'

Attributkällor

Attribut beskriver egenskaper som utvärderas vid begärandetillfället. Resursattribut beskriver resursen som används. Begärandeattribut beskriver den inkommande begäran när resursen kanske ännu inte finns (till exempel under setSecret eller restore).

Valvnamn

Använd det här attributet för att begränsa åtkomsten till nyckelvalv vars namn matchar ett visst mönster. När du tillämpar ett villkor i prenumerations- eller resursgruppsomfång utvärderar Azure valvnamnet för varje valv som huvudnamnet försöker komma åt.

Property Value
Visningsnamn Valvnamn
Description Namnet på nyckelvalvet som används.
Attribute Microsoft.KeyVault/vaults:name
Attributkälla Resource
Typ av attribut String
Tillämpliga åtgärder Alla Key Vault hemliga dataåtgärder (globalt attribut)

Exempelvillkor:

@Resource[Microsoft.KeyVault/vaults:name] StringStartsWith 'prod-'
@Resource[Microsoft.KeyVault/vaults:name] StringEquals 'sample-vault'
@Resource[Microsoft.KeyVault/vaults:name] StringLike 'team-*-prod'

Hemligt namn (resurs)

Använd det här attributet när hemligheten redan finns vid utvärderingstillfället.

Property Value
Visningsnamn Hemligt namn
Description Namnet på hemligheten som används.
Attribute Microsoft.KeyVault/vaults/secrets:name
Attributkälla Resource
Typ av attribut String
Tillämpliga åtgärder getSecret/action, readMetadata/action, update/action, delete, backup/action, , , recover/actionpurge/action

Exempelvillkor:

@Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'test-app'
@Resource[Microsoft.KeyVault/vaults/secrets:name] StringLike 'api-key-*'

Hemligt namn (begäran)

Använd det här attributet när hemligheten kanske inte finns vid utvärderingstillfället, till exempel under skapandet eller återställningen.

Property Value
Visningsnamn Hemligt namn (begäran)
Description Namnet på en hemlighet som begärs.
Attribute Microsoft.KeyVault/vaults/secrets:name
Attributkälla Förfrågan
Typ av attribut String
Tillämpliga åtgärder setSecret/action, restore/action

Exempelvillkor:

@Request[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'
@Request[Microsoft.KeyVault/vaults/secrets:name] StringLike 'config-*'

Roller som stöder ABAC-villkor

Du kan tillämpa ABAC-villkor på alla roller som innehåller Key Vault hemlighet dataActions. Roller som endast innehåller kontrollplansåtgärder (till exempel ägare eller principadministratör) stöder inte ABAC-villkor eftersom Azure utvärderar villkor exklusivt för dataplansåtgärder. I den här förhandsversionen innehåller ingen inbyggd roll en förtilldelad Key Vault ABAC-villkor – du skapar villkoret när du skapar rolltilldelningen.

Följande inbyggda roller omfattar hemliga dataåtgärder och stöd för ABAC-villkor i den här förhandsversionen. Fullständiga rolldefinitioner och ID:er finns i Azure inbyggda roller för Key Vault dataplansåtgärder.

Befattning Description ID Villkorsstöd
Key Vault-administratör Utför alla dataplanåtgärder på ett nyckelvalv och alla objekt i det. 00482a5a-887f-4fb3-b363-3b7fe8e74483 Resurs- och begärandeattribut för hemliga åtgärder
Key Vault hemlighetsansvarig Utför alla åtgärder på hemligheter. b86a8fe4-44ce-4948-aee5-eccb2c155cd7 Resursattribut för läs- och livscykelåtgärder. Begär attribut på setSecret och restore åtgärder
Key Vault Secrets-användare Läs hemligt innehåll. 4633458b-17de-408a-b874-0445c86b69e6 Resursattribut för hemliga läsåtgärder
Key Vault-läsare Läs metadata för valv och deras objekt. 21090545-7ca7-4776-b22c-e363652d74d2 Resursattribut på readMetadata/action för en enda hemlighet. Ett villkor för hemligt namn här blockerar listanrop; se varningen under Läs hemliga metadata.
Key Vault-certifikatanvändare Läsa certifikatinnehåll. db79e9a7-68ee-4b58-9aeb-b90e7c24fcba Resursattribut på getSecret och readMetadata (certifikat hämtas via den hemliga slutpunkten – det hemliga namnet är lika med certifikatnamnet)
Skräddarsydda roller Alla anpassade rolldefinitioner som innehåller hemlighet dataActions för Key Vault. - Beror på vilken hemlighet dataActions som ingår

Note

Endast roller som tilldelats via Azure RBAC (inte äldre åtkomstprinciper för valv) stöder ABAC-villkor. Nyckelvalvet måste ha sin behörighetsmodell inställd på Azure rollbaserad åtkomstkontroll. Från och med API-version 2026-02-01 är Azure RBAC standard för nyligen skapade valv. Mer information finns i Prepare for Key Vault API version 2026-02-01 och senare.

Villkorsexempel

I följande exempel visas vanliga ABAC-mönster för Key Vault hemligheter. Mer information om villkorssyntaxen finns i Azure format och syntax för rolltilldelningsvillkor.

Exempel: Begränsa läsåtkomst till hemligheter med ett namnprefix

Tillåt att ett huvudnamn endast kan läsa hemligheter vars namn börjar med test-app:

  • Role: Key Vault-sekretessanvändare
  • Omfång: Key Vault-resurs
  • Villkor:
(
  !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/getSecret/action'})
  OR
  (
    @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'test-app'
  )
)

Beteende:

  • Tillåten: Läser test-app-secret1.
  • Nekad (ForbiddenByRbac): Läser test-db-password.

Exempel: Begränsa åtkomsten till hemligheter i specifika valv efter valvnamnprefix

Tillåt att ett huvudnamn endast läser hemligheter i valv vars namn börjar med kv-prod:

  • Role: Key Vault-sekretessanvändare
  • Omfång: Prenumeration
  • Villkor:
@Resource[Microsoft.KeyVault/vaults:name] StringStartsWith 'kv-prod'

Beteende:

  • Tillåten: Åtkomst till kv-prod-1.
  • Nekad: Åtkomst till test-kv.

Exempel: Begränsa nyligen skapade hemligheter till ett namnprefix

Tillåt endast att ett huvudnamn skapar hemligheter när det hemliga namnet börjar med app-. Eftersom hemligheten ännu inte finns vid utvärderingstillfället använder du attributet Begäran:

  • Roll: Key Vault Hemlighetsansvarig
  • Omfång: Key Vault-resurs
  • Villkor:
(
  !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/setSecret/action'})
  OR
  (
    @Request[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'
  )
)

Exempel: Kombinera villkor för valv och hemligt namn

Begränsa ett huvudnamn till skrivskyddade hemligheter som börjar med api- i valv vars namn börjar med kv-prod:

  • Role: Key Vault-sekretessanvändare
  • Omfång: Prenumeration
  • Villkor:
(
  !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/getSecret/action'})
  OR
  (
    @Resource[Microsoft.KeyVault/vaults:name] StringStartsWith 'kv-prod'
    AND
    @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'api-'
  )
)