Condividi tramite


Ottenere i dati di conformità delle risorse di Azure

Uno dei maggiori vantaggi di Criteri di Azure è rappresentato dalle informazioni dettagliate e dai controlli che offre sulle risorse in una sottoscrizione o in un gruppo di gestione di sottoscrizioni. Questo controllo può impedire la creazione di risorse nella posizione errata, applicare l'utilizzo comune e coerente dei tag o controllare le risorse esistenti per le configurazioni e le impostazioni appropriate. In tutti i casi, Criteri di Azure genera dati che consentono di comprendere lo stato di conformità dell'ambiente.

Prima di esaminare i dati di conformità, è importante comprendere gli stati di conformità in Criteri di Azure.

Esistono diversi modi per accedere alle informazioni sulla conformità generate dalle assegnazioni di criteri e iniziative:

Prima di esaminare i metodi disponibili per creare report sulla conformità, è opportuno comprendere quando vengono aggiornate le informazioni sulla conformità e la frequenza e gli eventi che attivano un ciclo di valutazione.

Trigger di valutazione

I risultati di un ciclo di valutazione completato sono disponibili nel provider di risorse Microsoft.PolicyInsights attraverso le operazioni PolicyStates e PolicyEvents. Per altre informazioni sulle operazioni dell'API REST di Azure Policy Insights, vedere Azure Policy Insights.

Le valutazioni delle iniziative e dei criteri assegnati sono il risultato di diversi eventi:

  • Un criterio o un'iniziativa è stata appena assegnata a un ambito. L'applicazione dell'assegnazione all'ambito definito richiede circa cinque minuti, quindi il ciclo di valutazione inizia per le risorse applicabili rispetto al criterio o all'iniziativa appena assegnata. A seconda degli effetti usati, le risorse vengono contrassegnate come conformi, non conformi, esenti o sconosciute. Un criterio o un'iniziativa di grandi dimensioni valutato rispetto a un ampio ambito di risorse può richiedere tempo, quindi non esiste alcuna previsione predefinita di quando il ciclo di valutazione viene completato. Al termine, i risultati di conformità aggiornati sono disponibili nel portale e negli SDK (Software Development Kit).
  • Un criterio o un'iniziativa già assegnata a un ambito viene aggiornata. Il ciclo di valutazione e la tempistica per questo scenario sono gli stessi di quelli per una nuova assegnazione a un ambito.
  • Una risorsa viene distribuita o aggiornata all'interno di un ambito con un'assegnazione tramite Azure Resource Manager, API REST o un SDK supportato. In questo scenario l'evento di effetto (Append, Audit, Deny, Deploy) e le informazioni sullo stato conforme per la singola risorsa diventano disponibili nel portale e negli SDK dopo circa 15 minuti. Questo evento non causa una valutazione di altre risorse.
  • Una sottoscrizione (tipo di risorsa Microsoft.Resources/subscriptions) viene creata o spostata nella gerarchia di gruppi di gestione con una definizione di criteri assegnata che fa riferimento al tipo di risorsa della sottoscrizione. La valutazione degli effetti supportati dalla sottoscrizione (audit, auditIfNotExist, deployIfNotExists, modify), la registrazione ed eventuali azioni correttive richiedono circa 30 minuti.
  • Viene creata, aggiornata o eliminata un'esenzione dai criteri. In questo scenario l'assegnazione corrispondente viene valutata per l'ambito di esenzione definito.
  • Ciclo di valutazione della conformità standard. Le assegnazioni vengono automaticamente rivalutate ogni 24 ore. Un criterio o un'iniziativa di grandi dimensioni di molte risorse può richiedere tempo, quindi non esiste alcuna previsione predefinita di quando il ciclo di valutazione viene completato. Dopo il completamento, i risultati di conformità aggiornati sono disponibili nel portale e negli SDK.
  • Il provider di risorse di configurazione macchina viene aggiornato con i dettagli relativi alla conformità da una risorsa gestita.
  • Analisi su richiesta.

Nota

Per impostazione predefinita, Criteri di Azure esenta dalla valutazione dei criteri tutte le risorse nel Microsoft.Resources provider di risorse, ad eccezione delle sottoscrizioni e dei gruppi di risorse, che possono essere valutate.

Analisi di valutazione su richiesta

È possibile avviare un'analisi di valutazione per una sottoscrizione o un gruppo di risorse con REST, interfaccia della riga di comando di Azure, Azure PowerShell, Criteri di Azure estensione per Visual Studio Code o Criteri di Azure'analisi di conformità di GitHub Action. Le analisi su richiesta sono un processo asincrono che richiede molto tempo per l'esecuzione perché le risorse vengono valutate rispetto a tutti i criteri assegnati.

Nota

Non tutti i provider di risorse di Azure supportano le analisi di valutazione su richiesta. Ad esempio, Gestione rete virtuale di Azure attualmente non supporta trigger manuali o il ciclo di valutazione della conformità dei criteri standard (analisi giornaliere).

Analisi di valutazione su richiesta con REST

Poiché si tratta di un processo asincrono, l'endpoint REST per avviare l'analisi non attende finché l'analisi non è stata completata per rispondere. Invece, fornisce un URI per eseguire una query dello stato della valutazione richiesta.

In ogni URI dell'API REST vengono usate variabili che è necessario sostituire con i propri valori:

  • {resourceGroupName}: sostituire con il nome del gruppo di risorse.
  • {subscriptionId}: sostituire con l'ID sottoscrizione.

L'analisi supporta la valutazione delle risorse in una sottoscrizione o in un gruppo di risorse. Avviare un'analisi per ambito con un comando POST dell'API REST usando le strutture URI seguenti:

Usare il comando seguente per valutare una sottoscrizione. È possibile eseguire il comando dal browser in Stati dei criteri - Attivare la valutazione della sottoscrizione usando l'opzione Prova .

POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01

Usare il comando seguente per valutare un gruppo di risorse. È possibile eseguire il comando dal browser in Stati dei criteri - Attivare la valutazione del gruppo di risorse usando l'opzione Prova .

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.PolicyInsights/policyStates/latest/triggerEvaluation?api-version=2019-10-01

Le chiamate all'API REST della sottoscrizione e del gruppo di risorse restituiscono uno stato accettato 202. Incluso nell'intestazione della risposta è una location proprietà con il formato seguente:

https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/asyncOperationResults/{ResourceContainerGUID}?api-version=2019-10-01

{ResourceContainerGUID} viene generato in modo statico per l'ambito richiesto. Se un ambito sta già eseguendo un'analisi su richiesta, non viene avviata una nuova analisi. Viene invece fornito lo stesso {ResourceContainerGUID}location URI per lo stato della nuova richiesta. Un comando GET dell'API REST per l'URI location restituisce un valore 202 Accettato mentre la valutazione è in corso. Al termine dell'analisi di valutazione, viene restituito lo stato 200 OK . Il corpo di un'analisi completata è una risposta JSON con lo stato : succeeded.

Analisi di valutazione su richiesta con l'interfaccia della riga di comando di Azure

L'analisi di conformità viene avviata con il comando az policy state trigger-scan.

Per impostazione predefinita, az policy state trigger-scan avvia una valutazione per tutte le risorse nella sottoscrizione corrente. Per avviare una valutazione in un gruppo di risorse specifico, usare il resource-group parametro . Nell'esempio seguente viene avviata un'analisi di conformità nella sottoscrizione corrente per un gruppo di risorse. Sostituire resourceGroupName con il nome del gruppo di risorse:

az policy state trigger-scan --resource-group "resourceGroupName"

È possibile scegliere di non attendere il completamento del processo asincrono prima di continuare con il no-wait parametro .

Analisi di valutazione su richiesta con Azure PowerShell

L'analisi di conformità viene avviata con il cmdlet Start-AzPolicyComplianceScan.

Per impostazione predefinita, Start-AzPolicyComplianceScan avvia una valutazione per tutte le risorse nella sottoscrizione corrente. Per avviare una valutazione in un gruppo di risorse specifico, usare il ResourceGroupName parametro . Nell'esempio seguente viene avviata un'analisi di conformità nella sottoscrizione corrente per un gruppo di risorse. Sostituire resourceGroupName con il nome del gruppo di risorse:

Start-AzPolicyComplianceScan -ResourceGroupName 'resourceGroupName'

È possibile fare in modo che PowerShell attenda il completamento della chiamata asincrona prima di fornire l'output dei risultati o che venga eseguito in background come processo. Per usare un processo di PowerShell per eseguire l'analisi di conformità in background, usare il AsJob parametro e impostare il valore su un oggetto, ad esempio $job in questo esempio:

$job = Start-AzPolicyComplianceScan -AsJob

È possibile controllare lo stato del processo controllando l'oggetto $job. Il processo è di tipo Microsoft.Azure.Commands.Common.AzureLongRunningJob. Usare Get-Member sull'oggetto $job per visualizzare le proprietà e i metodi disponibili.

Durante l'esecuzione dell'analisi di conformità, il controllo dell'oggetto $job restituisce i risultati seguenti:

$job

Id     Name              PSJobTypeName     State    HasMoreData     Location   Command
--     ----              -------------     -----    -----------     --------   -------
2      Long Running O... AzureLongRunni... Running  True            localhost  Start-AzPolicyCompliance...

Al termine dell'analisi di conformità, la State proprietà viene modificata in Completed.

Analisi di valutazione su richiesta con Visual Studio Code

L'estensione Criteri di Azure per Visual Studio Code è in grado di eseguire un'analisi di valutazione per una risorsa specifica. Questa analisi è un processo sincrono, a differenza dei metodi di Azure PowerShell e REST. Per informazioni dettagliate e passaggi, vedere Valutazione su richiesta con l'estensione VS Code.

Analisi di valutazione su richiesta con GitHub Actions

Usare l'azione Analisi conformità di Criteri di Azure per attivare un'analisi di valutazione su richiesta dal flusso di lavoro di GitHub su una o più risorse, gruppi di risorse o sottoscrizioni e controllare il flusso di lavoro in base allo stato di conformità delle risorse. Si può anche configurare il flusso di lavoro per l'esecuzione a un'ora pianificata in modo da ottenere lo stato di conformità più recente in un momento appropriato. Facoltativamente, GitHub Actions può generare un report sullo stato di conformità delle risorse analizzate per un'ulteriore analisi o a scopo di archiviazione.

L'esempio seguente esegue un'analisi della conformità per una sottoscrizione. In scopes usare l'ID sottoscrizione.

on:
  schedule:
    - cron:  '0 8 * * *'  # runs every morning 8am
jobs:
  assess-policy-compliance:
    runs-on: ubuntu-latest
    steps:
    - name: Login to Azure
      uses: azure/login@v2
      with:
        creds: ${{secrets.AZURE_CREDENTIALS}}

    - name: Check for resource compliance
      uses: azure/policy-compliance-scan@v0
      with:
        scopes: |
          /subscriptions/aaaa6a6a-bb7b-cc8c-dd9d-eeeeee0e0e0e

Per altre informazioni ed esempi di flusso di lavoro, vedere il repository di GitHub Actions per Analisi conformità di Criteri di Azure.

Portale

Il portale di Azure illustra un'esperienza grafica di visualizzazione e comprensione dello stato di conformità nell'ambiente in uso. Nella pagina Criteri l'opzione Panoramica fornisce i dettagli per gli ambiti disponibili sulla conformità dei criteri e delle iniziative. Oltre allo stato di conformità e al conteggio per assegnazione, contiene un grafico che mostra la conformità negli ultimi sette giorni. La pagina Conformità contiene molte di queste stesse informazioni (ad eccezione del grafico), ma offre altre opzioni di filtro e ordinamento.

Screenshot della pagina Conformità, delle opzioni di filtro e dei dettagli.

