Azioni e attributi per Azure Key Vault condizioni del controllo degli accessi in base al ruolo (anteprima)

Note

Azure controllo degli accessi in base al ruolo per Key Vault è disponibile in anteprima. Alcuni aspetti potrebbero cambiare prima della disponibilità generale. Per le condizioni di anteprima, vedere le condizioni supplementari per l'utilizzo.

Questo articolo descrive le azioni, gli attributi e gli operatori supportati che è possibile usare in condizioni per le assegnazioni di ruolo Azure per Azure Key Vault. Per una panoramica del funzionamento delle condizioni di assegnazione dei ruoli, vedere Che cos'è Azure controllo degli accessi in base all'attributo (Azure ABAC)?. Per l'elenco di Key Vault azioni sui dati che influiscono su un'autorizzazione specifica, vedere il controllo degli accessi in base al ruolo Azure per Key Vault guida operativa del piano dati.

Overview

Azure controllo degli accessi in base al ruolo per Key Vault si basa su Azure controllo degli accessi in base al ruolo aggiungendo condizioni alle assegnazioni di ruolo. Azure valuta ogni condizione in fase di esecuzione rispetto agli attributi della risorsa a cui si accede o alla richiesta in ingresso e consente o nega la richiesta in base agli operatori di confronto.

I vantaggi dell'uso delle condizioni di assegnazione di ruolo per Key Vault sono:

  • Accesso più dettagliato ai segreti. Limitare un'entità ai segreti i cui nomi corrispondono a un modello specifico (ad esempio, app-* o team-prod-*) o a insiemi di credenziali delle chiavi specifici in base al nome dell'insieme di credenziali.
  • Meno assegnazioni di ruolo da gestire. Usare un'assegnazione di ruolo a condizione singola per un gruppo di sicurezza anziché molte assegnazioni singole che modellano le stesse autorizzazioni. Il controllo degli accessi in base al ruolo consente di ridimensionare la gestione dei ruoli: non concede autorizzazioni che un'assegnazione di ruolo non concede già.
  • Estende il controllo degli accessi in base al ruolo di Azure esistente. Livelli di controllo degli accessi in base al ruolo sopra le assegnazioni di ruolo esistenti. Non è necessario sostituire il controllo degli accessi in base al ruolo per usarlo.

In questa anteprima, il controllo degli accessi in base al ruolo per Key Vault si applica solo alle azioni di dati segrete e supporta due attributi: il nome dell'insieme di credenziali e il nome del segreto. Le azioni chiave dei dati, le azioni dei dati del certificato, gli attributi basati su tag, gli attributi del token e le condizioni predefinite Key Vault controllo degli accessi in base al ruolo non sono incluse.

Per usare le condizioni del controllo degli accessi in base al ruolo, è necessario impostare il modello di autorizzazione dell'insieme di credenziali delle chiavi su Azure controllo degli accessi in base al ruolo. Per informazioni generali, vedere Azure controllo degli accessi in base al ruolo e Preparare l'API Key Vault versione 2026-02-01 e successive.

Formato della condizione

Le condizioni usano il formato generale seguente:

@Resource[<ResourceType>:<AttributeName>] <Operator> '<Value>'
Componente Description
@Resource Fa riferimento a un attributo della risorsa a cui si accede. Usare @Request quando l'attributo descrive la richiesta in ingresso, ad esempio il nome di un segreto che non esiste ancora.
ResourceType Tipo di risorsa Azure Resource Manager. Per Key Vault in questa anteprima, Microsoft.KeyVault/vaults o Microsoft.KeyVault/vaults/secrets.
AttributeName Attributo specifico da valutare. In questa anteprima è name l'unico attributo supportato.
Operator Operatore di confronto. Vedere Operatori supportati.
Value Valore letterale da confrontare.

La versione della condizione deve essere impostata su 2.0. Per la grammatica completa, vedere Azure formato e sintassi della condizione di assegnazione di ruolo.

Operatori supportati

Azure Key Vault condizioni del controllo degli accessi in base al ruolo supportano tutti gli operatori di confronto delle stringhe definiti nel formato di condizione ABAC Azure. Per l'elenco completo degli operatori e il relativo comportamento, vedere Operatori di confronto tra stringhe.

