Akcje i atrybuty warunków Azure Key Vault ABAC (wersja zapoznawcza)

Note

Azure abac dla Key Vault jest dostępna w wersji zapoznawczej. Niektóre aspekty mogą ulec zmianie przed ogólną dostępnością. Aby zapoznać się z warunkami wersji zapoznawczej, zobacz dodatkowe warunki użytkowania.

W tym artykule opisano obsługiwane akcje, atrybuty i operatory, których można używać w warunkach dotyczących przypisań ról Azure dla Azure Key Vault. Aby zapoznać się z omówieniem sposobu działania warunków przypisywania ról, zobacz Co to jest Azure kontrola dostępu oparta na atrybutach (Azure ABAC)?. Aby zapoznać się z listą akcji Key Vault danych, na które ma wpływ określone uprawnienie, zobacz przewodnik Azure RBAC dla Key Vault operacji płaszczyzny danych.

Overview

Azure abAC dla Key Vault opiera się na Azure kontroli dostępu opartej na rolach przez dodanie warunków do przypisań ról. Azure ocenia każdy warunek w czasie wykonywania względem atrybutów zasobu, do którego uzyskuje się dostęp, lub żądań przychodzących, oraz zezwala na żądanie lub odrzuca je na podstawie operatorów porównania.

Korzyści wynikające z używania warunków przypisania ról dla Key Vault to:

  • Bardziej precyzyjny dostęp do wpisów tajnych. Ogranicz podmiot zabezpieczeń do wpisów tajnych, app-* których nazwy pasują do określonego wzorca (na przykład lub team-prod-*), lub do określonych magazynów kluczy według nazwy magazynu.
  • Mniejsza liczba przypisań ról do zarządzania. Użyj pojedynczego przypisania roli z bramą warunku dla grupy zabezpieczeń zamiast wielu pojedynczych przypisań, które modeluje te same uprawnienia. Funkcja ABAC ułatwia skalowanie zarządzania rolami — nie udziela uprawnień, których przypisanie roli jeszcze nie udziela.
  • Rozszerza istniejącą Azure kontrolę dostępu opartą na rolach. Warstwy ABAC na podstawie istniejących przypisań ról. Nie musisz zastępować kontroli dostępu opartej na rolach, aby jej używać.

W tej wersji zapoznawczej funkcja ABAC dla Key Vault ma zastosowanie tylko do akcji tajnych danych i obsługuje dwa atrybuty: nazwę magazynu i nazwę wpisu tajnego. Kluczowe akcje danych, akcje danych certyfikatu, atrybuty oparte na tagach, atrybuty tokenu i wbudowane Key Vault warunki ABAC dla żadnej roli nie są uwzględniane.

Aby można było używać warunków ABAC, model uprawnień magazynu kluczy musi być ustawiony na Azure kontroli dostępu opartej na rolach. Aby uzyskać podstawowe informacje, zobacz Azure RBAC a zasady dostępu i Przygotowanie do Key Vault API w wersji 2026-02-01 i nowszych.

Format warunkowy

Warunki używają następującego ogólnego formatu:

@Resource[<ResourceType>:<AttributeName>] <Operator> '<Value>'
Składnik Description
@Resource Odwołuje się do atrybutu zasobu, do których uzyskuje się dostęp. Użyj @Request , gdy atrybut opisuje żądanie przychodzące (na przykład nazwę wpisu tajnego, który jeszcze nie istnieje).
ResourceType Typ zasobu Azure Resource Manager. W przypadku Key Vault w tej wersji zapoznawczej lub Microsoft.KeyVault/vaultsMicrosoft.KeyVault/vaults/secrets.
AttributeName Określony atrybut do oceny. W tej wersji zapoznawczej name jest jedynym obsługiwanym atrybutem.
Operator Operator porównania. Zobacz Obsługiwane operatory.
Value Wartość literału do porównania.

Wersja warunku musi być ustawiona na 2.0. Aby uzyskać pełną gramatykę, zobacz Azure format i składnię warunku przypisania roli.

Obsługiwane operatory

Azure Key Vault warunki ABAC obsługują wszystkie operatory porównania ciągów zdefiniowane w Azure formacie warunku ABAC. Aby uzyskać pełną listę operatorów i ich zachowanie, zobacz Operatory porównania ciągów.

Note

Azure operatory porównania ciągów ABAC obejmują warianty z uwzględnieniem wielkości liter, ale Key Vault nazwy magazynów i nazw obiektów są bez uwzględniania wielkości liter i są znormalizowane do małych liter. W związku z tym dopasowanie uwzględniające wielkość liter nie ma zastosowania do Key Vault warunków ABAC. Użyj małych wartości w warunkach — wartość zawierająca wielkie litery nie będzie zgodna z żadną nazwą magazynu ani wpisu tajnego.

Azure Key Vault akcje

Warunki abAC można zastosować do następujących Key Vault tajnych akcji danych. Każda podsekcja opisuje akcję, podstawową akcję DataAction, źródło atrybutu, które ocenia (zasób lub żądanie) i przykładowy warunek.

Pobierz sekret

Property Value
Wyświetlana nazwa Pobierz sekret
Description Pobiera wartość tajemnicy.
DataAction Microsoft.KeyVault/vaults/secrets/getSecret/action
Atrybuty zasobów Tajna nazwa
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/getSecret/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'test-app'

Odczytywanie metadanych wpisów tajnych

Property Value
Wyświetlana nazwa Odczytywanie metadanych wpisów tajnych
Description Wyświetla lub wyświetla właściwości wpisu tajnego, ale nie jego wartość.
DataAction Microsoft.KeyVault/vaults/secrets/readMetadata/action
Atrybuty zasobów Tajna nazwa
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/readMetadata/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'api-'

Warning

Obejmuje readMetadata/action zarówno pobieranie właściwości pojedynczego wpisu tajnego (które nosi nazwę wpisu tajnego) i wyświetlanie listy wpisów tajnych w magazynie (wywołanie kolekcji bez nazwy wpisu tajnego). Funkcja ABAC ocenia warunek na akcję, a nie wiersz względem wyników listy, więc warunek readMetadata/action nazwy wpisu tajnego kończy się niepowodzeniem wywołania listy z błędem 403 — name atrybut nie jest obecny w żądaniu kolekcji i nie może być zgodny. To zachowanie jest powierzchnią w bloku Wpisy tajne portalu jako pustą listą.

Jeśli chcesz, aby podmiot zabezpieczeń wyświetlał każdą nazwę wpisu tajnego na liście, ale otwierał tylko wartości zgodne ze wzorcem, nie należy użyć bramy readMetadata/action. Zamiast tego należy przyznać readMetadata/action bezwarunkowo i zastosować warunek nazwy tajnej do getSecret/action. Zobacz przykład Ograniczanie dostępu do odczytu do wpisów tajnych z prefiksem nazwy .

Ustawianie wpisu tajnego

Property Value
Wyświetlana nazwa Ustawianie wpisu tajnego
Description Ustawia wartość wpisu tajnego. Jeśli wpis tajny nie istnieje, zostanie utworzona pierwsza wersja. W przeciwnym razie zostanie utworzona nowa wersja z określoną wartością.
DataAction Microsoft.KeyVault/vaults/secrets/setSecret/action
Atrybuty żądania Tajna nazwa
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/setSecret/action'}) OR @Request[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'

Aktualizowanie wpisu tajnego

Property Value
Wyświetlana nazwa Aktualizowanie wpisu tajnego
Description Aktualizuje atrybuty skojarzone z danym wpisem tajnym.
DataAction Microsoft.KeyVault/vaults/secrets/update/action
Atrybuty zasobów Tajna nazwa
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/update/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'

Usuń tajny

Property Value
Wyświetlana nazwa Usuń tajny
Description Usuwa wpis tajny. Wszystkie wersje są usuwane.
DataAction Microsoft.KeyVault/vaults/secrets/delete
Atrybuty zasobów Tajna nazwa
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/delete'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'temp-'

Wpis tajny kopii zapasowej

Property Value
Wyświetlana nazwa Wpis tajny kopii zapasowej
Description Tworzy plik kopii zapasowej tajemnicy. Plik może służyć do przywracania wpisu tajnego w magazynie kluczy tej samej subskrypcji. Ograniczenia mogą mieć zastosowanie.
DataAction Microsoft.KeyVault/vaults/secrets/backup/action
Atrybuty zasobów Tajna nazwa
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/backup/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'critical-'

Przywracanie tajemnicy

Property Value
Wyświetlana nazwa Przywracanie tajemnicy
Description Przywraca wpis tajny i wszystkie jego wersje z pliku kopii zapasowej wygenerowanego przez Key Vault.
DataAction Microsoft.KeyVault/vaults/secrets/restore/action
Atrybuty żądania Tajna nazwa
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/restore/action'}) OR @Request[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'

