Azure PowerShell を使って、 Azure Resource Manager (ARM) の NSG の ルールを追加、削除する方法

こんにちは! Azure サポートの 大塚です。今回は、既に作成してある NSG(Network Security Group) に対して、Azure PowerShell にて ルールの追加や削除を実施する方法をご紹介します。※NSG を初めて作成する場合はこちらをご確認ください。

はじめに..

Azure PowerShell をインストールしたら、まずはログインして、適切なサブスクリプションとリソースグループを選択します。

# ログインとサブスクリプション指定

 Login-AzureRmAccount
Select-AzureRmSubscription -SubscriptionId "サブスクリプション ID"

# 既存の NSG に作成したすべてのルールを表示する方法

  Get-AzureRmNetworkSecurityGroup -Name "NSG の名前" -ResourceGroupName "リソースグループ名"

※出力結果の中の [SecurityRules] に表示されている内容が、お客様側で作成したルールです。


■ 既存の NSG にルールを追加する方法

# NSG の情報を取得します。

 $nsg = Get-AzureRmNetworkSecurityGroup -Name "NSG の名前" -ResourceGroupName "リソースグループ名"

# 取得した NSG に任意のルールを作成します。

 Add-AzureRmNetworkSecurityRuleConfig `
-Name "新規作成するルールの名前" `
-NetworkSecurityGroup $nsg `
-Description "ルールの説明" `
-Protocol "プロトコル" `
-SourcePortRange "ソースポート" `
-DestinationPortRange "宛先ポート" `
-SourceAddressPrefix "ソース IP レンジ" `
-DestinationAddressPrefix "宛先 IP レンジ" `
-Access "Deny / Allow" `
-Priority "優先度" `
-Direction "Inbound / Outbound"

# NSG の情報を更新します。

 Set-AzureRmNetworkSecurityGroup -NetworkSecurityGroup $nsg

■ 既存のルールの内容を一部変更する方法

# NSG の情報を取得します

 $nsg = Get-AzureRmNetworkSecurityGroup -Name "NSG の名前" -ResourceGroupName "リソースグループ名"

# 変更したいルールの内容を設定します。

 Set-AzureRmNetworkSecurityRuleConfig `
-Name "内容を変更したいルールの名前" `
-NetworkSecurityGroup $nsg `
-Description "ルールの説明" `
-Protocol "プロトコル" `
-SourcePortRange "ソースポート" `
-DestinationPortRange "宛先ポート" `
-SourceAddressPrefix "ソース IP レンジ" `
-DestinationAddressPrefix "宛先 IP レンジ" `
-Access "Deny / Allow" `
-Priority "優先度" `
-Direction "Inbound / Outbound"

# NSG の情報を更新します。

 Set-AzureRmNetworkSecurityGroup -NetworkSecurityGroup $nsg

■ 既存の NSG に作成したルールの 1 つを削除する方法

# NSG の情報を取得します。

 $nsg = Get-AzureRmNetworkSecurityGroup -Name "NSG の名前" -ResourceGroupName "リソースグループ名"

# NSG から消したいルールを削除します。

 Remove-AzureRmNetworkSecurityRuleConfig -Name "ルールの名前" -NetworkSecurityGroup $nsg

# NSG の情報を更新します。

 Set-AzureRmNetworkSecurityGroup -NetworkSecurityGroup $nsg

 

おまけ #1

(NIC 関連のコマンド)

※ NIC の名前がわからない場合は管理ポータルの左部より「参照」- 「ネットワーク インターフェイス」
と選択すると一覧情報が出てきます。その中から対象の名前をメモ等していただければと思います。

■ 既存の NSG を NIC に紐づける方法

# NSG の情報を取得します。

 $nsg = Get-AzureRmNetworkSecurityGroup -Name "NSG の名前" -ResourceGroupName "リソースグループ名"

# NIC の情報を取得します。

 $nic = Get-AzureRmNetworkInterface -Name "NIC の名前" -ResourceGroupName "リソースグループ名"

# NIC に NSG を紐づけます。

 $nic.NetworkSecurityGroup = $nsg

# NIC  の設定を更新します。

 Set-AzureRmNetworkInterface -NetworkInterface $nic

■ NIC  に紐づけた NSG の設定を外す方法

# NIC の情報を取得します。

 $nic = Get-AzureRmNetworkInterface -Name "NIC の名前" -ResourceGroupName "リソースグループ名"

# NIC に関連する NSG を null に指定します。

 $nic.NetworkSecurityGroup = $null

# NIC の設定を更新します。

 Set-AzureRmNetworkInterface -NetworkInterface $nic

おまけ #2

(サブネット関連のコマンド)

■既存の NSG を サブネットに紐づける方法

# NSG の情報を取得します。

 $nsg = Get-AzureRmNetworkSecurityGroup -Name "NSG の名前" -ResourceGroupName "リソースグループ名"

# 仮想ネットワークの情報を取得します。

 $vnet = Get-AzureRmVirtualNetwork -Name "仮想ネットワーク名" -ResourceGroupName "リソースグループ名"

# サブネットの情報を取得します。

 $subnet = Get-AzureRmVirtualNetworkSubnetConfig -Name "サブネット名" -VirtualNetwork $vnet

# サブネットに NSG を関連付けます。

 $subnet.NetworkSecurityGroup = $nsg

# サブネットの設定を更新します。

 Set-AzureRmVirtualNetwork -VirtualNetwork $vnet

■ サブネットに紐づけた NSG を外す方法

# 仮想ネットワークの情報を取得します。

 $vnet = Get-AzureRmVirtualNetwork -Name "仮想ネットワーク名" -ResourceGroupName "リソースグループ名"

# サブネットの情報を取得します。

 $subnet = Get-AzureRmVirtualNetworkSubnetConfig -Name "サブネット名" -VirtualNetwork $vnet

# サブネットに NSG を「なし」にして関連付けします。

 $subnet.NetworkSecurityGroup = $null

# サブネットの設定を更新します。

 Set-AzureRmVirtualNetwork -VirtualNetwork $vnet