Condividi tramite


Risolvere i problemi relativi alle condizioni di assegnazione dei ruoli di Azure

Problemi generali

Sintomo - Condizione non applicata

Causa 1

Le entità di sicurezza hanno una o più assegnazioni di ruolo nello stesso ambito o superiore.

Soluzione 1

Assicurarsi che le entità di sicurezza non dispongano di più assegnazioni di ruolo (con o senza condizioni) che concedono l'accesso alla stessa azione di dati che comporta la mancata applicazione delle condizioni. Per informazioni sulla logica di valutazione, vedere Come il controllo degli accessi in base al ruolo di Azure determina se un utente ha accesso a una risorsa.

Causa 2

L'assegnazione di ruolo ha più azioni che concedono un'autorizzazione e la condizione non ha come destinazione tutte le azioni. Ad esempio, è possibile creare un BLOB se sono presenti /blobs/write azioni di dati o /blobs/add/action . Se l'assegnazione di ruolo ha entrambe le azioni dati e ne viene eseguita una sola in una condizione, l'assegnazione di ruolo concederà l'autorizzazione per creare BLOB e ignorare la condizione.

Soluzione 2

Se l'assegnazione di ruolo ha più azioni che concedono un'autorizzazione, assicurarsi di avere come destinazione tutte le azioni pertinenti.

Causa 3

Quando si aggiunge una condizione a un'assegnazione di ruolo, l'applicazione della condizione può richiedere fino a 5 minuti. Quando si aggiunge una condizione, i provider di risorse (ad esempio Microsoft Archiviazione) ricevono una notifica dell'aggiornamento. I provider di risorse apportano immediatamente aggiornamenti alle cache locali per assicurarsi di avere le assegnazioni di ruolo più recenti. Questo processo viene completato in 1 o 2 minuti, ma può richiedere fino a 5 minuti.

Soluzione 3

Attendere 5 minuti e testare di nuovo la condizione.

Sintomo - Condizione non valida durante l'aggiunta di una condizione

Quando si tenta di aggiungere un'assegnazione di ruolo con una condizione, viene visualizzato un errore simile al seguente:

The given role assignment condition is invalid.

Causa 1

La conditionVersion proprietà è impostata su "1.0".

Soluzione 1

Impostare conditionVersion la proprietà su "2.0".

Causa 2

La condizione non è formattata correttamente.

Soluzione 2

Consente di risolvere eventuali problemi di formato o sintassi di condizione. In alternativa, aggiungere la condizione usando l'editor visivo nella portale di Azure.

Problemi nell'editor visivo

Sintomo : l'editor di condizioni viene visualizzato quando si modifica una condizione

È stata creata una condizione usando un modello descritto in Delegare la gestione delle assegnazioni di ruolo di Azure ad altri utenti con condizioni. Quando si tenta di modificare la condizione, viene visualizzato l'editor di condizioni avanzate.

Screenshot dell'editor di condizioni che mostra le opzioni per modificare una condizione.

Quando la condizione è stata modificata in precedenza, è stata modificata usando il modello di condizione.

Screenshot dei modelli di condizione con il modello corrispondente abilitato.

Causa

La condizione non corrisponde al modello per il modello.

Soluzione 1

Modificare la condizione in modo che corrisponda a uno dei modelli di modello seguenti.

Template Condizione
Vincolare i ruoli Esempio: Vincolare i ruoli
Vincolare ruoli e tipi di entità Esempio: Vincolare ruoli e tipi di entità
Vincolare ruoli e entità Esempio: Vincolare ruoli e gruppi specifici
Consenti tutti tranne ruoli specifici Esempio: consentire la maggior parte dei ruoli, ma non consentire ad altri di assegnare ruoli

Soluzione 2

Eliminare la condizione e ricrearla usando la procedura descritta in Delegare la gestione delle assegnazioni di ruolo di Azure ad altri utenti con condizioni.

Sintomo : l'entità non viene visualizzata nell'origine attributo

Quando si tenta di aggiungere un'assegnazione di ruolo con una condizione, Principal non viene visualizzato nell'elenco Origine attributi.

Screenshot che mostra l'entità nell'elenco origine attributo durante l'aggiunta di una condizione.

