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

a-maotsu

こんにちは! 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