Dal momento che un criterio o un'iniziativa può essere assegnata a diversi ambiti, la tabella include l'ambito di ogni assegnazione e il tipo di definizione assegnato. È anche indicato il numero di risorse non conformi e di criteri non conformi per ogni assegnazione. Quando si seleziona un criterio o su un'iniziativa nella tabella, viene fornita un'analisi più approfondita della conformità per quella particolare assegnazione.

Screenshot della pagina Dettagli conformità, inclusi i conteggi e i dettagli di conformità delle risorse.

L'elenco delle risorse nella scheda Conformità risorsa mostra lo stato di valutazione delle risorse esistenti per l'assegnazione corrente. Il valore predefinito della scheda è Non conforme, ma è possibile applicare un filtro. Gli eventi (Append, Audit, Deny, Deploy, Modify) attivati dalla richiesta di creazione di una risorsa sono visualizzati nella scheda Eventi.

Screenshot della scheda Eventi nella pagina Dettagli conformità.

Per le risorse della Modalità del provider di risorse, nella scheda Conformità risorse selezionare la risorsa o fare clic con il pulsante destro del mouse sulla riga e selezionare Visualizza dettagli conformità per aprire i dettagli di conformità dei componenti. Questa pagina include anche le schede per visualizzare i criteri assegnati a questa risorsa, eventi, eventi del componente e cronologia delle modifiche.

Screenshot della scheda Conformità del componente e dei dettagli di conformità per un'assegnazione in modalità provider di risorse.

Tornare alla pagina di conformità delle risorse, selezionare e tenere premuto (o fare clic con il pulsante destro del mouse) la riga dell'evento per cui si vogliono raccogliere maggiori dettagli, quindi selezionare Mostra log attività. Viene aperta la pagina del log attività e viene prefiltrata nella ricerca che mostra i dettagli per l'assegnazione e gli eventi. Il log attività offre un contesto aggiuntivo e altre informazioni su tali eventi.

Screenshot del log attività per le attività e le valutazioni di Criteri di Azure.

Nota

I risultati di conformità possono essere esportati dal portale con query di Azure Resource Graph.

Riga di comando

Le stesse informazioni disponibili nel portale possono essere recuperate con l'API REST, l'interfaccia della riga di comando di Azure e Azure PowerShell.

REST API

Per informazioni dettagliate sull'API REST, vedere le informazioni di riferimento Criteri di Azure. Le pagine di riferimento dell'API REST hanno un'opzione Prova per ogni operazione che consente di eseguire il comando in un browser. È anche possibile usare l'interfaccia della riga di comando di Azure o il client API REST preferito per eseguire i comandi.

Riepilogare i risultati

Con l'API REST è possibile riepilogare in base a contenitore, definizione o assegnazione. Di seguito è riportato un esempio di riepilogo a livello di sottoscrizione tramite il riepilogo per sottoscrizione di Azure Policy Insights:

POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/summarize?api-version=2019-10-01

L'output riepiloga la sottoscrizione e la conformità riepilogata si trovano nelle nonCompliantResources proprietà e nonCompliantPolicies . Questa richiesta fornisce altri dettagli, tra cui ogni assegnazione che ha costituito i numeri non conformi e le informazioni di definizione per ogni assegnazione. Ogni oggetto criteri nella gerarchia fornisce un queryResultsUri oggetto che può essere usato per ottenere maggiori dettagli a tale livello.

Eseguire query per le risorse

Nell'esempio precedente viene value.policyAssignments.policyDefinitions.results.queryResultsUri fornito un URI di esempio per tutte le risorse non conformi per una definizione di criteri specifica. $filter Nel valore ComplianceState è uguale (eq) a NonCompliant, PolicyAssignmentId viene specificato per la definizione dei criteri e quindi policyDefinitionId stesso. Il motivo dell'inclusione PolicyAssignmentId di nel filtro è dovuto al fatto che PolicyDefinitionId potrebbe esistere in diverse assegnazioni di criteri o iniziative con ambiti diversi. Specificando sia e PolicyAssignmentIdPolicyDefinitionId, è possibile essere espliciti nei risultati cercati. In precedenza, per PolicyStates è stato usato latest, che imposta automaticamente un from intervallo di tempo e to delle ultime 24 ore.

