NSGの既存ルールにIPを追加するPower Shell

 

AzureではAzure VM等へのアクセス制限をNetwork Security Group(NSG)を使って行います。

NSGでは接続元、接続先、ポート等を指定してルール設定を行いますが、IPアドレスを指定してルールを作成する事もあるかと思います。

このルールの設定変更を簡単にできないか?と言う事でPower Shellでやってみました。

今回はNSGの既存ルールにアクセス元のIPを追をPower Shellで行ってみました。

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

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

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

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

#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つのパラメータを指定しPower Shellを実行します。

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

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

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

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

ARMテンプレートを使って、Network Security Groupのデプロイしてみた(特定のIPからRDPを許可)