NSGのセキュリティ規則にIPを追加するPowerShell

Azure,Network Security Group,PowerShell/Azure CLI

NSG(Network Security Group)で既存のセキュリティ規則へIPアドレスを追加するPowerShellのご紹介です。

Azureでは仮想マシン(Azure VM)などへのネットワークアクセス制限にはNSGを使います。
NSGでは接続元、接続先、ポート等を指定してルール設定を行います。
インターネットからのアクセスなどでIPアドレスで絞ったセキュリティ規則を作成し変更する事がありました。
少しでも楽になるようにという事でPowerShellでも出来るようにしてみました。

※本記事内ではネットワークセキュリティグループ(Network Security Group)をNSGと表記しています。

スポンサーリンク

PowerShellで既存のNSGのセキュリティ規則にIPを追加

受信セキュリティ規則の接続元(Source Address Prefix)にIPアドレスを追加します。
PowerShell実行時に3つの変数を指定する事で、既存ルールの設定変更を行うようにしています。

      • NSG名
      • NSGのセキュリティ規則名
      • 追加するIPアドレス

リソースグループ名は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のセキュリティ規則名
      • 追加するIPアドレス

PowerShell名を"NSG_Rule_Update_SourceIP.ps1″とした場合の実行例です。

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

NSGをARMテンプレートを使ってデプロイする手順はこちらに記載しています。

スポンサーリンク