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

Partagez si ça vous plait !
0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest

0 Commentaires
Commentaires en ligne
Afficher tous les commentaires
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x