Determinare le cause di non conformitàDetermine causes of non-compliance

Quando una risorsa di Azure viene determinata come non conforme a una regola dei criteri, è utile comprendere la parte della regola con la quale la risorsa non è conforme.When an Azure resource is determined to be non-compliant to a policy rule, it's helpful to understand which portion of the rule the resource isn't compliant with. È inoltre utile comprendere quale modifica ha modificato una risorsa conforme in precedenza per renderla non conforme.It's also useful to understand what change altered a previously compliant resource to make it non-compliant. Sono disponibili due modi per trovare queste informazioni:There are two ways to find this information:

Dettagli conformitàCompliance details

Quando una risorsa non è conforme, i dettagli di conformità per tale risorsa sono disponibili nella pagina conformità criteri .When a resource is non-compliant, the compliance details for that resource are available from the Policy compliance page. Il riquadro dettagli conformità include le informazioni seguenti:The compliance details pane includes the following information:

  • Dettagli delle risorse, ad esempio nome, tipo, posizione e ID risorsaResource details such as name, type, location, and resource ID
  • Stato di conformità e timestamp dell'ultima valutazione per l'assegnazione di criteri correnteCompliance state and timestamp of the last evaluation for the current policy assignment
  • Elenco di motivi per la mancata conformità delle risorseA list of reasons for the resource non-compliance

Importante

Poiché i dettagli di conformità per una risorsa non conforme mostrano il valore corrente delle proprietà di tale risorsa, l'utente deve avere un'operazione di lettura per il tipo di risorsa.As the compliance details for a Non-compliant resource shows the current value of properties on that resource, the user must have read operation to the type of resource. Ad esempio, se la risorsa non conforme è Microsoft. Compute/virtualMachines , l'utente deve disporre dell'operazione Microsoft. Compute/virtualMachines/Read .For example, if the Non-compliant resource is Microsoft.Compute/virtualMachines then the user must have the Microsoft.Compute/virtualMachines/read operation. Se l'utente non ha l'operazione necessaria, viene visualizzato un errore di accesso.If the user doesn't have the needed operation, an access error is displayed.

Per visualizzare i dettagli di conformità, attenersi alla procedura seguente:To view the compliance details, follow these steps:

  1. Avviare il servizio Criteri di Azure nel portale di Azure facendo clic su Tutti i servizi e quindi cercando e selezionando Criteri.Launch the Azure Policy service in the Azure portal by clicking All services, then searching for and selecting Policy.

  2. Nella pagina Panoramica o conformità Selezionare un criterio in uno stato di conformità non conforme.On the Overview or Compliance page, select a policy in a compliance state that is Non-compliant.

  3. Nella scheda conformità risorse della pagina conformità criteri fare clic con il pulsante destro del mouse o selezionare i puntini di sospensione di una risorsa in uno stato di conformità non conforme.Under the Resource compliance tab of the Policy compliance page, right-click or select the ellipsis of a resource in a compliance state that is Non-compliant. Quindi selezionare Visualizza i dettagli di conformità.Then select View compliance details.

    Opzione Visualizza dettagli conformità

  4. Il riquadro Dettagli conformità Visualizza le informazioni dalla valutazione più recente della risorsa all'assegnazione di criteri corrente.The Compliance details pane displays information from the latest evaluation of the resource to the current policy assignment. In questo esempio, il campo Microsoft. SQL/Servers/Version è 12,0 mentre è prevista la definizione del criterio 14,0.In this example, the field Microsoft.Sql/servers/version is found to be 12.0 while the policy definition expected 14.0. Se la risorsa non è conforme per diversi motivi, ciascuna di esse viene elencata in questo riquadro.If the resource is non-compliant for multiple reasons, each is listed on this pane.

    Riquadro dei dettagli di conformità e motivi per la mancata conformità

    Per una definizione dei criteri auditIfNotExists o deployIfNotExists , i dettagli includono la proprietà Details. Type e tutte le proprietà facoltative.For an auditIfNotExists or deployIfNotExists policy definition, the details include the details.type property and any optional properties. Per un elenco, vedere Proprietà auditIfNotExists e Proprietà deployIfNotExists.For a list, see auditIfNotExists properties and deployIfNotExists properties. L' ultima risorsa valutata è una risorsa correlata dalla sezione dei Dettagli della definizione.Last evaluated resource is a related resource from the details section of the definition.

    Esempio di definizione di deployIfNotExists parziale:Example partial deployIfNotExists definition:

    {
        "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": {
                    ...
                }
            }
        }
    }
    

    Riquadro dei dettagli di conformità-* ifNotExists

