Comment bloquer le trafic réseau avec Azure Virtual Network Manager : Azure PowerShell

Cet article vous montre comment créer une règle de sécurité pour bloquer le trafic réseau sortant vers les ports 80 et 443, que vous pouvez ajouter à vos collections de règles. Pour plus d’informations, consultez Règles d’administration de la sécurité.

Prérequis

Avant de commencer la configuration des règles de sécurité, procédez comme suit :

Créer la configuration de l’administrateur sécurité

Créez une configuration d’administrateur sécurité en utilisant New-AzNetworkManagerSecurityAdminConfiguration. La configuration contient les collections de règles et les règles que vous créez dans les sections suivantes.

$config = @{
    Name = 'SecurityConfig'
    ResourceGroupName = 'myAVNMResourceGroup'
    NetworkManagerName = 'myAVNM'
}
$securityconfig = New-AzNetworkManagerSecurityAdminConfiguration @config

Ajouter le groupe réseau à un groupe de configuration

Une configuration d’administrateur sécurité s’applique à un ou plusieurs groupes réseau. Ces étapes stockent le groupe réseau dans une variable et l’ajoutent à un groupe de configuration.

  1. Stockez le groupe réseau dans une variable en utilisant Get-AzNetworkManagerGroup.

    $ng = @{
        Name = 'myNetworkGroup'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManagerName = 'myAVNM'
    }
    $networkgroup = Get-AzNetworkManagerGroup @ng   
    
  2. Créez un élément de groupe de sécurité pour le groupe réseau en utilisant New-AzNetworkManagerSecurityGroupItem.

    $groupItem = New-AzNetworkManagerSecurityGroupItem -NetworkGroupId $networkgroup.id
    
  3. Créez un groupe de configurations et ajoutez l’élément de groupe à partir de l’étape précédente.

    [System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.PSNetworkManagerSecurityGroupItem]]$configGroup = @()  
    $configGroup.Add($groupItem) 
    

Créez la collection de règles

Créez une collection de règles d’administrateur sécurité en utilisant New-AzNetworkManagerSecurityAdminRuleCollection. La collection s’applique au groupe de configuration que vous avez créé dans la section précédente.

$collection = @{
    Name = 'myRuleCollection'
    ResourceGroupName = 'myAVNMResourceGroup'
    NetworkManagerName = 'myAVNM'
    ConfigName = 'SecurityConfig'
}
$rulecollection = New-AzNetworkManagerSecurityAdminRuleCollection @collection -AppliesToGroup $configGroup

Créez la règle de refus pour les ports 80 et 443

Ces étapes définissent les préfixes d’adresse et les ports de la règle, puis créent une règle nommée Block_HTTP_HTTPS qui refuse le trafic sortant vers les ports 80 et 443.

  1. Définissez les préfixes et ports d’adresse source et destination en utilisant New-AzNetworkManagerAddressPrefixItem.

    $sourceip = @{
        AddressPrefix = 'Internet'
        AddressPrefixType = 'ServiceTag'
    }
    $sourceprefix = New-AzNetworkManagerAddressPrefixItem @sourceip
    
    $destinationip = @{
        AddressPrefix = '10.0.0.0/24'
        AddressPrefixType = 'IPPrefix'
    }
    $destinationprefix = New-AzNetworkManagerAddressPrefixItem @destinationip
    
    [System.Collections.Generic.List[string]]$sourcePortList = @() 
    $sourcePortList.Add("65500") 
    
    [System.Collections.Generic.List[string]]$destinationPortList = @() 
    $destinationPortList.Add("80")
    $destinationPortList.Add("443")
    
  2. Créez la règle de sécurité en utilisant New-AzNetworkManagerSecurityAdminRule.

    $rule = @{
        Name = 'Block_HTTP_HTTPS'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManagerName = 'myAVNM'
        SecurityAdminConfigurationName = 'SecurityConfig'
        RuleCollectionName = 'myRuleCollection'
        Protocol = 'TCP'
        Access = 'Deny'
        Priority = '100'
        Direction = 'Outbound'
        SourceAddressPrefix = $sourceprefix
        SourcePortRange = $sourcePortList
        DestinationAddressPrefix = $destinationprefix
        DestinationPortRange = $destinationPortList
    }
    $securityrule = New-AzNetworkManagerSecurityAdminRule @rule
    

Valider le déploiement

Validez la configuration de sécurité dans les régions cibles en utilisant Deploy-AzNetworkManagerCommit. Construis la $configIds liste à partir de la configuration d’administrateur sécurité que tu as créée plus tôt, puis transmets-la au commit.

[System.Collections.Generic.List[string]]$configIds = @()
$configIds.Add($securityconfig.Id)

$regions = @("westus")
$deployment = @{
    Name = 'myAVNM'
    ResourceGroupName = 'myAVNMResourceGroup'
    ConfigurationId = $configIds
    TargetLocation = $regions
    CommitType = 'SecurityAdmin'
}
Deploy-AzNetworkManagerCommit @deployment 

Supprimer une configuration de la sécurité

Si vous n’avez plus besoin de la configuration de sécurité, assurez-vous que les critères suivants sont vrais afin de pouvoir supprimer la configuration de sécurité elle-même :

  • Il n’existe aucun déploiement de configurations dans une région.
  • Supprimez toutes les règles de sécurité dans une collection de règles associée à la configuration de sécurité.

Supprimer le déploiement de la configuration de sécurité

Supprimez le déploiement de sécurité en déployant une configuration avec Deploy-AzNetworkManagerCommit.

[System.Collections.Generic.List[string]]$configIds = @()
[System.Collections.Generic.List[string]]$regions = @()   
$regions.Add("westus")     
$removedeployment = @{
    Name = 'myAVNM'
    ResourceGroupName = 'myAVNMResourceGroup'
    ConfigurationId = $configIds
    TargetLocation = $regions
    CommitType = 'SecurityAdmin'
}
Deploy-AzNetworkManagerCommit @removedeployment

Supprimer des règles de sécurité

Supprimez la règle de sécurité que vous avez créée précédemment en utilisant Remove-AzNetworkManagerSecurityAdminRule.

$removerule = @{
    Name = 'Block_HTTP_HTTPS'
    ResourceGroupName = 'myAVNMResourceGroup'
    NetworkManagerName = 'myAVNM'
    SecurityAdminConfigurationName = 'SecurityConfig'
    RuleCollectionName = 'myRuleCollection'
}
Remove-AzNetworkManagerSecurityAdminRule @removerule

Supprimer des collections de règles de sécurité

$removecollection = @{
    Name = 'myRuleCollection'
    ResourceGroupName = 'myAVNMResourceGroup'
    NetworkManagerName = 'myAVNM'
    SecurityAdminConfigurationName = 'SecurityConfig'
}
Remove-AzNetworkManagerSecurityAdminRuleCollection @removecollection

Supprimer la configuration

Supprimez la configuration de sécurité avec Remove-AzNetworkManagerSecurityAdminConfiguration.

$removeconfig = @{
    Name = 'SecurityConfig'
    ResourceGroupName = 'myAVNMResourceGroup'
    NetworkManagerName = 'myAVNM'
}
Remove-AzNetworkManagerSecurityAdminConfiguration @removeconfig

Étapes suivantes

En savoir plus sur les Règles d’administration de la sécurité.