Azure VMからのアウトバウンド通信をWindows Updateのみに制限してみた
Azure上で仮想マシンをデプロイした場合、デフォルトの設定では仮想マシンからインターネットへのアクセスが許可された状態になります。これだとセキュリティ的にちょっとと言う事もあるかと思いますが仮想マシンからインターネットへのアクセスをすべて閉じてしまうとWindows Updateも出来なくなってしまいます。
そんな利用者向けに簡単にネットワークセキュリティグループ(NSG)の設定で対応できるようにサービスタグが追加されました。それがAzureUpdateDeliveryと言うWindows Update用のサービスタグになります。
今回はこのネットワークセキュリティグループに追加されたWindows Update用のサービスタグを利用して、仮想マシンからインターネットへのアクセスを拒否しながらWindows Updateだけ許可する設定を試してみました。またサービスタグやPowerShellを使ったネットワークセキュリティグループの設定変更内容についても簡単に纏めてみました。
※Azure FirewallでFQDNを利用したアクセス制御を行うと同様の事が可能ですがコスト的にはお高くなります。
※サービスタグはAzure Firewallでも利用されます。
ネットワークセキュリティグループにWindows Update用のサービスタグが追加された
サービスタグとは
サービスタグとは指定された Azure サービスからの IP アドレス プレフィックスのグループになります。
ネットワーク セキュリティ グループまたは Azure Firewallでアクセス制御(許可や拒否)を行う際に使われます。サービス タグに含まれるIPアドレスの管理はAzure側で自動で行われるため、Azureのサービスで利用されるアドレスが変わった場合でもユーザー側で意識する事は必要ありません。
例えばAzureFrontDoor.BackendであればFrontDoorからAzureのリソースへ通信があるIPアドレスのグループになります。FrontDoorからのアクセスのみを許可したい場合は、ネットワークセキュリティグループのサービスタグでAzureFrontDoor.Backendを指定する事で実現出来ます。
※デフォルトの許可設定でもAzureLoadBalancerのサービスタグが利用されています。
AzureUpdateDeliveryがWindows Update用のサービスタグ
AzureUpdateDeliveryがWindows Update用のサービスタグになります。
こちらのサービスタグの解説を見ると、ネットワークセキュリティグループのアウトバウンド設定に以下のルールを追加する事でWindows Updateへの通信許可を行う事が出来そうです。
-
- AzureUpdateDelivery: TCP、ポート 443
- AzureFrontDoor.FirstParty: TCP、ポート 80
※AzureFrontDoor.FirstPartyを組み合わせて利用する必要があるようです。サービスタグAzureUpdateDeliveryについては2021年9月現在ではAzure Portalを利用した設定は実施出来ずPowerShell等を利用してネットワークセキュリティグループの設定を行う必要があるそうです。
ネットワークセキュリティグループにサービスタグを使ってWindows Update用の送信セキュリティ規則を追加
今回は仮想マシンからインターネットへのアクセスを拒否とWindows Updateを許可する送信セキュリティ規則を追加します。
PowerShellを使ったネットワークセキュリティグループへのセキュリティ規則追加方法
ネットワークセキュリティグループへのルール追加はGet-AzNetworkSecurityGroup、Add-AzNetworkSecurityRuleConfig、Set-AzNetworkSecurityGroupを利用して行います。各コマンドの意味は表の通りになります。
コマンド | 概要 | リンク |
Get-AzNetworkSecurityGroup | ネットワークセキュリティグループの設定情報を取得します | こちら |
Add-AzNetworkSecurityRuleConfig | ネットワークセキュリティ規則の構成(受信規則や送信規則)をネットワークセキュリティグループの設定情報に追加します | こちら |
Set-AzNetworkSecurityGroup | ネットワークセキュリティグループの設定を更新します | こちら |
Add-AzNetworkSecurityRuleConfigはルールを追加するだけで実際の設定変更処理はSet-AzNetworkSecurityGroupで実施します。
仮想マシンからインターネットへのアクセスを禁止する送信セキュリティ規則を追加
最初に仮想マシンからインターネットへのアクセスを拒否する送信セキュリティ規則を作成します。
-
- 設定値
- 規則を追加するネットワークセキュリティグループ:Win-Update-Test-NSG
- 送信規則名:InterNetDeny
- 優先順位:4096
- プロトコル:Any
- 宛先:Internet
- アクション:拒否
- 説明:インターネットへのアクセスを拒否
- 設定値
インターネットへのアクセス拒否する | |
こちらのPowerShellを任意のファイル名.ps1として保存しVisual StudioやPowerShellで実行します。 ※事前にAzure PowerShellをインストールしておく必要があります。
※リソースグループ名は$resourceGroupNameとしています。ネットワークセキュリティグループのリソースグループ名を指定します。 |
|
InterNetDenyと言う送信セキュリティ規則が追加されている事が分かります。 |
|
設定内容を確認すると宛先サービスタグにInternetが指定されてアクセスが拒否されている事が分かります。 |
仮想マシンからWindows Updateへのアクセス許可する送信セキュリティ規則を追加
次に仮想マシンからWindows Updateへのアクセス許可する送信セキュリティ規則を作成します。先ほど作成したインターネットへのアクセス拒否する送信セキュリティ規則より優先順位を高くします。こちらに記載の通りサービスタグAzureUpdateDeliveryとAzureFrontDoor.FirstPartyの2つの送信セキュリティ規則を追加します。
-
- 設定値(AzureUpdateDelivery)
- 規則を追加するネットワークセキュリティグループ:Win-Update-Test-NSG
- 送信規則名:WindowsUpdate01
- 優先順位:1000
- プロトコル:Tcp
- ポート番号:443
- 宛先:AzureUpdateDelivery
- アクション:許可
- 説明:WindowsUpdate用
- 設定値(AzureUpdateDelivery)
-
- 設定値(AzureFrontDoor.FirstParty)
- 規則を追加するネットワークセキュリティグループ:Win-Update-Test-NSG
- 送信規則名:WindowsUpdate02
- 優先順位:1001
- プロトコル:Tcp
- ポート番号:80
- 宛先:AzureFrontDoor.FirstParty
- アクション:許可
- 説明:インターネットへのアクセスを拒否
- 設定値(AzureFrontDoor.FirstParty)
Windows Updateのアクセス許可する | |
こちらのPowerShellを任意のファイル名.ps1として保存しVisual StudioやPowerShellで実行します。 ※事前にAzure PowerShellをインストールしておく必要があります。
※リソースグループ名は$resourceGroupNameとしています。ネットワークセキュリティグループのリソースグループ名を指定します。 |
|
WindowsUpdate01と02の送信セキュリティ規則が追加されている事が分かります。宛先を見るとそれぞれAzureUpdateDeliveryとAzureFrontDoor.FirstPartyが指定されている事が分かります。 |
|
設定内容を確認してみます。AzureUpdateDeliveryのサービスタグが存在しない為宛先サービスタグは空白になっています。(テンプレート等で確認すると設定されている事が分かります。) |
|
Azure PortalでAzureFrontDoor.FirstPartyのサービスタグは存在している為、宛先サービスタグに値が設定されている事が分かります。 |
仮想マシンでWindows Updateを試してみる
ネットワークセキュリティグループにWindows Update用の送信セキュリティ規則を追加する前後でWindows Updateの状況の違いを確認してみます。
Windows Updateの確認 | |
インターネットへのアクセス拒否:追加済み |
![]() |
![]() |
|
インターネットへのアクセス拒否:追加済み Windows Updateの許可ルール:追加後 |
![]() |
![]() |
どちらの場合もインターネットのアクセスは出来ていませんが、Windows Update用の送信セキュリティ規則を追加した後のみWindows Updateが成功している事が分かります。
ネットワークセキュリティグループの設定で仮想マシンからインターネットへのアクセスを拒否しながWindows Updateだけ許可する事がとても簡単に出来る事が分かりました。