Application Security Group dans Azure
Vous connaissez tous les NSG, mais peut-être moins les ASG, feature qui vient de passer en GA fin mars 2018. Cette feature permet de définir des stratégies de sécurité réseau précises basées sur des charges de travail, des applications ou des environnements à la place d’adresses IP explicites. Cela permet donc de configurer la sécurité du réseau en utilisant une approche centrée sur l’application au sein des groupes de sécurité réseau (NSG). Cette approche permet de grouper les machines virtuelles de manière logique, quelle que soit leur adresse IP ou leur affectation de sous-réseau dans un réseau virtuel.
Les groupes de sécurité d’application Azure (ASG) fonctionnent en affectant les interfaces réseau des machines virtuelles, en tant que membres de l’ASG. Les groupes ASG sont ensuite utilisés dans les groupes NSG en tant que source ou destination d’une règle, ce qui offre des options supplémentaires et une flexibilité pour contrôler les flux de ressources réseau au sein d’un sous-réseau.
Les exigences suivantes s’appliquent à la création et à l’utilisation des groupes d’utilisateurs:
- Toutes les interfaces réseaux utilisées dans un groupe ASG doivent se trouver dans le même VNET
- Si les groupes ASG sont utilisés dans la source et la destination, ils doivent se trouver dans le même VNET
Vous allez vite voir de quoi on parle avec le schéma ci-dessous:
Avec les règles NSG « traditionnelles », il faudrait que chaque adresse IP soit ajoutée à une règle. Au fur et à mesure que des machines virtuelles sont ajoutées, supprimées ou mises à jour, le temps de gestion nécessaire pour maintenir le NSG peut devenir important et surtout fastidieux, on ne parle même pas de la documentation associée. Tandis qu’avec les ASG , à mesure que les interfaces réseau des machines virtuelles sont ajoutées, les règles de sécurité réseau sont appliquées sans qu’il soit nécessaire de mettre à jour la règle NSG elle-même.
Un peu de Powershell
Registre-AzureRmProviderFeature - FeatureName AllowApplicationSecurityGroups - ProviderNamespace Microsoft.Network
Register-AzureRmResourceProvider - ProviderNamespace Microsoft.Network
Création des ASG
$ webASG = new-AzureRmApplicationSecurityGroup - ResourceGroupName RGTEST - Name webASG - Location westeurope
$ sqlASQ = new-AzureRmApplicationSecurityGroup - ResourceGroupName RGTEST - Name sqlASG -Location westeurope
Création des règles pour SQL et HTTPS
$webRule = New-AzureRmNetworkSecurityRuleConfig -Name "okHttps" -Access Allow -Protocol Tcp -Direction outbound -Priority 1500 -SourceApplicationSecurityGroupId $webASG.id -SourcePortRange * -DestinationAddressPrefix VirtualNetwork -DestinationPortRange 443
$sqlRule = New-AzureRmNetworkSecurityRuleConfig -Name "okSql" -Access Allow -Protocol Tcp -Direction outbound -Priority 1000 -SourceApplicationSecurityGroupId $sqlASG.id -SourcePortRange * -DestinationAddressPrefix VirtualNetwork -DestinationPortRange 1433
Création du NSG avec application des AGS
$nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName RGTEST -Location westurope -Name ASGTEST -SecurityRules $webRule,$sqlRule
Assigner les NSG au subnet
$vnet = Get-AzureRmVirtualNetwork -Name ASGTEST -ResourceGroupName RGTEST
Set-AzureRmVirtualNetworkSubnetConfig -Name default -VirtualNetwork $vnet -NetworkSecurityGroupId $nsg.Id -AddressPrefix '10.1.0.0/16'
Set-AzureRmVirtualNetwork -VirtualNetwork $vnet
Ajouter les NICS au ASG
$webNic = Get-AzureRmNetworkInterface -Name NICNAME -ResourceGroupName RGTEST
$webNic.IpConfigurations[0].ApplicationSecurityGroups = $webASG
Set-AzureRmNetworkInterface -NetworkInterface $webNic
$sqlNic = Get-AzureRmNetworkInterface -Name NICNAME -ResourceGroupName RGTEST
$sqlNic.IpConfigurations[0].ApplicationSecurityGroups = $sqlASG
Set-AzureRmNetworkInterface -NetworkInterface $sqlNic
Limite des ASG
Je travaille actuellement en tant qu’Enterprise Architect pour le groupe CAPGEMINI. Acteur et expert communautaire reconnu depuis de nombreuses années, j’anime ce site autour des technologies Microsoft, des thématiques du Cloud, des infrastructures, … Je suis également à l’origine de nombreuses publications dans la presse IT.