Meilleures pratiques finOps pour la mise en réseau
Cet article décrit les pratiques finOps éprouvées pour les services de mise en réseau. Ils se concentrent sur l’optimisation des coûts, les améliorations de l’efficacité et les insights sur les ressources.
Pare-feu Azure
Les sections suivantes fournissent des requêtes Azure Resource Graph (ARG) pour Pare-feu Azure. Ces requêtes vous aident à obtenir des insights sur vos ressources de pare-feu Azure et à vous assurer qu’elles sont configurées avec les paramètres appropriés. En analysant les modèles d’utilisation et en exposant des recommandations d’Azure Advisor, vous pouvez optimiser vos configurations de pare-feu Azure pour optimiser l’efficacité des coûts.
Requête : Analyse des stratégies de pare-feu et de pare-feu Azure
Cette requête ARG analyse les pare-feu Azure et leurs stratégies de pare-feu associées dans votre environnement Azure. Il cible spécifiquement les pare-feu avec un niveau de référence SKU Premium et vérifie que les configurations dans leurs stratégies de pare-feu associées utilisent les fonctionnalités Premium.
Catégorie
Optimisation
Requête
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
Requête : analyse des sous-réseaux Pare-feu Azure et des sous-réseaux associés
Cette requête ARG analyse les pare-feu Azure et leurs sous-réseaux associés dans votre environnement Azure. Il fournit des informations sur les sous-réseaux associés à chaque instance de pare-feu Azure. Optimisez l’utilisation du pare-feu Azure en ayant une instance centrale du pare-feu Azure dans le réseau virtuel hub ou un hub sécurisé Virtual WAN. Ensuite, partagez le même pare-feu sur de nombreux réseaux virtuels spoke connectés au même hub à partir de la même région.
Catégorie
Optimisation
Requête
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
Application Gateway
La section suivante fournit des requêtes ARG pour Azure Application Gateway. Il vous permet d’obtenir des insights sur vos ressources Azure Application Gateway et de s’assurer qu’elles sont configurées avec les paramètres appropriés.
Requête : passerelles d’application inactives
Cette requête ARG analyse les passerelles d’application et leurs pools principaux associés dans votre environnement Azure. Il fournit des informations sur les passerelles d’application qui ont des pools back-ends vides, ce qui indique qu’elles peuvent être inactives et potentiellement inutiles.
Catégorie
Optimisation
Requête
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 section suivante fournit une requête ARG pour ExpressRoute. Il vous permet d’obtenir des insights sur vos circuits ExpressRoute et de s’assurer qu’ils sont configurés avec les paramètres appropriés.
Requête : Circuits ExpressRoute inactifs
Cette requête ARG analyse les circuits ExpressRoute au sein de votre environnement Azure pour identifier les circuits sans circuit terminé.
Catégorie
Optimisation
Requête
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
Équilibreur de charge
La section suivante fournit une requête ARG pour Azure Load Balancer. Il vous permet d’obtenir des insights sur vos ressources d’équilibreur de charge Azure et de s’assurer qu’elles sont configurées avec les paramètres appropriés.
Requête : équilibreurs de charge inactifs
Cette requête ARG analyse les équilibreurs de charge Azure et leurs pools principaux associés au sein de votre environnement Azure. Il fournit des informations sur les équilibreurs de charge qui ont des pools back-ends vides, indiquant qu’ils peuvent être inactifs et potentiellement inutiles.
Catégorie
Optimisation
Requête
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 privé
La section suivante fournit une requête ARG pour DNS privé. Il vous permet d’obtenir des insights sur vos ressources DNS privé et de s’assurer qu’elles sont configurées avec les paramètres appropriés.
Requête : DNS privé
Cette requête ARG analyse DNS privé zones au sein de votre environnement Azure pour identifier les éléments sans Réseau virtuel Liens.
Catégorie
Optimisation
Requête
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
Adresse IP publique
Les sections suivantes fournissent des requêtes ARG pour les adresses IP publiques. Ils vous aident à obtenir des informations sur vos ressources d’adresse IP publique et à vérifier qu’elles sont configurées avec les paramètres appropriés.
Requête : Adresses IP publiques inactives
Cette requête ARG analyse les adresses IP publiques Azure. Il fournit des informations sur les adresses IP publiques inactives et potentiellement inutiles.
Catégorie
Optimisation
Requête
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
)
Requête : identifier la méthode de routage des adresses IP publiques
Cette requête ARG analyse les adresses IP publiques et identifie la méthode de routage, la méthode d’allocation et la référence SKU. Il analyse également d’autres détails des adresses IP publiques associées à une configuration IP.
Catégorie
Optimisation
Requête
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
Requête : Vérifier la stratégie de protection DDoS des adresses IP publiques
Si vous devez protéger moins de 15 ressources IP publiques, le niveau de protection IP est l’option la plus rentable. Toutefois, si vous avez plus de 15 ressources IP publiques à protéger, le niveau de protection réseau devient plus économique.
Catégorie
Optimisation
Requête
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")
Passerelle de réseau virtuel
Les sections suivantes fournissent des requêtes ARG pour les passerelles Réseau virtuel. Ils vous aident à obtenir des informations sur vos ressources de passerelle Réseau virtuel et à vous assurer qu’elles sont configurées avec les paramètres appropriés.
Requête : rechercher une passerelle d’inactivité Réseau virtuel
Cette requête ARG analyse Réseau virtuel passerelles au sein de votre environnement Azure pour identifier les éléments inactifs.
Catégorie
Optimisation
Requête
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
Requête : Rechercher la passerelle NAT inactive
Cette requête ARG analyse les passerelles NAT au sein de votre environnement Azure pour identifier les éléments inactifs.
Catégorie
Optimisation
Requête
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
Vous cherchez plus ?
Avons-nous manqué quoi que ce soit ? Voulez-vous voir quelque chose ajouté ? Nous aimerions en savoir plus sur toutes les questions, problèmes ou solutions que vous souhaitez voir ici. Créez un problème avec les détails que vous souhaitez voir ici.
Contenu connexe
Ressources connexes :
Solutions connexes :