Condividi tramite


Procedure consigliate di FinOps per la rete

Questo articolo illustra procedure FinOps comprovate per i servizi di rete. Si concentrano sull'ottimizzazione dei costi, sui miglioramenti dell'efficienza e sulle informazioni dettagliate sulle risorse.


Firewall di Azure

Le sezioni seguenti forniscono query di Azure Resource Graph (ARG) per Firewall di Azure. Queste query consentono di ottenere informazioni dettagliate sulle risorse del firewall di Azure e assicurarsi che siano configurate con le impostazioni appropriate. Analizzando i modelli di utilizzo e visualizzando le raccomandazioni di Azure Advisor, è possibile ottimizzare le configurazioni del firewall di Azure per ottimizzare l'efficienza dei costi.

Query: analisi dei criteri firewall e firewall di Azure

Questa query ARG analizza i firewall di Azure e i criteri firewall associati all'interno dell'ambiente Azure. È destinato in particolare ai firewall con un livello SKU Premium e verifica che le configurazioni nei criteri firewall associati usino le funzionalità Premium.

Categoria

Ottimizzazione

Query

resources 
| where type =~ 'Microsoft.Network/azureFirewalls' and properties.sku.tier=="Premium"
| project FWID=id, firewallName=name, SkuTier=tostring(properties.sku.tier), resourceGroup, location
| join kind=inner (
    resources
    | where type =~ 'microsoft.network/firewallpolicies'
    | mv-expand properties.firewalls
    | extend intrusionDetection = tostring(properties.intrusionDetection contains "Alert"
        or properties.intrusionDetection contains "Deny")
    | extend transportSecurity = tostring(properties.transportSecurity contains "keyVaultSecretId")
    | extend FWID = tostring(properties_firewalls.id)
    | where intrusionDetection == "False"
        and transportSecurity == "False"
    | project
        PolicyName = name,
        PolicySKU = tostring(properties.sku.tier),
        intrusionDetection,
        transportSecurity,
        FWID
) on FWID

Query: Firewall di Azure e l'analisi delle subnet associate

Questa query ARG analizza i firewall di Azure e le subnet associate all'interno dell'ambiente Azure. Fornisce informazioni dettagliate sulle subnet associate a ogni istanza del firewall di Azure. Ottimizzare l'uso del firewall di Azure con un'istanza centrale del firewall di Azure nella rete virtuale hub o rete WAN virtuale hub sicuro. Condividere quindi lo stesso firewall tra più reti virtuali spoke connesse allo stesso hub dalla stessa area.

Categoria

Ottimizzazione

Query

resources
| where type =~ 'Microsoft.Network/azureFirewalls' and properties.sku.tier=="Premium"
| project
    FWID=id,
    firewallName=name,
    SkuTier=tostring(properties.sku.tier),
    resourceGroup,
    location
| join kind=inner (
    resources
    | where type =~ 'microsoft.network/firewallpolicies'
    | mv-expand properties.firewalls
    | extend intrusionDetection = tostring(properties.intrusionDetection contains "Alert"
        or properties.intrusionDetection contains "Deny")
    | extend transportSecurity = tostring(properties.transportSecurity contains "keyVaultSecretId")
    | extend FWID=tostring(properties_firewalls.id)
    | where intrusionDetection == "False"
        and transportSecurity == "False"
    | project
        PolicyName = name,
        PolicySKU = tostring(properties.sku.tier),
        intrusionDetection,
        transportSecurity,
        FWID
) on FWID

Gateway applicazione

La sezione seguente fornisce una query ARG per app Azure lication Gateway. Consente di ottenere informazioni dettagliate sulle risorse del gateway di app Azure e assicurarsi che siano configurate con le impostazioni appropriate.

Query: gateway applicazione inattive

Questa query ARG analizza i gateway applicazione e i pool back-end associati all'interno dell'ambiente Azure. Fornisce informazioni dettagliate su quali gateway applicazione hanno pool back-end vuoti, a indicare che potrebbero essere inattive e potenzialmente non necessarie.

Categoria

Ottimizzazione

Query

resources
| where type =~ 'Microsoft.Network/applicationGateways'
| extend
    backendPoolsCount = array_length(properties.backendAddressPools),
    SKUName = tostring(properties.sku.name),
    SKUTier = tostring(properties.sku.tier),
    SKUCapacity = properties.sku.capacity,
    backendPools = properties.backendAddressPools,
    resourceGroup = strcat('/subscriptions/',subscriptionId,'/resourceGroups/',resourceGroup)
