Azure NSG - фильтрация определенных IP-адресов из входного CSV - PullRequest
0 голосов
/ 18 октября 2018

Я использую PowerShell для создания NSG Azure, которые будут использовать входные данные из CSV-файла с правилами безопасности.Я использую приведенный ниже скрипт.

$NSG = Get-AzureRmNetworkSecurityGroup -Name test -ResourceGroupName RG-VM-QTY

foreach($rule in import-csv "SystemPath\inputfile.csv") 
{ 
$NSG | Add-AzureRmNetworkSecurityRuleConfig -Name $rule.name -Access Allow -Protocol $rule.protocol -Direction $rule.direction -Priority $rule.priority 
-SourceAddressPrefix $rule.source -SourcePortRange * 
-DestinationAddressPrefix $rule.destination -DestinationPortRange $rule.port 
}

$NSG | Set-AzureRmNetworkSecurityGroup

Хотел проверить, есть ли способ ограничить добавление определенного IP-адреса, скажем, 127.0.0.1 для добавления в качестве источника или назначения в любом из правил.Любая проверка, которую я могу поставить, чтобы вообще не создавать NSG, если IP-адрес 127.0.0.1 присутствует в .csv?

Заранее спасибо, ребята.!Приветствия.

1 Ответ

0 голосов
/ 19 октября 2018

Вот модифицированный скрипт PowerShell с простым , если добавлено условие , чтобы проверить, что SourceAddressPrefix и DestinationAddressPrefix не должны быть точно 127.0.0.1

$NSG = Get-AzureRmNetworkSecurityGroup -Name test -ResourceGroupName RG-VM-QTY 

foreach($rule in import-csv "SystemPath\inputfile.csv") 
{
   # additional if condition to check that source or destination address prefix should not be 127.0.0.1
   if($rule.SourceAddressPrefix -ne "127.0.0.1" -And $rule.DestinationAddressPrefix -ne "127.0.0.1")
   { 
          $NSG | Add-AzureRmNetworkSecurityRuleConfig -Name $rule.name -Access Allow -Protocol $rule.protocol -Direction $rule.direction -Priority $rule.priority 
             -SourceAddressPrefix $rule.source -SourcePortRange * -DestinationAddressPrefix $rule.destination -DestinationPortRange $rule.port 
   }
} 

$NSG | Set-AzureRmNetworkSecurityGroup

Ваше состояние сейчас очень простоепроверить 127.0.0.1, чтобы условие было достаточно хорошим.

В случае, если вы попадаете на более сложную логику, рассмотрите возможность создания отдельной функции, скажем что-нибудь вроде ValidateRule (), которая может инкапсулировать все условия и вызвать эту функцию, чтобы проверить, следует ли добавить правило.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...