Azure Network Security Group(NSG) のルールにIPを追加するPowerShell

AzureではAzure VM等へのアクセス制限をNetwork Security Group(NSG)を使って行います。
NSGでは接続元、接続先、ポート等を指定してルール設定を行います。
インターネット向けのアクセス等ではIPアドレスで絞ったルールを作成する事もあるかと思います。
NSGルール設定変更をPowerShellでやってみました。今回はNSGの既存ルールにアクセス元のIPを追加をやってみました。

スポンサーリンク

既存NSGルールにIPを追加するPowerShell

今回は接続元IP(Source Address Prefix)にIPを追加しています。
PowerShell実行時に3つの変数を指定する事で、既存ルールの設定変更を行うようにしています。

      • NSG名
      • NSGルール名
      • 追加するAddress

リソースグループ名はPowerShellの中で設定するようにしていますので、環境に合わせて設定します。

#NSG Rule Update(SourceAddressPrefix)

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

$resourceGroupName = “リソースグループ名"

# 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

3つのパラメータを指定しPowerShellを実行します。

      • NSG名
      • NSGルール名
      • 追加するAddress

今回はPowerShell名を、NSG_Rule_Update_SourceIP.ps1としています。

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

その他にもNSGをARMテンプレートを使ってデプロイする事を試しています。併せて見て頂ければと。