はじめに
Service Tag のドキュメントに AzureUpdateDelivery というタグが追加されました。この Service Tag には Windows Update のメタデータサービスで利用されている IP アドレスが含まれているようです。
ただしドキュメントに記載されている通り、この Service Tag だけでは Windows Update は成功せず、Windows Update のファイルをダウンロードさせるためには AzureFrontDoor.FirstParty というサービスタグも追加する必要があります。
今まで、NSG で Windows Update への通信を許可するためには、宛先 Internet で HTTP と HTTPS を許可するルールが必要でした。ですがこのルールは Windows Update だけでなくインターネットへの Web 通信も許可しますので、Windows Update を許可したいという目的に対してやりすぎでした。そして Windows Update “だけ"を許可することが要件の場合には、プロキシサーバやAzure Firewall、FQDN での通信制御をサポートする NVA などのそれなりの費用がかかる実装が必要でした。それが 今回の Service Tag の実装によって、無料の NSG でインターネット全許可よりもマシな形で Windows Update を許可できるようになりました。地味ですがとてもうれしいアップデートです。
Note
2023/04/24 追記:インターネットに HTTPS と HTTP を全許可するよりもマシな方法ではありますが、AzureFrontDoor.FirstParty も許可する必要があるため、Windows Update だけが許可されるわけではありません。Windows Update だけを許可したい場合には、引き続き FQDN での通信制御をサポートする方式を利用する必要があります。
検証
実際に動作確認してみました。
Windows Update を許可するルールが存在しない場合
まずは Outbound 通信を全拒否するルールを設定した NSG で動作確認しました。

全拒否の NSG
この NSG を適用している WIndows Server で Windows Update を実行したら、エラーコード80072ee2で Windows Update が失敗しました。インターネットに全くアクセスできないので想定通りの結果です。

全拒否時の Windows Update
Windows Update を許可するルールが存在する場合
Windows Update を許可するために必要なルールは AzureUpdateDelivery への TCP/443 と AzureFrontDoor.FirstParty への TCP/80 です。2021年8月現在、Azure Portal は AzureUpdateDelivery の Service Tag をサポートしていませんので、今回は PowerShell でルールを追加しました。
$nsg = Get-AzNetworkSecurityGroup -Name stagtest -ResourceGroupName nsgtest
$nsg | Add-AzNetworkSecurityRuleConfig -Name AzureUpdateDelivery -Description "AzureUpdateDelivery" -Access Allow `
-Protocol Tcp -Direction Outbound -Priority 100 -SourceAddressPrefix "*" -SourcePortRange * `
-DestinationAddressPrefix AzureUpdateDelivery -DestinationPortRange 443
$nsg | Add-AzNetworkSecurityRuleConfig -Name AzureFrontDoor.FirstParty -Description "AzureFrontDoor.FirstParty" -Access Allow `
-Protocol Tcp -Direction Outbound -Priority 110 -SourceAddressPrefix "*" -SourcePortRange * `
-DestinationAddressPrefix AzureFrontDoor.FirstParty -DestinationPortRange 80
$nsg | Set-AzNetworkSecurityGroup
コマンド実行後の NSG は次の通りです。

Windows Update に必要なルールを追加した NSG
この状態で Windows Update を実行したら、最新の更新が見つかりそのまま無事に適用できました。すばらしい。

見つかった更新

適用後の状態
まとめ
本エントリでは、ドキュメントに追加された Windows Update を許可するための Service Tag を紹介したうえで、簡単に動作確認しました。
Azure 上で Windows Server を動かしている場合、特にプロキシサーバやファイアウォールが存在しないような環境の場合には、毎月の更新プログラムの適用や Windows Defender の定義ファイルの更新のために必要となる Windows Update への通信だけを許可する方法が悩みの種でした。今回追加された Service Tag によって、NSG だけで宛先を絞った形で Windows Update を許可できるようになりました。積極的に活用して、必要な通信だけを NSG で許可していきましょう。