Nota

Per proteggere i dati, quando il valore di una proprietà è un segreto , il valore corrente Visualizza gli asterischi.To protect data, when a property value is a secret the current value displays asterisks.

Questi dettagli spiegano il motivo per cui una risorsa non è attualmente conforme, ma non Mostra quando è stata apportata la modifica alla risorsa che lo ha causato come non conforme.These details explain why a resource is currently non-compliant, but don't show when the change was made to the resource that caused it to become non-compliant. Per informazioni, vedere la cronologia delle modifiche (anteprima) riportata di seguito.For that information, see Change history (Preview) below.

Motivi di conformitàCompliance reasons

Nella matrice seguente viene eseguito il mapping di ogni motivo possibile alla condizione responsabile nella definizione dei criteri:The following matrix maps each possible reason to the responsible condition in the policy definition:

ReasonReason CondizioneCondition
Il valore corrente deve contenere il valore di destinazione come chiave.Current value must contain the target value as a key. containsKey o not notContainsKeycontainsKey or not notContainsKey
Il valore corrente deve contenere il valore di destinazione.Current value must contain the target value. contiene o non notContainscontains or not notContains
Il valore corrente deve essere uguale al valore di destinazione.Current value must be equal to the target value. uguale a o non notEqualsequals or not notEquals
Il valore corrente deve essere minore del valore di destinazione.Current value must be less than the target value. minore o non greaterOrEqualsless or not greaterOrEquals
Il valore corrente deve essere maggiore o uguale al valore di destinazione.Current value must be greater than or equal to the target value. greaterOrEquals o menogreaterOrEquals or not less
Il valore corrente deve essere maggiore del valore di destinazione.Current value must be greater than the target value. maggiore o non lessOrEqualsgreater or not lessOrEquals
Il valore corrente deve essere minore o uguale al valore di destinazione.Current value must be less than or equal to the target value. lessOrEquals o non superiorelessOrEquals or not greater
Il valore corrente deve esistere.Current value must exist. esisteexists
Il valore corrente deve essere nel valore di destinazione.Current value must be in the target value. in o non notInin or not notIn
Il valore corrente deve essere simile al valore di destinazione.Current value must be like the target value. like o not notLikelike or not notLike
Il valore corrente deve corrispondere al valore di destinazione con distinzione tra maiuscole e minuscole.Current value must case-sensitive match the target value. corrisponde o non notMatchmatch or not notMatch
Il valore corrente non deve essere soggetto a distinzione tra maiuscole e minuscole.Current value must case-insensitive match the target value. matchInsensitively o not notMatchInsensitivelymatchInsensitively or not notMatchInsensitively
Il valore corrente non deve contenere il valore di destinazione come chiave.Current value must not contain the target value as a key. notContainsKey o not ContainsKeynotContainsKey or not containsKey
Il valore corrente non deve contenere il valore di destinazione.Current value must not contain the target value. notContains o not ContainsnotContains or not contains
Il valore corrente non deve essere uguale al valore di destinazione.Current value must not be equal to the target value. notEquals o not EqualsnotEquals or not equals
Il valore corrente non deve esistere.Current value must not exist. non esistenot exists
Il valore corrente non deve essere nel valore di destinazione.Current value must not be in the target value. notIn o not innotIn or not in
Il valore corrente non deve essere simile al valore di destinazione.Current value must not be like the target value. notLike o No likenotLike or not like
Il valore corrente non deve essere soggetto a distinzione tra maiuscole e minuscole.Current value must not case-sensitive match the target value. notMatch o not matchnotMatch or not match
Il valore corrente non deve far distinzione tra maiuscole e minuscole con il valore di destinazione.Current value must not case-insensitive match the target value. notMatchInsensitively o not matchInsensitivelynotMatchInsensitively or not matchInsensitively
Nessuna risorsa correlata corrisponde ai dettagli degli effetti nella definizione dei criteri.No related resources match the effect details in the policy definition. Una risorsa del tipo definito in then. Details. Type e relativa alla risorsa definita nella parte if della regola dei criteri non esiste.A resource of the type defined in then.details.type and related to the resource defined in the if portion of the policy rule doesn't exist.