| project id, name, SKUName, SKUTier, SKUCapacity, resourceGroup, subscriptionId
| join (
    resources
    | where type =~ 'Microsoft.Network/applicationGateways'
    | mvexpand backendPools = properties.backendAddressPools
    | extend backendIPCount = array_length(backendPools.properties.backendIPConfigurations)
    | extend backendAddressesCount = array_length(backendPools.properties.backendAddresses)
    | extend backendPoolName = backendPools.properties.backendAddressPools.name
    | summarize
        backendIPCount = sum(backendIPCount),
        backendAddressesCount = sum(backendAddressesCount)
        by id
) on id
| project-away id1
| where (backendIPCount == 0 or isempty(backendIPCount))
    and (backendAddressesCount==0 or isempty(backendAddressesCount))
| order by id asc

ExpressRoute

La sezione seguente fornisce una query ARG per ExpressRoute. Consente di ottenere informazioni dettagliate sui circuiti ExpressRoute e di assicurarsi che siano configurati con le impostazioni appropriate.

Query: circuiti ExpressRoute inattive

Questa query ARG analizza i circuiti ExpressRoute all'interno dell'ambiente Azure per identificare eventuali circuiti senza un circuito completato.

Categoria

Ottimizzazione

Query

resources
| where type =~ 'Microsoft.Network/expressRouteCircuits'
    and properties.serviceProviderProvisioningState == "NotProvisioned"
| extend
    ServiceLocation = tostring(properties.serviceProviderProperties.peeringLocation),
    ServiceProvider = tostring(properties.serviceProviderProperties.serviceProviderName),
    BandwidthInMbps = tostring(properties.serviceProviderProperties.bandwidthInMbps)
| project
    ERId = id,
    ERName = name,
    ERRG = resourceGroup,
    SKUName = tostring(sku.name),
    SKUTier = tostring(sku.tier),
    SKUFamily = tostring(sku.family),
    ERLocation = location,
    ServiceLocation,
    ServiceProvider,
    BandwidthInMbps

Load Balancer

La sezione seguente fornisce una query ARG per Azure Load Balancer. Consente di ottenere informazioni dettagliate sulle risorse del servizio di bilanciamento del carico di Azure e assicurarsi che siano configurate con le impostazioni appropriate.

Query: servizi di bilanciamento del carico inattive

Questa query ARG analizza i servizi di bilanciamento del carico di Azure e i pool back-end associati all'interno dell'ambiente Azure. Fornisce informazioni dettagliate su quali servizi di bilanciamento del carico hanno pool back-end vuoti, a indicare che potrebbero essere inattive e potenzialmente non necessarie.

Categoria

Ottimizzazione

Query

resources
| extend resourceGroup = strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)
| extend SKUName = tostring(sku.name)
| extend SKUTier = tostring(sku.tier)
| extend location,backendAddressPools = properties.backendAddressPools
| where type =~ 'microsoft.network/loadbalancers'
    and array_length(backendAddressPools) == 0
    and sku.name!='Basic'
| order by id asc
| project
    id,
    name,
    SKUName,
    SKUTier,
    backendAddressPools,
    location,
    resourceGroup,
    subscriptionId

DNS privato

Nella sezione seguente viene fornita una query ARG per DNS privato. Consente di ottenere informazioni dettagliate sulle risorse DNS privato e assicurarsi che siano configurate con le impostazioni appropriate.

Query: DNS privato

Questa query ARG analizza DNS privato zone all'interno dell'ambiente Azure per identificare eventuali aree senza collegamenti Rete virtuale.

Categoria

Ottimizzazione

Query

resources
| where type == "microsoft.network/privatednszones"
    and properties.numberOfVirtualNetworkLinks == 0
| project id, PrivateDNSName=name,
    NumberOfRecordSets = tostring(properties.numberOfRecordSets),
    resourceGroup = tostring(strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)),
    vNets = tostring(properties.properties.numberOfVirtualNetworkLinks),
    subscriptionId

Indirizzo IP pubblico

Le sezioni seguenti forniscono query ARG per gli indirizzi IP pubblici. Consentono di ottenere informazioni dettagliate sulle risorse dell'indirizzo IP pubblico e assicurarsi che siano configurate con le impostazioni appropriate.

Query: indirizzi IP pubblici inattive

Questa query ARG analizza gli indirizzi IP pubblici di Azure. Fornisce informazioni dettagliate su quali indirizzi IP pubblici sono inattive e potenzialmente non necessari.

Categoria

Ottimizzazione

Query

resources
| where type =~ 'Microsoft.Network/publicIPAddresses'
    and isempty(properties.ipConfiguration)
    and isempty(properties.natGateway)
    and properties.publicIPAllocationMethod =~ 'Static'
| extend
    PublicIpId = id,
    IPName = name,
    AllocationMethod = tostring(properties.publicIPAllocationMethod),
    SKUName = sku.name,
    Location = location,
    resourceGroup = strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)
