Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 lubteam-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): czytanietest-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-'
)
)
Treści powiązane
- Dodawanie warunków przypisania ról dla wpisów tajnych Key Vault przy użyciu Azure CLI (wersja zapoznawcza)
- Dodawanie warunków przypisywania ról dla wpisów tajnych Key Vault przy użyciu Azure PowerShell (wersja zapoznawcza)
- Co to jest kontrola dostępu oparta na atrybutach platformy Azure (Azure ABAC)?
- Format i składnia warunków przypisania roli platformy Azure
- Zapewnienie dostępu do kluczy, certyfikatów i sekretów w usłudze Key Vault za pomocą Azure RBAC
- Rozwiązywanie problemów z warunkami przypisywania ról platformy Azure
- Rozwiązywanie problemów z dostępem do usługi Key Vault
- Przygotowanie do Key Vault API w wersji 2026-02-01 lub nowszej