Note

Azure operatori di confronto di stringhe ABAC includono varianti con distinzione tra maiuscole e minuscole, ma Key Vault nomi di insiemi di credenziali e nomi di oggetti non fanno distinzione tra maiuscole e minuscole. Di conseguenza, la corrispondenza con distinzione tra maiuscole e minuscole non si applica alle condizioni del controllo degli accessi in base al ruolo di Key Vault. Usare i valori minuscoli nelle condizioni: un valore contenente caratteri maiuscoli non corrisponde ad alcun insieme di credenziali o nome segreto.

azioni Azure Key Vault

È possibile applicare le condizioni del controllo degli accessi in base al ruolo ai seguenti Key Vault azioni di dati segreti. Ogni sottosezione descrive l'azione, l'oggetto DataAction sottostante, l'origine dell'attributo valutata (Resource o Request) e una condizione di esempio.

Ottenere il segreto

Proprietà Value
Nome visualizzato Ottenere il segreto
Description Consente di ottenere il valore di un segreto.
DataAction Microsoft.KeyVault/vaults/secrets/getSecret/action
Attributi della risorsa Nome segreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/getSecret/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'test-app'

Leggere i metadati dei segreti

Proprietà Value
Nome visualizzato Leggere i metadati dei segreti
Description Elenca o visualizza le proprietà di un segreto, ma non il relativo valore.
DataAction Microsoft.KeyVault/vaults/secrets/readMetadata/action
Attributi della risorsa Nome segreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/readMetadata/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'api-'

Avvertimento

Include readMetadata/action sia il recupero delle proprietà di un singolo segreto (che contiene un nome segreto) che l'elenco dei segreti in un insieme di credenziali (una chiamata di raccolta senza nome per segreto). Il controllo degli accessi in base al ruolo valuta una condizione per azione, non riga per riga rispetto ai risultati dell'elenco, pertanto una condizione nome segreto in readMetadata/action non riesce la chiamata all'elenco con un errore 403. L'attributo name non è presente nella richiesta di raccolta e non può corrispondere. Questo comportamento viene visualizzato nel pannello Segreti del portale come elenco vuoto.

Se si desidera che un'entità visualizzi ogni nome segreto nell'elenco, ma che apra solo i valori corrispondenti a un criterio, non controllare readMetadata/action. Concedere invece readMetadata/action in modo incondizionato e applicare la condizione secret-name a getSecret/action. Vedere l'esempio Limitare l'accesso in lettura ai segreti con un prefisso del nome .

Imposta segreto

Proprietà Value
Nome visualizzato Imposta segreto
Description Imposta il valore di un segreto. Se il segreto non esiste, viene creata la prima versione. In caso contrario, viene creata una nuova versione con il valore specificato.
DataAction Microsoft.KeyVault/vaults/secrets/setSecret/action
Attributi richiesta Nome segreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/setSecret/action'}) OR @Request[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'

Aggiornare il segreto

Proprietà Value
Nome visualizzato Aggiornare il segreto
Description Aggiorna gli attributi associati al segreto specificato.
DataAction Microsoft.KeyVault/vaults/secrets/update/action
Attributi della risorsa Nome segreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/update/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'

Eliminare un segreto

Proprietà Value
Nome visualizzato Eliminare un segreto
Description Elimina un segreto. Tutte le versioni vengono eliminate.
DataAction Microsoft.KeyVault/vaults/secrets/delete
Attributi della risorsa Nome segreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/delete'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'temp-'

Segreto di backup

Proprietà Value
Nome visualizzato Segreto di backup
Description Crea il file di backup di un segreto. Il file può essere usato per ripristinare il segreto in un insieme di credenziali delle chiavi della stessa sottoscrizione. Potrebbero essere applicate restrizioni.
DataAction Microsoft.KeyVault/vaults/secrets/backup/action
Attributi della risorsa Nome segreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/backup/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'critical-'

Ripristinare il segreto

Proprietà Value
Nome visualizzato Ripristinare il segreto
Description Ripristina un segreto e tutte le relative versioni da un file di backup generato da Key Vault.
DataAction Microsoft.KeyVault/vaults/secrets/restore/action
Attributi richiesta Nome segreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/restore/action'}) OR @Request[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'