Viene invece visualizzato il messaggio:

To use principal (user) attributes, you must have Microsoft Entra permissions (such as the [Attribute Assignment Administrator](../active-directory/roles/permissions-reference.md#attribute-assignment-administrator) role) and custom security attributes defined in Microsoft Entra ID.

Causa

Non si soddisfano i prerequisiti. Per usare gli attributi principal, è necessario disporre degli elementi seguenti:

  • Autorizzazioni di Microsoft Entra per l'utente connesso per leggere almeno un set di attributi
  • Attributi di sicurezza personalizzati definiti in Microsoft Entra ID

Soluzione

  1. Aprire Gli attributi di sicurezza personalizzati di Microsoft Entra ID>.

    Se viene visualizzata la pagina Attività iniziali , non si dispone delle autorizzazioni necessarie per leggere almeno un set di attributi o attributi di sicurezza personalizzati non ancora definiti.

    Screenshot che mostra la pagina Attività iniziali degli attributi di sicurezza personalizzati.

  2. Se sono stati definiti attributi di sicurezza personalizzati, assegnare uno dei ruoli seguenti nell'ambito del tenant o nell'ambito del set di attributi. Per altre informazioni, vedere Gestire l'accesso agli attributi di sicurezza personalizzati in Microsoft Entra ID.

    Importante

    Per impostazione predefinita, Global Amministrazione istrator e altri ruoli di amministratore non dispongono delle autorizzazioni per leggere, definire o assegnare attributi di sicurezza personalizzati.

  3. Se gli attributi di sicurezza personalizzati non sono ancora stati definiti, assegnare il ruolo Definizione attributo Amministrazione istrator nell'ambito del tenant e aggiungere attributi di sicurezza personalizzati. Per altre informazioni, vedere Aggiungere o disattivare attributi di sicurezza personalizzati in Microsoft Entra ID.

    Al termine, dovrebbe essere possibile leggere almeno un set di attributi.

    Screenshot che mostra l'attributo che imposta l'utente può leggere.

    L'entità dovrebbe ora essere visualizzata nell'elenco Origine attributi quando si aggiunge un'assegnazione di ruolo con una condizione.

Sintomo: l'entità non viene visualizzata nell'origine attributo quando si usa PIM

Quando si tenta di aggiungere un'assegnazione di ruolo con una condizione usando Microsoft Entra Privileged Identity Management (PIM), l'entità non viene visualizzata nell'elenco Origine attributi.

Screenshot che mostra l'entità nell'elenco origine attributo quando si aggiunge una condizione usando Privileged Identity Management.

Causa

PIM attualmente non supporta l'uso dell'attributo principal in una condizione di assegnazione di ruolo.

Messaggi di errore nell'editor visivo

Sintomo - Condizione non riconosciuta

Dopo aver usato l'editor di codice, passare all'editor visivo e ottenere un messaggio simile al seguente:

The current expression cannot be recognized. Switch to the code editor to edit the expression or delete the expression and add a new one.

Causa

Aggiornamenti sono state apportate alla condizione che l'editor visivo non è in grado di analizzare.

Soluzione

Consente di risolvere eventuali problemi di formato o sintassi di condizione. In alternativa, è possibile eliminare la condizione e riprovare.

Sintomo : l'attributo non applica l'errore per la condizione salvata in precedenza

Quando si apre una condizione salvata in precedenza nell'editor visivo, viene visualizzato il messaggio seguente:

Attribute does not apply for the selected actions. Select a different set of actions.

Causa

Nel maggio 2022 l'azione Leggi un BLOB è stata modificata rispetto al formato seguente:

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})

Per escludere la Blob.List sottooperazione:

!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})

Se è stata creata una condizione con l'azione Lettura di un BLOB prima di maggio 2022, è possibile che venga visualizzato questo messaggio di errore nell'editor visivo.

Soluzione

Aprire il riquadro Selezionare un'azione e selezionare nuovamente l'azione Leggi un BLOB .

Sintomo : l'attributo non applica l'errore

Quando si seleziona una o più azioni nell'editor visivo con un'espressione esistente, viene visualizzato il messaggio seguente e l'attributo selezionato in precedenza viene rimosso:

Attribute does not apply for the selected actions. Select a different set of actions.

