Condividi tramite


Eseguire una query in Gestione rete virtuale di Azure tramite Azure Resource Graph (ARG)

Questo articolo illustra l'uso di Azure Resource Graph con Gestione rete virtuale di Azure. Azure Resource Graph (ARG) estende Gestione risorse di Azure, consentendo di eseguire query su un determinato set di sottoscrizioni per una migliore governance dell'ambiente. Con l'integrazione di ARG, è possibile eseguire query su ARG per ottenere informazioni dettagliate sulle configurazioni di Gestione rete virtuale di Azure. Le informazioni dettagliate vengono fornite tramite query Kusto personalizzate che offrono il livello di risorse o i dati sullo stato a livello di area.

Uso di ARG con Gestione reti virtuali

Di seguito sono riportati alcuni degli scenari in cui è possibile usare Azure Resource Graph per ottenere informazioni dettagliate su Gestione rete virtuale di Azure:

  • Recuperare i dati sullo stato dell'obiettivo a livello di area per comprendere le configurazioni distribuite in ogni area e il relativo stato.
  • Individuare tutte le risorse a cui è applicata una configurazione specifica.
  • Recuperare configurazioni valide applicate a una rete virtuale e il relativo stato di provisioning.
  • Identificare il numero di reti virtuali riuscite, non riuscite o in corso durante un processo di distribuzione.

Risorse disponibili

Per l'esecuzione di query sulle configurazioni di amministratore della sicurezza in ARG sono disponibili le risorse seguenti:

  • microsoft.network/effectivesecurityadminrules
  • microsoft.network/networkmanagers/securityadminconfigurations/rulecollections/snapshots
  • microsoft.network/networkmanagers/securityadminconfigurations/rulecollections/rules/snapshots
  • microsoft.network/networkmanagers/securityadminconfigurations/snapshots
  • microsoft.network/networkmanagers/securityadminregionalgoalstates

Operazioni preliminari

Per iniziare a eseguire query sui dati di Gestione rete virtuale in ARG, seguire questa procedura:

  1. Cercare Resource Graph Explorer nel portale di Azure e selezionare la stessa voce per essere reindirizzati all'editor di query ARG.

    Screenshot dell'editor di Azure Resource Graph con l'esempio di query Gestione reti virtuali in Kusto.

  2. Immettere le query Kusto nell'editor di query e selezionare Esegui query.

È possibile scaricare l'output di queste query come CSV da Resource Graph Explorer. È inoltre possibile usare queste query in automazione personalizzata usando qualsiasi client di automazione supportato da ARG, ad esempio PowerShell, l’interfaccia della riga di comando o l’SDK. È possibile creare anche cartelle di lavoro personalizzate nel portale di Azure usando ARG come origine dati.

Nota

ARG consente di eseguire query sulle risorse per le quali si dispone dei diritti di controllo degli accessi in base al ruolo appropriati.

Query di esempio

Di seguito sono riportate le query di esempio che è possibile eseguire sui dati di Gestione reti virtuali. È possibile usarli in dashboard personalizzati e automazioni. Elencati con ogni query vi sono l'input coinvolto e l'output restituito.

Elencare tutti i gestori di reti virtuali che influiscono su una determinata rete virtuale

Input: immettere il vnetId della rete virtuale. Esso usa la sintassi seguente: 00000000-0000-0000-0000-000000000000 Output: elenco degli ID di Gestione reti virtuali.


networkresources
| where type == "microsoft.network/effectivesecurityadminrules"
| extend vnetId = "00000000-0000-0000-0000-000000000000"
| where id == strcat(vnetId,"/providers/Microsoft.Network/effectiveSecurityAdminRules/default")
| mv-expand properties.EffectiveSecurityAdminConfigurations
| mv-expand properties.effectiveSecurityAdminConfigurations
| extend configId = tolower(iff(properties_EffectiveSecurityAdminConfigurations.Id == "", properties_effectiveSecurityAdminConfigurations.id, properties_EffectiveSecurityAdminConfigurations.Id))
| extend networkManagerId =  substring(configId, 0, indexof(configId, "/securityadminconfigurations/"))
| distinct networkManagerId

Elencare i dettagli commit del commit amministratore della sicurezza più recente per un determinato gestore di rete

Input: immettere l'ID di Gestione reti virtuali. Usa la sintassi seguente: /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeee4e4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkManagers/myVirtualNetworkManager

Output: elenco dei dettagli del commit per le configurazioni dell'amministratore della sicurezza, tra cui CommitId, CommitTimestamp, posizione, SecurityAdminConfigurationId, SecurityAdminRuleIds, SecurityAdminRuleCollectionIds, stato e errorMessage.

networkresources
| where type == "microsoft.network/networkmanagers/securityadminregionalgoalstates"
| where id contains tolower("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkManagers/myVirtualNetworkManager")
| extend adminConfigurationId = tolower(iff(properties.securityAdminConfigurations[0].id == "", properties.SecurityAdminConfigurations[0].Id, properties.securityAdminConfigurations[0].id))
| extend adminRuleCollectionIds = todynamic(iff(properties.securityAdminRuleCollections == "", properties.SecurityAdminRuleCollections, properties.securityAdminRuleCollections))
| extend adminRuleIds = todynamic(iff(properties.securityAdminRules == "", properties.SecurityAdminRules, properties.securityAdminRules))
| extend commitId = iff(properties.commitId == "", properties.CommitId, properties.commitId)
| extend timeStamp =  todatetime(iff(properties.commitTimestamp == "", properties.CommitTimestamp, properties.commitTimestamp))
| extend status = iff(properties.status == "", properties.Status, properties.status)
| extend errorMessage = iff(properties.errorMessage == "" and properties.ErrorMessage == "", "", iff(properties.errorMessage == "", properties.ErrorMessage, properties.errorMessage))
| order by timeStamp desc 
| project commitId, timeStamp, location, adminConfigurationId, adminRuleCollectionIds, adminRuleIds, status, errorMessage

Numero di reti virtuali interessate da una determinata configurazione dell'amministratore della sicurezza

Input: immettere l’adminConfigurationID dello snapshot di configurazione dell'amministratore della sicurezza. Esso usa la sintassi seguente: "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkManagers/myVirtualNetworkManager/securityAdminConfigurations/config_2023-05-15-15-07-27/snapshots/0"

Output: elenco delle reti virtuali interessate, tra cui Region, successCount e failedcount.

Nota

AdminConfigurationId dello snapshot di configurazione dell'amministratore della sicurezza. È possibile ottenere questo ID dall'output della query dei dettagli del commit elenco.

networkresources
| where type == "microsoft.network/effectivesecurityadminrules"
| extend snapshotConfigIdToCheck =  tolower("/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkManagers/myVirtualNetworkManager/securityAdminConfigurations/config_2023-05-15-15-07-27/snapshots/0")
| mv-expand properties.effectiveSecurityAdminConfigurations
| mv-expand properties.EffectiveSecurityAdminConfigurations
| extend configurationId = tolower(iff(properties_effectiveSecurityAdminConfigurations.id == "", properties_EffectiveSecurityAdminConfigurations.Id, properties_effectiveSecurityAdminConfigurations.id))
| extend provisioningState = tolower(iff(properties.ProvisioningState == "", properties.provisioningState, properties.ProvisioningState))
| where configurationId == snapshotConfigIdToCheck
| summarize count() by location, provisioningState

Passaggi successivi

Creare un'istanza di Gestione rete virtuale di Azure usando il portale di Azure.