Ripristinare il segreto

Proprietà Value
Nome visualizzato Ripristinare il segreto
Description Recupera un segreto eliminato. L'operazione esegue l'inversione dell'operazione di eliminazione ed è applicabile negli insiemi di credenziali abilitati per l'eliminazione temporanea.
DataAction Microsoft.KeyVault/vaults/secrets/recover/action
Attributi della risorsa Nome segreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/recover/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'

Ripulisci il segreto

Proprietà Value
Nome visualizzato Ripulisci il segreto
Description Elimina un segreto eliminato, rendendolo irreversibile.
DataAction Microsoft.KeyVault/vaults/secrets/purge/action
Attributi della risorsa Nome segreto
Example !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/purge/action'}) OR @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'old-'

Origini degli attributi

Gli attributi descrivono le proprietà valutate in fase di richiesta. Gli attributi delle risorse descrivono la risorsa a cui si accede. Gli attributi della richiesta di richiesta descrivono la richiesta in ingresso quando la risorsa potrebbe non esistere ancora (ad esempio, durante setSecret o restore).

Nome del vault

Usare questo attributo per definire l'ambito dell'accesso agli insiemi di credenziali delle chiavi i cui nomi corrispondono a un determinato modello. Quando si applica una condizione nell'ambito della sottoscrizione o del gruppo di risorse, Azure valuta il nome dell'insieme di credenziali per ogni insieme di credenziali a cui l'entità tenta di accedere.

Proprietà Value
Nome visualizzato Nome del vault
Description Nome dell'insieme di credenziali delle chiavi a cui si accede.
Attribute Microsoft.KeyVault/vaults:name
Origine attributo Resource
Tipo di attributo Stringa
Azioni applicabili Tutte le azioni dei dati segreti Key Vault (attributo globale)

Condizioni di esempio:

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

Nome segreto (risorsa)

Usare questo attributo quando il segreto esiste già in fase di valutazione.

Proprietà Value
Nome visualizzato Nome segreto
Description Nome del segreto a cui si accede.
Attribute Microsoft.KeyVault/vaults/secrets:name
Origine attributo Resource
Tipo di attributo Stringa
Azioni applicabili getSecret/action, readMetadata/action, update/action, deletebackup/action, , recover/actionpurge/action

Condizioni di esempio:

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

Nome segreto (richiesta)

Usare questo attributo quando il segreto potrebbe non esistere ancora in fase di valutazione, ad esempio durante la creazione o il ripristino.

Proprietà Value
Nome visualizzato Nome segreto (richiesta)
Description Nome di un segreto richiesto.
Attribute Microsoft.KeyVault/vaults/secrets:name
Origine attributo Richiedi
Tipo di attributo Stringa
Azioni applicabili setSecret/action, restore/action

Condizioni di esempio:

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

Ruoli che supportano le condizioni del controllo degli accessi in base al ruolo

È possibile applicare condizioni del controllo degli accessi in base al ruolo che includono Key Vault segreto dataActions. I ruoli che contengono solo azioni del piano di controllo (ad esempio Proprietario o Amministratore criteri) non supportano le condizioni del controllo degli accessi in base al ruolo perché Azure valuta le condizioni esclusivamente sulle operazioni del piano dati. In questa anteprima, nessun ruolo predefinito include una condizione preassegnata Key Vault controllo degli accessi in base al ruolo. La condizione viene creata quando si crea l'assegnazione di ruolo.

I ruoli predefiniti seguenti includono le azioni dei dati segreti e supportano le condizioni di controllo degli accessi in base al ruolo in questa anteprima. Per le definizioni e gli ID completi dei ruoli, vedere Azure ruoli predefiniti per le operazioni del piano dati Key Vault.

