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