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.
Quando la condizione è stata modificata in precedenza, è stata modificata usando il modello di condizione.
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.
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
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.
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.
- Lettore di definizioni di attributi
- Lettore assegnazione attributi
- Definizione dell'attributo Amministrazione istrator
- Amministratore assegnazione di attributi
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.
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.
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.
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
.