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 utile comprendere quale modifica ha modificato una risorsa conforme in precedenza per renderla 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 di 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:

  1. Avviare il servizio Criteri di Azure nel portale di Azure facendo clic su Tutti i servizi e quindi cercando e selezionando Criteri.

  2. Nella pagina Panoramica o Conformità selezionare un criterio il cui stato di conformità sia Non conforme.

  3. Nella scheda Conformità risorse 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 statodi conformità non conforme. Quindi selezionare Visualizzare i dettagli sulla conformità.

    Screenshot of the View compliance details link on the Resource compliance tab.

  4. 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 è 12.0 mentre la definizione dei criteri è prevista 14.0. Se la risorsa non è conforme per più motivi, in questo riquadro vengono elencati tutti i motivi.

    Screenshot of the Compliance details pane and reasons for non-compliance that current value is 12 and target value is 14.

    Per una definizione di criteri auditIfNotExists o deployIfNotExists , 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 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": {
            ...
          }
        }
      }
    }
    

    Screenshot of Compliance details pane for ifNotExists including evaluated resource count.

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à

Le modalità resource manager e le modalità del provider di risorse hanno motivi diversi 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 dei 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 e minuscole. match o not notMatch
Il valore corrente deve corrispondere al valore di destinazione senza distinzione tra maiuscole e 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 e minuscole. notMatch o not match
Il valore corrente non deve corrispondere al valore di destinazione senza distinzione tra maiuscole e minuscole. notMatchInsensitively o not matchInsensitively
Non esistono risorse correlate corrispondenti ai dettagli dell'effetto nella definizione dei criteri. Risorsa del tipo definito in then.details.type e correlata alla risorsa definita nella parte se la regola dei criteri non esiste.

Criteri di Azure motivi di conformità della modalità provider di risorse

La tabella seguente esegue il mapping di ogni Microsoft.PolicyInsightscodice motivo della modalità provider di risorse alla relativa spiegazione corrispondente:

Codice motivo di 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 tentato di 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: definizione di criteri trovata 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.
AmbiguoPolicyEvaluationPaths Il contenuto della richiesta ha uno o più percorsi ambigui: '{0}' richiesti dai criteri: '{1}'.
InvalidResourceNameWildcardPosition Impossibile 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 Impossibile 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 di nome. Il numero di segmenti di nome deve essere uguale o minore del numero di segmenti di tipo (escluso lo spazio dei nomi del provider di risorse). Correggere la definizione dei criteri o rimuovere l'assegnazione dei criteri per sbloccare.
InvalidPolicyFieldPath Il percorso del campo '{0}' all'interno della definizione dei 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 Microsoft.Kubernetes.Datamotivo della modalitàprovider di risorse allo stato responsabile del modello di vincolo nella definizione dei criteri:

Motivo Descrizione del motivo del modello di vincolo
Vincolo/ModelloCreateFailed Impossibile creare la risorsa per una definizione di criteri con un vincolo o un modello che non corrisponde a un vincolo/modello esistente nel cluster in base al nome dei metadati della risorsa.
Vincolo/TemplateUpdateFailed Impossibile aggiornare il vincolo/modello per una definizione di criteri con un vincolo/modello corrispondente a un vincolo/modello esistente nel cluster in base al nome dei metadati della risorsa.
Vincolo/TemplateInstallFailed Impossibile 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 usando 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 (specificando 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 segnala come non conforme fino a quando l'errore non viene risolto nell'assegnazione dei criteri o nel componente aggiuntivo viene ripristinato automaticamente. Per altre informazioni sulla gestione dei conflitti, vedere Conflitti di modelli di vincolo.

Dettagli del componente per le modalità del 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à componente mostra altre informazioni specifiche della modalità Provider di risorse, ad esempio Nome componente, ID componente e Tipo.

Screenshot of Component Compliance dashboard and compliance details for assignments with a Resource Provider mode.

Dettagli di conformità per la configurazione guest

Per le definizioni dei criteri nella categoria Configurazione guest, potrebbero essere valutate più impostazioni all'interno della macchina virtuale ed è necessario visualizzare i dettagli per impostazione. Ad esempio, se si esegue il controllo per un elenco di impostazioni di sicurezza e solo uno di essi ha lo stato Non conforme, è necessario sapere quali impostazioni specifiche non sono conformi e perché.

Potrebbe anche non essere possibile accedere direttamente alla macchina virtuale, ma è necessario segnalare il motivo per cui la macchina virtuale non è conforme.

Azure portal

Iniziare seguendo gli stessi passaggi nella sezione Dettagli conformità per visualizzare i dettagli di conformità dei criteri.

Nella visualizzazione Dettagli conformità selezionare il collegamento Ultima risorsa valutata.

Screenshot of viewing the auditIfNotExists definition compliance details.

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.

Screenshot of the Guest Assignment compliance details.

Visualizzare i dettagli dell'assegnazione di configurazione su larga scala

La funzionalità di configurazione guest può essere usata al di fuori delle assegnazioni di Criteri di Azure. Ad esempio, Gestione automatica di Azure crea assegnazioni di configurazione guest oppure è possibile assegnare configurazioni quando si distribuiscono i computer.

Per visualizzare tutte le assegnazioni di configurazione guest nel tenant, nella portale di Azure aprire la pagina Assegnazioni guest. Per visualizzare informazioni dettagliate sulla conformità, selezionare ogni assegnazione usando il collegamento nella colonna Nome.

Screenshot of the Guest Assignment page.

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. Un rilevamento delle modifiche viene attivato quando vengono aggiunte, rimosse o modificate le proprietà di Azure Resource Manager.

  1. Avviare il servizio Criteri di Azure nel portale di Azure facendo clic su Tutti i servizi e quindi cercando e selezionando Criteri.

  2. Nella pagina Panoramica o Conformità selezionare un criterio con uno stato di conformità qualsiasi.

  3. Nella scheda Conformità risorse della pagina Conformità criteri selezionare una risorsa.

  4. Selezionare la scheda Cronologia modifiche (anteprima) nella pagina Conformità risorsa. Verrà visualizzato un elenco delle eventuali modifiche rilevate.

    Screenshot of the Change History tab and detected change times on Resource Compliance page.

  5. Selezionare una delle modifiche rilevate. Verrà visualizzato il diff visivo per la risorsa nella pagina Cronologia modifiche.

    Screenshot of the Change History Visual Diff of the before and after state of properties on the Change history page.

    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