Causa

L'attributo selezionato in precedenza non si applica più alle azioni attualmente selezionate.

Soluzione 1

Nella sezione Aggiungi azione selezionare un'azione che si applica all'attributo selezionato. Per un elenco delle azioni di archiviazione supportate da ogni attributo di archiviazione, vedere Azioni e attributi per le condizioni di assegnazione dei ruoli di Azure per Archiviazione BLOB di Azure e Azioni e attributi per le condizioni di assegnazione dei ruoli di Azure per le code di Azure.

Soluzione 2

Nella sezione Espressione di compilazione selezionare un attributo applicabile alle azioni attualmente selezionate. Per un elenco degli attributi di archiviazione supportati da ogni azione di archiviazione, vedere Azioni e attributi per le condizioni di assegnazione dei ruoli di Azure per Archiviazione BLOB di Azure e Azioni e attributi per le condizioni di assegnazione dei ruoli di Azure per le code di Azure.

Sintomo: l'attributo non si applica in questo avviso di contesto

Quando si apportano modifiche nell'editor di codice e quindi si passa all'editor visivo, viene visualizzato il messaggio seguente e l'attributo selezionato in precedenza viene rimosso:

Attribute does not apply in this context. Use a different role assignment scope or remove the expression.

Causa

L'attributo specificato non è disponibile nell'ambito corrente, ad esempio l'uso Version ID in un account di archiviazione con spazio dei nomi gerarchico abilitato.

Soluzione

Se si vuole usare l'attributo attualmente specificato, creare la condizione di assegnazione di ruolo in un ambito diverso, ad esempio l'ambito del gruppo di risorse. In alternativa, rimuovere e ricreare l'espressione usando le azioni attualmente selezionate.

Sintomo - L'attributo non viene riconosciuto

Quando si apportano modifiche nell'editor di codice e quindi si passa all'editor visivo, viene visualizzato il messaggio seguente e l'attributo selezionato in precedenza viene rimosso:

Attribute is not recognized. Select a valid attribute or remove the expression.

Causa

L'attributo specificato non viene riconosciuto, probabilmente a causa di un errore di digitato.

Soluzione

Nell'editor di codice correggere l'errore di digitatura. In alternativa, rimuovere l'espressione esistente e usare l'editor visivo per selezionare un attributo.

Sintomo - Il valore dell'attributo non è valido

Quando si apportano modifiche nell'editor di codice e quindi si passa all'editor visivo, viene visualizzato il messaggio seguente e l'attributo selezionato in precedenza viene rimosso:

Attribute value is invalid. Select another attribute or value.

Causa

Il lato destro dell'espressione contiene un attributo o un valore non valido.

Soluzione

Usare l'editor visivo per selezionare un attributo o specificare un valore.

Sintomo - Nessun errore selezionato per azioni

Quando si rimuovono tutte le azioni nell'editor visivo, viene visualizzato il messaggio seguente:

No actions selected. Select one or more actions to edit expressions.

Causa

Esiste un'espressione esistente, ma non è stata selezionata alcuna azione come destinazione.

Soluzione

Nella sezione Aggiungi azione aggiungere una o più azioni di destinazione dell'espressione.

Sintomo - Nessun errore disponibile per le opzioni

Quando si tenta di aggiungere un'espressione, viene visualizzato il messaggio seguente:

No options available

Causa

È stata selezionata la destinazione di più azioni e non sono presenti attributi che si applicano a tutte le azioni attualmente selezionate.

Soluzione

Nella sezione Aggiungi azione selezionare un minor numero di azioni da impostare come destinazione. Per impostare come destinazione le azioni rimosse, aggiungere più condizioni.

Sintomo - ID definizione del ruolo non trovato

Quando si tenta di aggiungere un'espressione, viene visualizzato il messaggio seguente:

Cannot find built-in or custom role definitions with IDs: <role IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.

Causa

Uno o più ID definizione di ruolo che si è tentato di aggiungere per l'attributo ID definizione ruolo non è stato trovato o non ha il formato GUID corretto: 00000000-0000-0000-0000-000000000000.

Soluzione