Dettagli di conformità per la configurazione GuestCompliance details for Guest Configuration

Per i criteri auditIfNotExists nella categoria configurazione Guest , è possibile che vengano valutate più impostazioni nella macchina virtuale e che sia necessario visualizzare i dettagli per ogni impostazione.For auditIfNotExists policies in the Guest Configuration category, there could be multiple settings evaluated inside the VM and you'll need to view per-setting details. Se, ad esempio, si esegue il controllo per un elenco di criteri password e solo uno di essi ha lo stato non conforme, è necessario stabilire quali criteri password specifici non sono conformi e perché.For example, if you're auditing for a list of password policies and only one of them has status Non-compliant, you'll need to know which specific password policies are out of compliance and why.

Inoltre, potrebbe non essere possibile accedere direttamente alla macchina virtuale, ma è necessario segnalare il motivo per cui la macchina virtuale non è conforme.You also might not have access to sign in to the VM directly but you need to report on why the VM is Non-compliant.

Portale di AzureAzure portal

Per iniziare, seguire la stessa procedura descritta nella sezione precedente per visualizzare i dettagli di conformità dei criteri.Begin by following the same steps in the section above for viewing policy compliance details.

Nella visualizzazione riquadro Dettagli conformità fare clic sul collegamento ultima risorsa valutata.In the Compliance details pane view click the link Last evaluated resource.

Visualizza i dettagli della definizione auditIfNotExists

Nella pagina assegnazione Guest vengono visualizzati tutti i dettagli di conformità disponibili.The Guest Assignment page displays all available compliance details. Ogni riga della vista rappresenta una valutazione eseguita all'interno del computer.Each row in the view represents an evaluation that was performed inside the machine. Nella colonna reason viene visualizzata una frase che descrive il motivo per cui l'assegnazione Guest è non conforme .In the Reason column, a phrase describing why the Guest Assignment is Non-compliant is shown. Se, ad esempio, si controllano i criteri password, nella colonna motivo verrà visualizzato testo con il valore corrente per ogni impostazione.For example, if you're auditing password policies, the Reason column would display text including the current value for each setting.

Visualizzare i dettagli sulla conformità.

Azure PowerShellAzure PowerShell

È anche possibile visualizzare i dettagli di conformità da Azure PowerShell.You can also view compliance details from Azure PowerShell. Assicurarsi prima di tutto che sia installato il modulo di configurazione Guest.First, make sure you have the Guest Configuration module installed.

Install-Module Az.GuestConfiguration

È possibile visualizzare lo stato corrente di tutte le assegnazioni Guest per una macchina virtuale usando il comando seguente:You can view the current status of all Guest Assignments for a VM using the following command:

