Che cos'è il controllo degli accessi in base all'attributo di Azure?

Il controllo degli accessi in base all'attributo è un sistema di autorizzazione che definisce l'accesso in base agli attributi associati a entità di sicurezza, risorse e ambiente di una richiesta di accesso. Con il controllo degli accessi in base al ruolo è possibile concedere a un'entità di sicurezza l'accesso a una risorsa in base agli attributi. Il controllo degli accessi in base al ruolo di Azure fa riferimento all'implementazione del controllo degli accessi in base al ruolo per Azure.

Che cosa sono le condizioni di assegnazione di ruolo?

Il controllo degli accessi in base al ruolo di Azure è un sistema di autorizzazione che consente di gestire chi ha accesso alle risorse di Azure, le operazioni che possono eseguire con tali risorse e le aree a cui hanno accesso. Nella maggior parte dei casi, il controllo degli accessi in base al ruolo di Azure fornirà la gestione degli accessi necessaria usando definizioni di ruolo e assegnazioni di ruolo. In alcuni casi, tuttavia, potrebbe essere necessario fornire una gestione degli accessi più granulare o semplificare la gestione di centinaia di assegnazioni di ruolo.

Il controllo degli accessi in base al ruolo di Azure si basa sul controllo degli accessi in base al ruolo di Azure aggiungendo condizioni di assegnazione dei ruoli in base agli attributi nel contesto di azioni specifiche. Una condizione di assegnazione di ruolo è un controllo aggiuntivo che è possibile aggiungere facoltativamente all'assegnazione di ruolo per fornire un controllo di accesso più granulare. Una condizione filtra le autorizzazioni concesse come parte della definizione del ruolo e dell'assegnazione di ruolo. Ad esempio, è possibile aggiungere una condizione che richiede che un oggetto abbia un tag specifico per leggere l'oggetto. Non è possibile negare esplicitamente l'accesso a risorse specifiche usando condizioni.

Perché usare le condizioni?

Esistono tre vantaggi principali per l'uso delle condizioni di assegnazione di ruolo:

  • Fornire un controllo di accesso più granulare: un'assegnazione di ruolo usa una definizione di ruolo con azioni e azioni dati per concedere le autorizzazioni dell'entità di sicurezza. È possibile scrivere condizioni per filtrare tali autorizzazioni per un controllo di accesso più granulare. È anche possibile aggiungere condizioni a azioni specifiche. Ad esempio, è possibile concedere a John l'accesso in lettura ai BLOB nella sottoscrizione solo se i BLOB vengono contrassegnati come Project=Blue.
  • Ridurre il numero di assegnazioni di ruolo: ogni sottoscrizione di Azure ha attualmente un limite di assegnazione di ruolo. Esistono scenari che richiedono migliaia di assegnazioni di ruolo. Tutte queste assegnazioni di ruolo devono essere gestite. In questi scenari, è possibile aggiungere condizioni per usare un numero significativamente inferiore di assegnazioni di ruolo.
  • Usare attributi che hanno un significato aziendale specifico: le condizioni consentono di usare attributi che hanno un significato aziendale specifico per l'utente nel controllo di accesso. Alcuni esempi di attributi sono il nome del progetto, la fase di sviluppo software e i livelli di classificazione. I valori di questi attributi di risorsa sono dinamici e cambiano man mano che gli utenti si spostano tra team e progetti.

Scenari di esempio per le condizioni

Esistono diversi scenari in cui è possibile aggiungere una condizione all'assegnazione di ruolo. Di seguito sono riportati alcuni esempi.

  • Accesso in lettura ai BLOB con il tag Project=Cascade
  • I nuovi BLOB devono includere il tag Project=Cascade
  • I BLOB esistenti devono essere contrassegnati con almeno una chiave project o una chiave program
  • I BLOB esistenti devono essere contrassegnati con una chiave project e i valori Cascade, Baker o Skagit
  • Lettura, scrittura o eliminazione di BLOB in contenitori denominati blob-example-container
  • Accesso in lettura ai BLOB nei contenitori denominati blobs-example-container con un percorso di sola lettura
  • Accesso in scrittura ai BLOB nei contenitori denominati Contosocorp con un percorso di caricamento/contoso
  • Accesso in lettura ai BLOB con il tag Program=Alpine e un percorso dei log
  • Accesso in lettura ai BLOB con il tag Project=Baker e l'utente ha un attributo corrispondente Project=Baker
  • Accesso in lettura ai BLOB durante un intervallo di data/ora specifico.
  • Accesso in scrittura ai BLOB solo tramite un collegamento privato o da una subnet specifica.

Per altre informazioni su come creare questi esempi, vedere Condizioni di assegnazione di ruolo di Azure di esempio per Archiviazione BLOB.

Dove è possibile aggiungere condizioni?

Attualmente, le condizioni possono essere aggiunte alle assegnazioni di ruolo predefinite o personalizzate con azioni di archiviazione BLOB o dati di archiviazione code. Le condizioni vengono aggiunte allo stesso ambito dell'assegnazione di ruolo. Analogamente alle assegnazioni di ruolo, è necessario disporre Microsoft.Authorization/roleAssignments/write delle autorizzazioni per aggiungere una condizione.