| project PublicIpId, IPName, SKUName, resourceGroup, Location, AllocationMethod, subscriptionId
| union (
    Resources
    | where type =~ 'microsoft.network/networkinterfaces'
        and isempty(properties.virtualMachine)
        and isnull(properties.privateEndpoint)
        and isnotempty(properties.ipConfigurations)
    | extend IPconfig = properties.ipConfigurations
    | mv-expand IPconfig
    | extend PublicIpId= tostring(IPconfig.properties.publicIPAddress.id)
    | project PublicIpId
    | join (
        resource
        | where type =~ 'Microsoft.Network/publicIPAddresses'
        | extend
            PublicIpId = id,
            IPName = name,
            AllocationMethod = tostring(properties.publicIPAllocationMethod),
            SKUName = sku.name,
            resourceGroup,
            Location = location
    ) on PublicIpId
    | project
        PublicIpId,
        IPName,
        SKUName,
        resourceGroup,
        Location,
        AllocationMethod,
        subscriptionId
)

Query: Identificare il metodo di routing degli indirizzi IP pubblici

Questa query ARG analizza gli indirizzi IP pubblici e identifica il metodo di routing, il metodo di allocazione e lo SKU. Analizza anche altri dettagli degli indirizzi IP pubblici associati a una configurazione IP.

Categoria

Ottimizzazione

Query

resources
| where type =~ 'Microsoft.Network/publicIPAddresses'
    and isnotempty(properties.ipConfiguration)
| where tostring(properties.ipTags) == "[]"
| extend
    PublicIpId = id,
    RoutingMethod = id,
    IPName = name,
    AllocationMethod = tostring(properties.publicIPAllocationMethod),
    SKUName = sku.name,
    Location = location,
    resourceGroup = strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)
| project
    PublicIpId,
    IPName,
    RoutingMethod,SKUName,
    resourceGroup,
    Location,
    AllocationMethod,
    subscriptionId

Query: Controllare i criteri di protezione DDoS degli indirizzi IP pubblici

Se è necessario proteggere meno di 15 risorse IP pubbliche, il livello di protezione IP è l'opzione più conveniente. Tuttavia, se si dispone di più di 15 risorse IP pubbliche da proteggere, il livello di protezione di rete diventa più conveniente.

Categoria

Ottimizzazione

Query

resources
| where type == "microsoft.network/publicipaddresses"
| project ddosProtection = tostring(properties.ddosSettings), name
| where ddosProtection has "Enabled"
| count
| project TotalIpsProtected = Count
| extend CheckIpsProtected = iff(TotalIpsProtected >= 15, "Enable Network Protection tier", "Enable PIP DDoS Protection")

Gateway di rete virtuale

Le sezioni seguenti forniscono query ARG per i gateway Rete virtuale. Consentono di ottenere informazioni dettagliate sulle risorse del gateway Rete virtuale e assicurarsi che siano configurate con le impostazioni appropriate.

Query: verificare la presenza di gateway Rete virtuale inattive

Questa query ARG analizza Rete virtuale gateway all'interno dell'ambiente Di Azure per identificare eventuali elementi inattive.

Categoria

Ottimizzazione

Query

resources
| where type == "microsoft.network/virtualnetworkgateways"
| extend resourceGroup = strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)
| project id, GWName=name, resourceGroup, location, subscriptionId
| join kind = leftouter(
    resources
    | where type == "microsoft.network/connections"
    | extend id = tostring(properties.virtualNetworkGateway1.id)
    | project id
) on id
| where isempty(id1)
| project
    id,
    GWName,
    resourceGroup,
    location,
    subscriptionId,
    status=id

Query: verificare la presenza di un gateway NAT inattiva

Questa query ARG analizza i gateway NAT all'interno dell'ambiente Di Azure per identificare eventuali elementi inattive.

Categoria

Ottimizzazione

Query

resources
| where type == "microsoft.network/natgateways" and isnull(properties.subnets)
| project
    id,
    GWName = name,
    SKUName = tostring(sku.name),
    SKUTier = tostring(sku.tier),
    Location = location,
    resourceGroup = tostring(strcat('/subscriptions/', subscriptionId, '/resourceGroups/', resourceGroup)),
    subnet = tostring(properties.subnet),
    subscriptionId

Stai cercando di più?

Ci mancava qualcosa? Vuoi vedere qualcosa aggiunto? Ci piacerebbe ascoltare eventuali domande, problemi o soluzioni che vorresti vedere qui. Creare un nuovo problema con i dettagli che si desidera visualizzare qui.


Risorse correlate:

Soluzioni correlate: