Azureの小ネタ (改)

~Azureネタを中心に、色々とその他の技術的なことなどを~

仮想マシンV2にネットワーク セキュリティ グループを追加する

Visual Studio 、Azure PowerShell などで 仮想マシンV2 を作成してみましたが、とくにネットワークセキュリティについて設定していませんでした。このままですとPingも通ってしまってあまりよろしくありません。

これらはネットワークセキュリティグループで、制御するのが一般的です。ネットワークセキュリティグループはFirewallそのものと思ってもらえれば。

statemachine.hatenablog.com

Azure PowerShellでの例

以下は、上記スクリプトの差分的な感じです。

ARM Azure PowerShellでは、

  • New-AzureNetworkSecurityRuleConfig
  • New-AzureNetworkSecurityGroup

を使います。その名の通り、New-AzureNetworkSecurityRuleConfigでルールを定義し、New-AzureNetworkSecurityGroup でネットワークセキュリティグループを作成します。

ルールを複数作って、一括して設定することもできます。

$rule = New-AzureNetworkSecurityRuleConfig -Name "allow-ssh" `
-Protocol Tcp -Direction Inbound -Access Allow -Priority 100 `
-SourcePortRange * -SourceAddressPrefix * `
-DestinationPortRange 22 -DestinationAddressPrefix *


$nsg = New-AzureNetworkSecurityGroup -ResourceGroupName $rg `
-Name "myNetworkSecurity" -Location japanwest `
-SecurityRules $rule 

作ったルールは、ネットワークインタフェースに設定できるほか、サブネットに対しても指定できるみたいです。

New-AzureNetworkInterface コマンドのNetworkSecurityGroup 引数に渡せばOKです。

$nic    = New-AzureNetworkInterface -ResourceGroupName $rg -Location $loc `
    -Name $nicName -PrivateIpAddress $privateIpAddress -Subnet $subnet `
    -PublicIpAddress $ip -NetworkSecurityGroup $nsg

以上