Determinare le cause della non conformità
Quando si determina che una risorsa di Azure non è conforme a una regola dei criteri, è utile comprendere a quale parte della regola la risorsa non è conforme. È anche importante conoscere quale modifica ha trasformato una risorsa precedentemente conforme in una risorsa non conforme. È possibile trovare queste informazioni in due modi:
Dettagli di conformità
Quando una risorsa non è conforme, è possibile trovare i dettagli di conformità della risorsa nella pagina Conformità dei criteri. Il riquadro dei dettagli di conformità include le informazioni seguenti:
- Dettagli della risorsa, ad esempio nome, tipo, posizione e ID risorsa.
- Stato di conformità e timestamp dell'ultima valutazione per l'assegnazione dei criteri corrente.
- Elenco dei motivi per cui la risorsa non è conforme.
Importante
Poiché i dettagli di conformità per una risorsa Non conforme indicano il valore corrente delle proprietà di tale risorsa, è necessario che l'utente disponga dell'operazione di lettura per la proprietà type della risorsa. Ad esempio, se la risorsa Non conforme è Microsoft.Compute/virtualMachines
, l'utente deve avere l'operazione Microsoft.Compute/virtualMachines/read
. Se l'utente non dispone dell'operazione necessaria, viene visualizzato un errore di accesso.
Per visualizzare i dettagli di conformità, attenersi alla procedura seguente:
Avviare il servizio Criteri di Azure nel portale di Azure facendo clic su Tutti i servizi e quindi cercando e selezionando Criteri.
Nella pagina Panoramica o Conformità selezionare un criterio il cui stato di conformità sia Non conforme.
Nella scheda Conformità risorsa della pagina Conformità criteri selezionare e tenere premuto (o fare clic con il pulsante destro del mouse) oppure selezionare i puntini di sospensione di una risorsa in uno stato di conformità Non conforme. Quindi selezionare Visualizzare i dettagli sulla conformità.
Il riquadro Dettagli conformità visualizza le informazioni della valutazione più recente della risorsa rispetto all'assegnazione dei criteri corrente. In questo esempio il campo
Microsoft.Sql/servers/version
risulta essere 12.0 mentre la definizione di criteri si aspettava 14.0. Se la risorsa non è conforme per più motivi, in questo riquadro vengono elencati tutti i motivi.Per una definizione di criteri
auditIfNotExists
odeployIfNotExists
, i dettagli includono la proprietà details.type e le eventuali proprietà facoltative. Per un elenco, vedere Proprietà di AuditIfNotExists e Proprietà di DeployIfNotExists. Ultima risorsa valutata collega a una risorsa correlata della sezione dei dettagli della definizione.Definizione parziale di
deployIfNotExists
di esempio:{ "if": { "field": "type", "equals": "[parameters('resourceType')]" }, "then": { "effect": "deployIfNotExists", "details": { "type": "Microsoft.Insights/metricAlerts", "existenceCondition": { "field": "name", "equals": "[concat(parameters('alertNamePrefix'), '-', resourcegroup().name, '-', field('name'))]" }, "existenceScope": "subscription", "deployment": { ... } } } }
Nota
Per proteggere i dati, quando il valore di una proprietà è segreto, il valore corrente visualizza gli asterischi.
Questi dettagli spiegano il motivo per cui una risorsa non è attualmente conforme, ma non indicano quando è stata apportata alla risorsa la modifica che l'ha resa non conforme. Per queste informazioni, vedere Cronologia modifiche (anteprima).
Motivi di conformità
Ogni modalità Resource Manager e modalità provider di risorse ha diversi motivi per la mancata conformità.
Motivi generali per la conformità della modalità Resource Manager
La tabella seguente esegue il mapping di ogni motivo della modalità Resource Manager alla condizione responsabile nella definizione di criteri:
Motivo | Condizione |
---|---|
Il valore corrente deve contenere il valore di destinazione come chiave. | containsKey o not notContainsKey |
Il valore corrente deve contenere il valore di destinazione. | contains o not notContains |
Il valore corrente deve essere uguale al valore di destinazione. | equals o not notEquals |
Il valore corrente deve essere minore del valore di destinazione. | less o not greaterOrEquals |
Il valore corrente deve essere maggiore o uguale al valore di destinazione. | greaterOrEquals o not less |
Il valore corrente deve essere maggiore del valore di destinazione. | greater o not lessOrEquals |
Il valore corrente deve essere minore o uguale al valore di destinazione. | lessOrEquals o not greater |
Il valore corrente deve esistere. | esiste |
Il valore corrente deve essere nel valore di destinazione. | in o not notIn |
Il valore corrente deve essere uguale al valore di destinazione. | like o not notLike |
Il valore corrente deve corrispondere al valore di destinazione con distinzione tra maiuscole/minuscole. | match o not notMatch |
Il valore corrente deve corrispondere al valore di destinazione senza distinzione tra maiuscole/minuscole. | matchInsensitively o not notMatchInsensitively |
Il valore corrente non deve contenere il valore di destinazione come chiave. | notContainsKey o not containsKey |
Il valore corrente non deve contenere il valore di destinazione. | notContains o not contains |
Il valore corrente non deve essere uguale al valore di destinazione. | notEquals o not equals |
Il valore corrente non deve esistere. | not exists |
Il valore corrente non deve essere nel valore di destinazione. | notIn o not in |
Il valore corrente non deve essere uguale al valore di destinazione. | notLike o not like |
Il valore corrente non deve corrispondere al valore di destinazione con distinzione tra maiuscole/minuscole. | notMatch o not match |
Il valore corrente non deve corrispondere al valore di destinazione senza distinzione tra maiuscole/minuscole. | notMatchInsensitively o not matchInsensitively |
Non esistono risorse correlate corrispondenti ai dettagli dell'effetto nella definizione dei criteri. | Non esiste una risorsa del tipo definito in then.details.type e correlata alla risorsa definita nella parte if della regola dei criteri. |
Motivi di conformità della modalità provider di risorse di Criteri di Azure
La tabella seguente esegue il mapping di ogni codice motivo della Microsoft.PolicyInsights
modalità provider di risorse alla spiegazione corrispondente:
Codice motivo conformità | Messaggio di errore e spiegazione |
---|---|
NonModifiablePolicyAlias | NonModifiableAliasConflict: l'alias "{alias}" non è modificabile nelle richieste usando la versione API "{apiVersion}". Questo errore si verifica quando una richiesta usa una versione dell'API in cui l'alias non supporta l'effetto "modify" o supporta solo l'effetto "modify" con un tipo di token diverso. |
AppendPoliciesNotApplicable | AppendPoliciesUnableToAppend: gli alias "{ alias }" non sono modificabili nelle richieste tramite la versione API "{ apiVersion }". Ciò può verificarsi nelle richieste che usano versioni API per cui gli alias non supportano l'effetto "modify" o supportano l'effetto "modify" con un tipo di token diverso. |
ConflictingAppendPolicies | ConflictingAppendPolicies: sono state trovate assegnazioni di criteri in conflitto che modificano il campo "{notApplicableFields}". Identificatori dei criteri: "{policy}". Contattare l'amministratore della sottoscrizione per aggiornare le assegnazioni dei criteri. |
AppendPoliciesFieldsExist | AppendPoliciesFieldsExistWithDifferentValues: le assegnazioni dei criteri hanno provato ad accodare campi già esistenti nella richiesta con valori diversi. Campi: "{existingFields}". Identificatori dei criteri: "{policy}". Contattare l'amministratore della sottoscrizione per aggiornare i criteri. |
AppendPoliciesUndefinedFields | AppendPoliciesUndefinedFields: è stata trovata una definizione di criteri che fa riferimento a una proprietà di campo non definita per la versione dell'API "{apiVersion}". Campi: "{nonExistingFields}". Identificatori dei criteri: "{policy}". Contattare l'amministratore della sottoscrizione per aggiornare i criteri. |
MissingRegistrationForType | MissingRegistrationForResourceType: la sottoscrizione non è registrata per il tipo di risorsa "{ResourceType}". Verificare che il tipo di risorsa esista e che il tipo di risorsa sia registrato. |
AmbiguousPolicyEvaluationPaths | Il contenuto della richiesta contiene uno o più percorsi ambigui "{0}" richiesti dai criteri "{1}". |
InvalidResourceNameWildcardPosition | Non è stato possibile valutare l'assegnazione di criteri "{0}" associata alla definizione di criteri "{1}". Il nome della risorsa "{2}" all'interno di una condizione ifNotExists contiene il carattere jolly "?" in una posizione non valida. I caratteri jolly possono trovarsi solo alla fine del nome in un segmento da soli, ad esempio TopLevelResourceName/?. Correggere il criterio o rimuovere l'assegnazione dei criteri per sbloccare. |
TooManyResourceNameSegments | Non è stato possibile valutare l'assegnazione di criteri "{0}" associata alla definizione di criteri "{1}". Il nome della risorsa "{2}" all'interno di una condizione ifNotExists contiene troppi segmenti nome. Il numero di segmenti di nome deve essere uguale o inferiore a quello dei segmenti di tipo, escluso lo spazio dei nomi del provider di risorse. Correggere la definizione del criterio o rimuovere l'assegnazione di criteri per sbloccare. |
InvalidPolicyFieldPath | Il percorso del campo "{0}" all'interno della definizione di criteri non è valido. I percorsi dei campi non devono contenere segmenti vuoti. Possono contenere solo caratteri alfanumerici, ad eccezione del carattere "." per la suddivisione dei segmenti e la sequenza di caratteri "[*]" per accedere alle proprietà della matrice. |
Motivi di conformità della modalità provider di risorse del servizio Azure Kubernetes
La tabella seguente esegue il mapping di ogni motivo della Microsoft.Kubernetes.Data
modalità provider di risorse allo stato responsabile del modello di vincolo nella definizione di criteri:
Motivo | Descrizione del motivo del modello di vincolo |
---|---|
Constraint/TemplateCreateFailed | Non è stato possibile creare la risorsa per una definizione di criteri con un vincolo o un modello che non corrisponde a un vincolo o modello esistente nel cluster in base al nome dei metadati della risorsa. |
Constraint/TemplateUpdateFailed | Non è stato possibile aggiornare il vincolo o il modello per una definizione di criteri con un vincolo o un modello che corrisponde a un vincolo o modello esistente nel cluster in base al nome dei metadati della risorsa. |
Constraint/TemplateInstallFailed | Non è stato possibile compilare il vincolo o il modello e non è stato possibile installarlo nel cluster per l'operazione di creazione o aggiornamento. |
ConstraintTemplateConflicts | Il modello presenta un conflitto con una o più definizioni di criteri che usano lo stesso nome modello con un'origine diversa. |
ConstraintStatusStale | Esiste uno stato "Audit" esistente, ma Gatekeeper non ha eseguito un controllo nell'ultima ora. |
ConstraintNotProcessed | Non esiste alcuno stato e Gatekeeper non ha eseguito un controllo nell'ultima ora. |
InvalidConstraint/Template | La risorsa è stata rifiutata a causa di uno dei motivi seguenti: contenuto Rego del modello di vincolo non valido, YAML non valido o mancata corrispondenza del tipo di parametro tra vincolo e modello di vincolo (viene specificato un valore stringa quando è previsto un numero intero). |
Nota
Per le assegnazioni di criteri esistenti e i modelli di vincolo già presenti nel cluster, se il vincolo/modello ha esito negativo, il cluster viene protetto mantenendo il vincolo/modello esistente. Il cluster risulta non conforme fino a quando l'errore non viene risolto nell'assegnazione dei criteri o il componente aggiuntivo viene ripristinato automaticamente. Per altre informazioni sulla gestione dei conflitti, vedere Conflitti di modelli di vincolo.
Dettagli del componente per le modalità provider di risorse
Per le assegnazioni con una modalità provider di risorse, selezionare la risorsa Non conforme per visualizzare i record di conformità dei componenti. La scheda Conformità del componente mostra altre informazioni specifiche per la modalità provider di risorse, ad esempio Nome componente, ID componentee Tipo.
Dettagli di conformità per la configurazione guest
Per le definizioni di criteri nella categoria Configurazione guest, è possibile che vengano valutate più impostazioni nella macchina virtuale e che sia necessario visualizzare i dettagli per ogni impostazione. Ad esempio, se si esegue il controllo per un elenco di impostazioni di protezione e solo uno di essi ha lo stato Non conforme, è necessario conoscere quali impostazioni specifiche non sono conformi e perché.
Potrebbe anche non essere possibile accedere direttamente alla macchina virtuale, ma è necessario segnalare perché la macchina virtuale è Non conforme.
Azure portal
Iniziare seguendo gli stessi passaggi nella sezione Dettagli conformità per visualizzare i dettagli di conformità dei criteri.
Nel riquadro Dettagli conformità selezionare il collegamento Ultima risorsa valutata.
Nella pagina Assegnazione guest vengono visualizzati tutti i dettagli di conformità disponibili. Ogni riga della vista rappresenta una valutazione eseguita all'interno del computer. Nella colonna Motivo viene visualizzata una frase che descrive il motivo per cui l'assegnazione guest è Non conforme. Se ad esempio si controllano i criteri password, nella colonna Motivo verrà visualizzato il testo che include il valore corrente per ogni impostazione.
Visualizzare i dettagli dell'assegnazione di configurazione su larga scala
La funzionalità di configurazione guest può essere usata all'esterno delle assegnazioni di Criteri di Azure. Ad esempio, Gestione automatica di Azure crea assegnazioni di configurazione guest oppure è possibile assegnare configurazioni quando si distribuiscono computer.
Per visualizzare tutte le assegnazioni di configurazione guest nel tenant, nel portale di Azure aprire la pagina Assegnazioni guest. Per visualizzare informazioni dettagliate sulla conformità, selezionare ogni assegnazione usando il collegamento nella colonna Nome.
Cronologia modifiche (anteprima)
La nuova anteprima pubblica include gli ultimi 14 giorni di cronologia delle modifiche per tutte le risorse di Azure che supportano l'eliminazione in modalità completa. La cronologia modifiche fornisce informazioni dettagliate su quando è stata rilevata una modifica e offre un diff visivo per ogni modifica. Viene attivato un rilevamento delle modifiche ogni volta che vengono aggiunte, rimosse o modificate le proprietà di Azure Resource Manager.
Avviare il servizio Criteri di Azure nel portale di Azure facendo clic su Tutti i servizi e quindi cercando e selezionando Criteri.
Nella pagina Panoramica o Conformità selezionare un criterio con uno stato di conformità qualsiasi.
Nella scheda Conformità risorsa della pagina Conformità dei criteri selezionare una risorsa.
Selezionare la scheda Cronologia modifiche (anteprima) nella pagina Conformità risorsa. Verrà visualizzato un elenco delle eventuali modifiche rilevate.
Selezionare una delle modifiche rilevate. Verrà visualizzato il diff visivo per la risorsa nella pagina Cronologia modifiche.
Il diff visivo facilita l'identificazione delle modifiche di una risorsa. Le modifiche rilevate potrebbero non essere correlate allo stato di conformità corrente della risorsa.
I dati della cronologia delle modifiche vengono forniti da Azure Resource Graph. Per eseguire una query su queste informazioni all'esterno del portale di Azure, vedere Ottenere le modifiche delle risorse.
Passaggi successivi
- Vedere gli esempi in Esempi di Criteri di Azure.
- Vedere la struttura delle definizioni di Criteri di Azure.
- Leggere Informazioni sugli effetti di Criteri.
- Vedere come creare criteri a livello di codice.
- Leggere le informazioni su come ottenere dati sulla conformità.
- Informazioni su come correggere le risorse non conformi.
- Rivedere le caratteristiche di un gruppo di gestione illustrate in Organizzare le risorse con i gruppi di gestione di Azure.