Get-AzVMGuestPolicyReport -ResourceGroupName <resourcegroupname> -VMName <vmname>
PolicyDisplayName                                                         ComplianceReasons
-----------------                                                         -----------------
Audit that an application is installed inside Windows VMs                 {[InstalledApplication]bwhitelistedapp}
Audit that an application is not installed inside Windows VMs.            {[InstalledApplication]NotInstalledApplica...

Per visualizzare solo la frase del motivo che descrive il motivo per cui la macchina virtuale non è conforme, restituire solo il motivo della proprietà figlio.To view only the reason phrase that describes why the VM is Non-compliant, return only the Reason child property.

Get-AzVMGuestPolicyReport -ResourceGroupName <resourcegroupname> -VMName <vmname> | % ComplianceReasons | % Reasons | % Reason
The following applications are not installed: '<name>'.

È anche possibile generare una cronologia di conformità per le assegnazioni Guest nell'ambito del computer.You can also output a compliance history for Guest Assignments in scope for the machine. L'output di questo comando include i dettagli di ogni report per la macchina virtuale.The output from this command includes the details of each report for the VM.

Nota

L'output può restituire un volume elevato di dati.The output may return a large volume of data. È consigliabile archiviare l'output in una variabile.It's recommended to store the output in a variable.

$guestHistory = Get-AzVMGuestPolicyStatusHistory -ResourceGroupName <resourcegroupname> -VMName <vmname>
$guestHistory
PolicyDisplayName                                                         ComplianceStatus ComplianceReasons StartTime              EndTime                VMName LatestRepor
                                                                                                                                                                  tId
-----------------                                                         ---------------- ----------------- ---------              -------                ------ -----------
[Preview]: Audit that an application is installed inside Windows VMs      NonCompliant                       02/10/2019 12:00:38 PM 02/10/2019 12:00:41 PM VM01  ../17fg0...
<truncated>

Per semplificare questa visualizzazione, usare il parametro ShowChanged .To simplify this view, use the ShowChanged parameter. L'output di questo comando include solo i report che hanno seguito una modifica dello stato di conformità.The output from this command only includes the reports that followed a change in compliance status.

$guestHistory = Get-AzVMGuestPolicyStatusHistory -ResourceGroupName <resourcegroupname> -VMName <vmname> -ShowChanged
$guestHistory
PolicyDisplayName                                                         ComplianceStatus ComplianceReasons StartTime              EndTime                VMName LatestRepor
                                                                                                                                                                  tId
-----------------                                                         ---------------- ----------------- ---------              -------                ------ -----------
Audit that an application is installed inside Windows VMs                 NonCompliant                       02/10/2019 10:00:38 PM 02/10/2019 10:00:41 PM VM01  ../12ab0...
Audit that an application is installed inside Windows VMs.                Compliant                          02/09/2019 11:00:38 AM 02/09/2019 11:00:39 AM VM01  ../e3665...
Audit that an application is installed inside Windows VMs                 NonCompliant                       02/09/2019 09:00:20 AM 02/09/2019 09:00:23 AM VM01  ../15ze1...

cronologia di @no__t 0Change (anteprima)Change history (Preview)

Come parte di una nuova versione di anteprima pubblica, gli ultimi 14 giorni di cronologia delle modifiche sono disponibili per tutte le risorse di Azure che supportano l' eliminazione in modalità completa.As part of a new public preview, the last 14 days of change history are available for all Azure resources that support complete mode deletion. La cronologia modifiche fornisce informazioni dettagliate su quando è stata rilevata una modifica e offre un diff visivo per ogni modifica.Change history provides details about when a change was detected and a visual diff for each change. Il rilevamento delle modifiche viene attivato quando vengono aggiunte, rimosse o modificate le proprietà del Gestione risorse.A change detection is triggered when the Resource Manager properties are added, removed, or altered.

  1. Avviare il servizio Criteri di Azure nel portale di Azure facendo clic su Tutti i servizi e quindi cercando e selezionando Criteri.Launch the Azure Policy service in the Azure portal by clicking All services, then searching for and selecting Policy.

  2. Nella pagina Panoramica o conformità Selezionare un criterio in uno stato di conformità.On the Overview or Compliance page, select a policy in any compliance state.

  3. Nella scheda conformità risorse della pagina conformità criteri Selezionare una risorsa.Under the Resource compliance tab of the Policy compliance page, select a resource.

  4. Selezionare la scheda Cronologia modifiche (anteprima) nella pagina Conformità risorsa.Select the Change History (preview) tab on the Resource Compliance page. Verrà visualizzato un elenco delle eventuali modifiche rilevate.A list of detected changes, if any exist, are displayed.

    Scheda cronologia modifiche criteri di Azure nella pagina conformità risorse

  5. Selezionare una delle modifiche rilevate.Select one of the detected changes. Le differenze visive per la risorsa vengono visualizzate nella pagina della cronologia delle modifiche .The visual diff for the resource is presented on the Change history page.

    Differenze visive della cronologia modifiche dei criteri di Azure nella pagina Cronologia modifiche

Il diff visivo facilita l'identificazione delle modifiche di una risorsa.The visual diff aides in identifying changes to a resource. Le modifiche rilevate potrebbero non essere correlate allo stato di conformità corrente della risorsa.The changes detected may not be related to the current compliance state of the resource.

I dati della cronologia delle modifiche vengono forniti da Azure Resource Graph.Change history data is provided by Azure Resource Graph. Per eseguire una query su queste informazioni all'esterno del portale di Azure, vedere ottenere le modifiche alle risorse.To query this information outside of the Azure portal, see Get resource changes.

Passaggi successiviNext steps