Azure PowerShell で CSV から NSG を作成する


NSG に大量のルールを登録する場合、CSV からインポートしたいことがありますよね。
Azure PowerShell でサクっとやりましょう。

# 既存の NSG を取得
$NSG = Get-AzureRmNetworkSecurityGroup -Name "NSG 名" -ResourceGroupName "リソース グループ名"

# もしくは空の NSG を作成
# $NSG = New-AzureRmNetworkSecurityGroup -Name "NSG 名" -ResourceGroupName "リソース グループ名" -Location "リージョン名"

# CSV ファイルを取得
$CSV = Import-CSV "CSV のパス" -Encoding UTF8

# 各行のルールを追加
$CSV | foreach{
    Add-AzureRmNetworkSecurityRuleConfig `
    -Name $_.Name `
    -NetworkSecurityGroup $NSG `
    -Description $_.Description `
    -Protocol $_.Protocol `
    -SourcePortRange $_.SourcePortRange `
    -DestinationPortRange $_.DestinationPortRange `
    -SourceAddressPrefix ($_.SourceAddressPrefix  -split ",") `
    -DestinationAddressPrefix ($_.DestinationAddressPrefix  -split ",") `
    -Access $_.Access `
    -Priority $_.Priority `
    -Direction $_.Direction
}

# 設定を反映
Set-AzureRmNetworkSecurityGroup -NetworkSecurityGroup $NSG

ちなみに、1 つのルールに複数のアドレス空間を入れることができるようになったので、Source / Destination Address Prefix に -split でバラした配列を突っ込めるようにしてみました。(インポート用の CSV サンプルはこちら)

ね、簡単でしょう?


2 comments for “Azure PowerShell で CSV から NSG を作成する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です