Odzyskiwanie wpisu tajnego

Property Value
Wyświetlana nazwa Odzyskiwanie wpisu tajnego
Description Odzyskuje usunięty wpis tajny. Operacja wykonuje odwrócenie operacji Usuwania i ma zastosowanie w magazynach włączonych do usuwania nietrwałego.
DataAction Microsoft.KeyVault/vaults/secrets/recover/action
Atrybuty zasobów Tajna nazwa
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/recover/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'

Przeczyszczanie wpisu tajnego

Property Value
Wyświetlana nazwa Przeczyszczanie wpisu tajnego
Description Przeczyszcza usunięty wpis tajny, co czyni go nie do odzyskania.
DataAction Microsoft.KeyVault/vaults/secrets/purge/action
Atrybuty zasobów Tajna nazwa
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/purge/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'old-'

Źródła atrybutów

Atrybuty opisują właściwości oceniane w momencie żądania. Atrybuty zasobów opisują używany zasób. Atrybuty żądania opisują żądanie przychodzące, gdy zasób może jeszcze nie istnieć (na przykład podczas setSecret lub restore).

Nazwa skarbca

Użyj tego atrybutu, aby ograniczyć zakres dostępu do magazynów kluczy, których nazwy pasują do danego wzorca. W przypadku zastosowania warunku w zakresie subskrypcji lub grupy zasobów Azure ocenia nazwę magazynu dla każdego magazynu, do którego podmiot zabezpieczeń próbuje uzyskać dostęp.

Property Value
Wyświetlana nazwa Nazwa skarbca
Description Nazwa dostępnego magazynu kluczy.
Attribute Microsoft.KeyVault/vaults:name
Źródło atrybutu Resource
Typ atrybutu String
Odpowiednie akcje Wszystkie akcje Key Vault tajnych danych (atrybut globalny)

Przykładowe warunki:

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

Nazwa wpisu tajnego (zasób)

Użyj tego atrybutu, gdy wpis tajny już istnieje w czasie oceny.

Property Value
Wyświetlana nazwa Tajna nazwa
Description Nazwa klucza tajnego, do których uzyskuje się dostęp.
Attribute Microsoft.KeyVault/vaults/secrets:name
Źródło atrybutu Resource
Typ atrybutu String
Odpowiednie akcje getSecret/action, readMetadata/action, , update/action, delete, backup/action, , recover/actionpurge/action

Przykładowe warunki:

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

Nazwa wpisu tajnego (żądanie)

Użyj tego atrybutu, gdy wpis tajny może jeszcze nie istnieć w czasie oceny, na przykład podczas tworzenia lub przywracania.

Property Value
Wyświetlana nazwa Nazwa wpisu tajnego (żądanie)
Description Nazwa żądanego wpisu tajnego.
Attribute Microsoft.KeyVault/vaults/secrets:name
Źródło atrybutu Żądanie
Typ atrybutu String
Odpowiednie akcje setSecret/action, restore/action

Przykładowe warunki:

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

Role, które obsługują warunki ABAC

Warunki abAC można zastosować do dowolnej roli, która zawiera Key Vault wpis tajny dataActions. Role, które zawierają tylko akcje płaszczyzny sterowania (takie jak właściciel lub administrator zasad), nie obsługują warunków ABAC, ponieważ Azure ocenia warunki wyłącznie na operacjach płaszczyzny danych. W tej wersji zapoznawczej żadna wbudowana rola nie zawiera wstępnie przydzielonego Key Vault warunku ABAC — warunek jest tworzony podczas tworzenia przypisania roli.

Następujące wbudowane role obejmują akcje tajnych danych i obsługują warunki ABAC w tej wersji zapoznawczej. Aby zapoznać się z pełnymi definicjami ról i identyfikatorami, zobacz Azure wbudowane role dla operacji Key Vault płaszczyzny danych.