Usare l'editor di condizioni per selezionare il ruolo. Se di recente è stato aggiunto il ruolo personalizzato, aggiornare la pagina o disconnettersi e accedere di nuovo.

Sintomo - ID entità non trovati

Quando si tenta di aggiungere un'espressione, viene visualizzato il messaggio seguente:

Cannot find users, groups, or service principals in Azure Active Directory with principal IDs: <principal IDs>. These IDs were removed. Check that the IDs are valid and try to add again. You can also refresh the page or sign out and sign in again.

Causa

Uno o più ID entità che si è tentato di aggiungere per l'attributo PRINCIPAL ID non è stato trovato o non ha il formato GUID corretto: 00000000-0000-0000-0000-000000000000.

Soluzione

Usare l'editor di condizioni per selezionare l'entità. Se l'entità è stata aggiunta di recente, aggiornare la pagina o disconnettersi e accedere di nuovo.

Messaggi di errore in Azure PowerShell

Sintomo : l'attributo della risorsa non è un errore valido

Quando si tenta di aggiungere un'assegnazione di ruolo con una condizione usando Azure PowerShell, viene visualizzato un errore simile al seguente:

New-AzRoleAssignment : Resource attribute
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

Causa

Se la condizione include un segno di dollaro ($), è necessario anteporre un prefisso (').

Soluzione

Aggiungere un collo di schiena (') prima di ogni segno di dollaro. Di seguito è riportato un esempio. Per altre informazioni sulle regole per le virgolette in PowerShell, vedere Informazioni sulle regole di virgolette.

$condition = "((!(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`$>] StringEquals 'Cascade'))"

Sintomo - Errore durante la copia e incolla di una condizione

Causa

Se si usa PowerShell e si copia una condizione da un documento, potrebbero includere caratteri speciali che causano l'errore seguente. Alcuni editor, ad esempio Microsoft Word, aggiungono caratteri di controllo durante la formattazione del testo che non viene visualizzato.

The given role assignment condition is invalid.

Soluzione

Se è stata copiata una condizione da un editor di testo RTF e si è certi che la condizione sia corretta, eliminare tutti gli spazi e restituire e quindi aggiungere nuovamente gli spazi pertinenti. In alternativa, usare un editor di testo normale o un editor di codice, ad esempio Visual Studio Code.

Messaggi di errore nell'interfaccia della riga di comando di Azure

Sintomo : l'attributo della risorsa non è un errore valido

Quando si tenta di aggiungere un'assegnazione di ruolo con una condizione usando l'interfaccia della riga di comando di Azure, viene visualizzato un errore simile al seguente:

Resource attribute Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$> is not valid.

Causa

Se la condizione include un segno di dollaro ($), è necessario anteporre una barra rovesciata (\).

Soluzione

Aggiungere una barra rovesciata (\) prima di ogni segno di dollaro. Di seguito è riportato un esempio. Per altre informazioni sulle regole per le virgolette in Bash, vedere Virgolette doppie.

condition="((!(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\$>] StringEquals 'Cascade'))"

Sintomo - Errore di argomenti non riconosciuti

Quando si tenta di aggiungere un'assegnazione di ruolo con una condizione usando l'interfaccia della riga di comando di Azure, viene visualizzato un errore simile al seguente:

az: error: unrecognized arguments: --description {description} --condition {condition} --condition-version 2.0

Causa

È probabile che si usi una versione precedente dell'interfaccia della riga di comando di Azure che non supporta i parametri delle condizioni di assegnazione dei ruoli.

Soluzione

Eseguire l'aggiornamento alla versione più recente dell'interfaccia della riga di comando di Azure (2.18 o versione successiva). Per altre informazioni, vedere Installare l'interfaccia della riga di comando di Azure.

Sintomo - Errore durante l'assegnazione di una stringa di condizione a una variabile in Bash

Quando si tenta di assegnare una stringa di condizione a una variabile in Bash, viene visualizzato il bash: !: event not found messaggio.

Causa

In Bash, se è abilitata l'espansione della cronologia, è possibile che venga visualizzato il messaggio bash: !: event not found a causa del punto esclamativo (!).

Soluzione

Disabilitare l'espansione della cronologia con il comando set +H. Per abilitare nuovamente l'espansione della cronologia, usare set -H.

Passaggi successivi