Ecco alcuni degli attributi di archiviazione BLOB che è possibile usare nelle condizioni.

  • Account name
  • Tag indice del BLOB
  • Percorso BLOB
  • Prefisso BLOB
  • Nome contenitore
  • Nome dell'ambito di crittografia
  • È la versione corrente
  • Lo spazio dei nomi gerarchico è abilitato
  • È collegamento privato
  • Snapshot
  • ORA UTC (data e ora correnti in Coordinated Universal Time)
  • ID versione

Che aspetto ha una condizione?

È possibile aggiungere condizioni alle assegnazioni di ruolo nuove o esistenti. Di seguito è riportato il ruolo lettore di dati BLOB Archiviazione assegnato a un utente denominato Chandra nell'ambito di un gruppo di risorse. È stata aggiunta anche una condizione che consente solo l'accesso in lettura ai BLOB con il tag Project=Cascade.

Diagramma dell'assegnazione di ruolo con una condizione.

Se Chandra tenta di leggere un BLOB senza il tag Project=Cascade, l'accesso non sarà consentito.

Il diagramma dell'accesso non è consentito con una condizione.

Ecco l'aspetto della condizione nel portale di Azure:

Screenshot dell'editor di condizioni in portale di Azure che mostra la sezione dell'espressione di compilazione con i valori per i tag di indice BLOB.

Ecco l'aspetto della condizione nel codice:

(
    (
        !(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'
    )
)

Per altre informazioni sul formato delle condizioni, vedere Formato e sintassi della condizione di assegnazione dei ruoli di Azure.

Stato delle funzionalità della condizione

La tabella seguente elenca lo stato delle funzionalità della condizione:

Funzionalità Status Data
Usare gli attributi di ambiente in una condizione Disponibilità generale Aprile 2024
Aggiungere condizioni usando l'editor di condizioni nel portale di Azure Disponibilità generale Ottobre 2022
Aggiungere condizioni usando Azure PowerShell, l'interfaccia della riga di comando di Azure o l'API REST Disponibilità generale Ottobre 2022
Usare gli attributi delle risorse e delle richieste per combinazioni specifiche di risorse di archiviazione di Azure, tipi di attributi di accesso e livelli di prestazioni dell'account di archiviazione. Per altre informazioni, vedere Stato delle funzionalità della condizione in Archiviazione di Azure. Disponibilità generale Ottobre 2022
Usare attributi di sicurezza personalizzati in un'entità in una condizione Disponibilità generale Novembre 2023

Condizioni e Microsoft Entra PIM

È anche possibile aggiungere condizioni alle assegnazioni di ruolo idonee usando Microsoft Entra Privileged Identity Management (Microsoft Entra PIM) per le risorse di Azure. Con Microsoft Entra PIM, gli utenti finali devono attivare un'assegnazione di ruolo idonea per ottenere l'autorizzazione per eseguire determinate azioni. L'uso delle condizioni in Microsoft Entra PIM consente non solo di limitare l'accesso di un utente a una risorsa usando condizioni con granularità fine, ma anche di usare Microsoft Entra PIM per proteggerlo con un'impostazione associata al tempo, un flusso di lavoro di approvazione, un audit trail e così via. Per altre informazioni, vedere Assegnare ruoli delle risorse di Azure in Privileged Identity Management.

Terminologia

Per comprendere meglio il controllo degli accessi in base al ruolo di Azure e il controllo degli accessi in base al ruolo di Azure, è possibile fare riferimento all'elenco seguente di termini.

Termine Definizione
Controllo degli accessi in base all'attributo Sistema di autorizzazione che definisce l'accesso in base agli attributi associati a entità di sicurezza, risorse e ambiente. Con il controllo degli accessi in base al ruolo è possibile concedere a un'entità di sicurezza l'accesso a una risorsa in base agli attributi.
Controllo degli accessi in base al ruolo di Azure Fa riferimento all'implementazione del controllo degli accessi in base al ruolo per Azure.
condizione di assegnazione di ruolo Controllo aggiuntivo che è possibile aggiungere facoltativamente all'assegnazione di ruolo per fornire un controllo di accesso più granulare.
Attributo In questo contesto, una coppia chiave-valore, ad esempio Project=Blue, dove Project è la chiave dell'attributo e Blue è il valore dell'attributo. Attributi e tag sono sinonimi per scopi di controllo di accesso.
expression Istruzione in una condizione che restituisce true o false. Un'espressione ha il formato del valore dell'operatore dell'attributo<<><>.>

Limiti

Ecco alcuni dei limiti per le condizioni.

Conto risorse Limite Note
Numero di espressioni per condizione tramite l'editor di oggetti visivi 5 È possibile aggiungere più di cinque espressioni usando l'editor di codice

Problemi noti

Ecco i problemi noti relativi alle condizioni:

  • Se si usano Microsoft Entra Privileged Identity Management (PIM) e attributi di sicurezza personalizzati, Principal non viene visualizzato nell'origineattributo quando si aggiunge una condizione.

Passaggi successivi