Network Security Groupの既存ルールにアクセス制限IPを追加するPower Shell

 

Network Security Group(NSG)で、アクセス元のIPを制限したりするケースもあるかと思います。
既存NSGの特定ルールにアクセス元のIPを追加作業を日々行う必要があったので、簡単にしようという事で、既存ルールへのIP追加をPower Shellで行ってみました。

1 .既存NSGルールにソースIPを追加するPower Shell

以下のサンプルでは、Source Address Prefixに、IPを追加しています。
今回はPower Shell実行時に、NSG名、NSGルール名、追加するAddressを変数で指定するようにしています。

#NSG Rule Update(SourceAddressPrefix)

param (
[string] [Parameter(Mandatory=$true)] $NSGName,
[string] [Parameter(Mandatory=$true)] $NSGRuleName,
[string] [Parameter(Mandatory=$true)] $Address
)

$resourceGroupName = “RG名”

# Get the NSG resource
$nsg = Get-AzNetworkSecurityGroup -Name $NSGName -ResourceGroupName $resourceGroupName

# New Prefix List
$newPrefix = New-Object ‘System.Collections.Generic.List[string]’

# Existing Prefix Add
($nsg.SecurityRules | where {$_.Name -eq $NSGRuleName}).SourceAddressPrefix | foreach { $newPrefix.Add($_) }

# New Prefix Add
$newPrefix.Add($Address)

# New Prefix Rewrite
($nsg.SecurityRules | where {$_.Name -eq $NSGRuleName}).SourceAddressPrefix = $newPrefix

# Reflect changes
$nsg | Set-AzNetworkSecurityGroup

以下のように、NSG名等を指定しPowerShell実行します。(今回はPowerShell名を、NSG_Rule_Update_SourceIP.ps1としています。)

c:\./NSG_Rule_Update_SourceIP.ps1 -NSGName NSG名 -NSGRuleName NSGルール名 -Address 追加するIPアドレス