Role Description identyfikator Obsługa warunków
Administrator magazynu kluczy Wykonaj wszystkie operacje warstwy danych w magazynie kluczy i w wszystkich w nim obiektach. 00482a5a-887f-4fb3-b363-3b7fe8e74483 Atrybuty zasobów i żądania dotyczące operacji wpisów tajnych
Administrator Sekretów Key Vault Wykonaj dowolną akcję wpisów tajnych. b86a8fe4-44ce-4948-aee5-eccb2c155cd7 Atrybuty zasobów dotyczące operacji odczytu i cyklu życia; Atrybuty żądania dotyczące setSecret operacji i restore
Użytkownik sekretów usługi Key Vault Odczytywanie zawartości wpisu tajnego. 4633458b-17de-408a-b874-0445c86b69e6 Atrybuty zasobów na tajnych operacjach odczytu
Czytelnik „Key Vault” Odczytywanie metadanych magazynów i ich obiektów. 21090545-7ca7-4776-b22c-e363652d74d2 Atrybuty zasobów dla readMetadata/action pojedynczego wpisu tajnego. Warunek nazwy wpisu tajnego blokuje wywołania listy; zobacz ostrzeżenie w obszarze Odczyt metadanych wpisów tajnych.
użytkownik certyfikatu Key Vault Odczytywanie zawartości certyfikatu. db79e9a7-68ee-4b58-9aeb-b90e7c24fcba Atrybuty zasobów w systemach getSecret i readMetadata (certyfikaty są pobierane za pośrednictwem tajnego punktu końcowego — nazwa wpisu tajnego jest równa nazwie certyfikatu)
Role niestandardowe Dowolna definicja roli niestandardowej, która zawiera wpis tajny dataActions dla Key Vault. - Zależy od tego, który wpis tajny dataActions jest uwzględniony

Note

Tylko role przypisane za pośrednictwem Azure kontroli dostępu opartej na rolach (nie starszych zasad dostępu do magazynu) obsługują warunki abAC. Magazyn kluczy musi mieć ustawiony model uprawnień, aby Azure kontroli dostępu opartej na rolach. Począwszy od interfejsu API w wersji 2026-02-01, Azure kontrola dostępu oparta na rolach jest domyślna dla nowo utworzonych magazynów. Aby uzyskać więcej informacji, zobacz Prepare for Key Vault API w wersji 2026-02-01 i nowszej.

Przykłady warunków

W poniższych przykładach przedstawiono typowe wzorce ABAC dla Key Vault wpisów tajnych. Aby uzyskać więcej informacji na temat składni warunku, zobacz Azure format i składnię warunku przypisania roli.

Przykład: ograniczanie dostępu do odczytu do wpisów tajnych przy użyciu prefiksu nazwy

Zezwalaj podmiotowi zabezpieczeń na odczytywanie tylko wpisów tajnych, których nazwy zaczynają się od test-app:

  • Role: użytkownik tajnych danych Key Vault
  • Zakres: zasób magazynu kluczy
  • Warunek:
(
  !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/getSecret/action'})
  OR
  (
    @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'test-app'
  )
)

Zachowanie:

  • Dozwolone: odczyt test-app-secret1.
  • Odmowa (ForbiddenByRbac): czytanie test-db-password.

Przykład: Ograniczanie dostępu do wpisów tajnych w określonych magazynach według prefiksu nazwy magazynu

Zezwalaj podmiotowi zabezpieczeń na odczytywanie wpisów tajnych tylko w magazynach, których nazwy zaczynają się od kv-prod:

  • Role: użytkownik tajnych danych Key Vault
  • Zakres: Subskrypcja
  • Warunek:
@Resource[Microsoft.KeyVault/vaults:name] StringStartsWith 'kv-prod'

Zachowanie:

  • Dozwolone: dostęp do kv-prod-1elementu .
  • Odmowa: dostęp do test-kvelementu .

Przykład: Ograniczanie nowo utworzonych wpisów tajnych do prefiksu nazwy

Zezwalaj podmiotowi zabezpieczeń na tworzenie wpisów tajnych tylko wtedy, gdy nazwa wpisu tajnego zaczyna się od app-. Ponieważ wpis tajny jeszcze nie istnieje w czasie oceny, użyj atrybutu Request:

  • Rola: Key Vault Secrets Officer
  • Zakres: zasób magazynu kluczy
  • Warunek:
(
  !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/setSecret/action'})
  OR
  (
    @Request[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'
  )
)

Przykład: łączenie warunków nazwy magazynu i wpisu tajnego

Ogranicz podmiot zabezpieczeń do odczytu tylko wpisów tajnych rozpoczynających się od api- w magazynach, których nazwy zaczynają się od kv-prod:

  • Role: użytkownik tajnych danych Key Vault
  • Zakres: Subskrypcja
  • Warunek:
(
  !(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-'
  )
)