Ruolo Description ID Supporto delle condizioni
Amministratore di Key Vault Eseguire tutte le operazioni del data plane su un key vault e su tutti gli oggetti in esso contenuti. 00482a5a-887f-4fb3-b363-3b7fe8e74483 Attributi di risorsa e richiesta per le operazioni segrete
Responsabile dei Segreti di Key Vault Eseguire qualsiasi azione sui segreti. b86a8fe4-44ce-4948-aee5-eccb2c155cd7 Attributi delle risorse sulle operazioni di lettura e ciclo di vita; Richiedere attributi su setSecret e restore operazioni
Utente dei segreti di Key Vault Legge i contenuti dei segreti. 4633458b-17de-408a-b874-0445c86b69e6 Attributi delle risorse nelle operazioni di lettura dei segreti
Lettore di Key Vault Legge i metadati degli insiemi di credenziali e dei relativi oggetti. 21090545-7ca7-4776-b22c-e363652d74d2 Attributi delle risorse per readMetadata/action un singolo segreto. Una condizione secret-name qui blocca le chiamate all'elenco; vedere l'avviso in Leggere i metadati dei segreti.
Utente di certificati di Key Vault Legge i contenuti dei certificati. db79e9a7-68ee-4b58-9aeb-b90e7c24fcba Attributi delle risorse in getSecret e readMetadata (i certificati vengono recuperati tramite l'endpoint segreto: il nome del segreto è uguale al nome del certificato)
Ruoli personalizzati Qualsiasi definizione di ruolo personalizzata che include il segreto dataActions per Key Vault. - Dipende dal segreto dataActions incluso

Note

Solo i ruoli assegnati tramite Azure controllo degli accessi in base al ruolo (non i criteri di accesso dell'insieme di credenziali legacy) supportano le condizioni di controllo degli accessi in base al ruolo. L'insieme di credenziali delle chiavi deve avere il modello di autorizzazione impostato su Azure controllo degli accessi in base al ruolo. A partire dall'API versione 2026-02-01, Azure controllo degli accessi in base al ruolo è l'impostazione predefinita per gli insiemi di credenziali appena creati. Per altre informazioni, vedere Prepare per Key Vault API versione 2026-02-01 e successive.

Esempi di condizioni

Negli esempi seguenti vengono illustrati i modelli di controllo degli accessi in base al ruolo comuni per i segreti di Key Vault. Per altre informazioni sulla sintassi della condizione, vedere Azure formato e sintassi della condizione di assegnazione di ruolo.

Esempio: Limitare l'accesso in lettura ai segreti con un prefisso del nome

Consentire a un'entità di leggere solo i segreti i cui nomi iniziano con test-app:

  • Ruolo: Utente dei segreti di Key Vault
  • Ambito: risorsa dell'insieme di credenziali delle chiavi
  • Condizione:
(
  !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/getSecret/action'})
  OR
  (
    @Resource[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'test-app'
  )
)

Comportamento:

  • Consentito: lettura test-app-secret1di .
  • Negato (ForbiddenByRbac): lettura di test-db-password.

Esempio: Limitare l'accesso ai segreti in insiemi di credenziali specifici in base al prefisso del nome dell'insieme di credenziali

Consentire a un'entità di leggere i segreti solo negli insiemi di credenziali i cui nomi iniziano con kv-prod:

  • Ruolo: Utente dei segreti di Key Vault
  • Ambito: Sottoscrizione
  • Condizione:
@Resource[Microsoft.KeyVault/vaults:name] StringStartsWith 'kv-prod'

Comportamento:

  • Consentito: accesso a kv-prod-1.
  • Negato: accesso a test-kv.

Esempio: Limitare i segreti appena creati a un prefisso del nome

Consentire a un'entità di creare segreti solo quando il nome del segreto inizia con app-. Poiché il segreto non esiste ancora in fase di valutazione, usare l'attributo Request:

  • Ruolo: Key Vault Secret Officer
  • Ambito: risorsa dell'insieme di credenziali delle chiavi
  • Condizione:
(
  !(ActionMatches{'Microsoft.KeyVault/vaults/secrets/setSecret/action'})
  OR
  (
    @Request[Microsoft.KeyVault/vaults/secrets:name] StringStartsWith 'app-'
  )
)

Esempio: Combinare le condizioni dell'insieme di credenziali e del nome del segreto

Limitare un'entità per leggere solo i segreti che iniziano con api- negli insiemi di credenziali i cui nomi iniziano con kv-prod:

  • Ruolo: Utente dei segreti di Key Vault
  • Ambito: Sottoscrizione
  • Condizione:
(
  !(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-'
  )
)