Azure NSG - фильтрация определенных IP-адресов из входного CSV
Я использую 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, если в.csv присутствует IP 127.0.0.1?
Заранее спасибо, ребята. Приветствия.
1 ответ
Вот модифицированный сценарий PowerShell с простым добавленным условием if, чтобы проверить, что 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(), которая может инкапсулировать все условия, и вызовите эту функцию, чтобы проверить, следует ли добавить правило.