Esempio del queryResultsUri valore:

https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyStates/latest/queryResults?api-version=2019-10-01&$from=2025-01-01 04:28:22Z&$to=2025-02-10 04:28:22Z&$filter=ComplianceState eq 'NonCompliant' and PolicyAssignmentId eq '/subscriptions/{subscriptionId}/resourcegroups/rg-tags/providers/microsoft.authorization/policyassignments/37ce239ae4304622914f0c77' and PolicyDefinitionId eq '/providers/microsoft.authorization/policydefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62'

Visualizza eventi

Quando si crea o si aggiorna una risorsa, viene generato un risultato di valutazione dei criteri. I risultati sono chiamati eventi criteri. Usare l'URI seguente per visualizzare gli eventi criteri recenti associati alla sottoscrizione.

https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.PolicyInsights/policyEvents/default/queryResults?api-version=2019-10-01

Per altre informazioni sull'esecuzione di query sugli eventi dei criteri, vedere Criteri di Azure Eventi.

Interfaccia della riga di comando di Azure

Il gruppo di comandi dell'interfaccia della riga di comando di Azure per Criteri di Azure copre la maggior parte delle operazioni disponibili in REST o Azure PowerShell. Per l'elenco completo dei comandi disponibili, vedere az policy.

Ottenere il riepilogo dello stato per i criteri assegnati più in alto con il numero più alto di risorse non conformi.

az policy state summarize --top 1

Ottenere il record di stato per la risorsa valutata più di recente e il valore predefinito di output è di tipo timestamp in ordine decrescente.

az policy state list --top 1

Ottenere i dettagli per tutte le risorse di rete virtuale non conformi.

az policy state list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'"

Ottenere eventi correlati alle risorse di rete virtuale non conformi che si sono verificate dopo una data specifica. Usare il from parametro con una data in formato ISO 8601.

az policy event list --filter "ResourceType eq 'Microsoft.Network/virtualNetworks'" --from '2025-02-10T00:00:00Z'

Azure PowerShell

È possibile eseguire i comandi seguenti da Azure Cloud Shell.

Ottenere il riepilogo dello stato per i criteri assegnati più in alto con il numero più alto di risorse non conformi.

Get-AzPolicyStateSummary -Top 1

Ottenere il record di stato per la risorsa valutata più di recente. Il valore predefinito dell'output è in base al timestamp in ordine decrescente.

Get-AzPolicyState -Top 1

Ottenere i dettagli per tutte le risorse di rete virtuale non conformi.

Get-AzPolicyState -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'"

Ottenere eventi correlati alle risorse di rete virtuale non conformi che si sono verificate dopo una data specifica. Usare il From parametro con una data in formato ISO 8601.

Get-AzPolicyEvent -Filter "ResourceType eq '/Microsoft.Network/virtualNetworks'" -From '2025-02-10'

L'output include una PrincipalOid proprietà che può essere usata per ottenere un utente specifico con il cmdlet Get-AzADUserdi Azure PowerShell . Sostituire {principalOid} con il valore ottenuto dal comando precedente.

(Get-AzADUser -ObjectId {principalOid}).DisplayName

Log di Monitoraggio di Azure

Se si dispone di un'area di lavoro Log Analytics con AzureActivity dalla soluzione Log Analytics attività associata alla sottoscrizione, è anche possibile visualizzare i risultati della non conformità dalla valutazione delle risorse nuove e aggiornate usando query Kusto e la AzureActivity tabella. Con i dettagli dei log di Monitoraggio di Azure è possibile configurare gli avvisi in modo da individuare le risorse non conformi.

Azure Resource Graph

I record di conformità vengono archiviati in Azure Resource Graph (ARG). I dati possono essere esportati da query di Azure Resource Graph per formare dashboard personalizzati in base agli ambiti e ai criteri di interesse. Esaminare le query di esempio per esportare i dati di conformità tramite Azure Resource Graph.

Passaggi successivi