Azure VMのアウトバウンド通信をWindows Updateに制限
AzureのNSG(ネットワークセキュリティグループ)をデプロイするとデフォルトではすべてのアウトバウンド通信が許可されています。
仮想マシン(Azure VM)をデプロイした場合はインターネットへのアクセスが許可された状態になります。
セキュリティ的にアウトバウンド通信を制限したいという事もあるかと思います。
ただインターネットへのアクセスをすべて閉じてしまうと仮想マシン(Azure VM)のWindows Updateも出来なくなってしまいます。
NSG(ネットワークセキュリティグループ)にはWindows Update用のサービスタグが用意されています。
これを使うとWindows Updateの許可をする事が出来ます。
Windows Update用のサービスタグを利用した仮想マシン(Azure VM)からWindows Updateを許可する設定手順を纏めました。
PowerShellを使ったNSG(ネットワークセキュリティグループ)の設定方法も併せて纏めています。
NSGのセキュリティ規則設定にはWindows Update用のサービスタグがある
サービスタグとは
サービスタグとは指定されたAzure サービスのIP アドレス プレフィックスのグループです。
Azure SQLなどのサービスやサービスがリージョンなどで利用しているIPを纏めたグループです。
sql.japaneastというような指定が出来ます。
サービスタグを使うと特定のサービスへのアクセスを許可や拒否する事が出来ます。
NSG(ネットワーク セキュリティ グループ)やAzure Firewallで利用出来ます。
サービスタグに含まれるIPアドレスの管理はAzure側で自動で行われます。
AzureサービスのIPアドレスについてユーザー側で意識する必要なくなります。
Windows UpdateのサービスタグはAzureUpdateDelivery
Windows Update用のサービスタグはAzureUpdateDeliveryになります。
利用可能なサービス タグ(仮想ネットワーク サービス タグ)
送信セキュリティ規則でAzureUpdateDeliveryとAzureFrontDoor.FirstPartyの2つの許可設定が必要です。
-
- AzureUpdateDelivery: TCP、ポート 443
- AzureFrontDoor.FirstParty: TCP、ポート 80
アウトバウンド通信の許可状態
NSG(ネットワークセキュリティグループ)に送信セキュリティ規則を追加した場合のアウトバウンド通信の許可状態です。
NSGの設定状態 | 仮想マシン(Azure VM)から インターネットへアクセス |
仮想マシン(Azure VM)で Windows Update |
デフォルト設定 | 〇 | 〇 |
インターネットへの アウトバウンド通信を拒否 |
× | × |
インターネットへの アウトバウンド通信を拒否 AzureUpdateDeliveryの アウトバウンド通信を許可 |
× | 〇 |
※AzureUpdateDeliveryはAzureFrontDoor.FirstPartyと組み合わせて利用した場合です。
※AzureUpdateDeliveryにはWindows Update以外の通信も含まれます。YahooやGoogle等のWebサイトへの通信を許可しない状態と考える方が適切かと思います。
プライベートサブネット(Azure Private Subnet)について
プライベートサブネット(Azure Private Subnet)を利用する事で仮想マシン(Azure VM)からのインターネットへのアクセス制限する事が出来ます。
この場合はNATゲートウェイ(Azure NAT Gateway)等と組み合わせて利用します。
Windows Updateを許可する送信セキュリティ規則を設定
仮想マシン(Azure VM)からインターネットへのアクセスを拒否とWindows Updateを許可する送信セキュリティ規則を追加します。
送信セキュリティ規則設定
追加する送信セキュリティ規則は3つです。
-
- 宛先AzureUpdateDeliveryへの443(TCP)通信を許可
- 宛先AzureFrontDoor.FirstPartyへの80(TCP)通信を許可
- 宛先InterNetへの通信を拒否
※InterNetへの通信を拒否設定しなかった場合はすべてのアウトバウンド通信が許可されたままの状態となります。
区分 | 項目 | 設定値 |
AzureUpdateDeliveryを許可 | 名前 | AllowOutbound-AzurePdateDelivery |
優先度 | 100 | |
宛先 | Service Tag | |
宛先サービスタグ | AzureUpdateDelivery | |
サービス(宛先ポート範囲) | HTTPS(443)(TCP) | |
アクション | 許可 | |
AzureFrontDoor.FirstPartyを許可 | 名前 | AllowOutbound-AzureFrontDoorFirstParty |
優先度 | 101 | |
宛先 | Service Tag | |
宛先サービスタグ | AzureFrontDoor.FirstParty | |
サービス(宛先ポート範囲) | HTTP(80)(TCP) | |
アクション | 許可 | |
インターネットへのアウトバウンド通信を拒否 | 名前 | DenyOutbound-InterNet |
優先度 | 110 | |
宛先 | Service Tag | |
宛先サービスタグ | Internet | |
サービス(宛先ポート範囲) | ※(Any) | |
アクション | 拒否 |
Azure Portalを利用して送信セキュリティ規則をデプロイ
Azure Portalを使ってNSG(ネットワークセキュリティグループ)へ送信セキュリティ規則追加します。
今回は仮想マシン(Azure VM)のメニューから実施しています。
—広告—
PowerShellを使って送信セキュリティ規則設定
同じ設定をAzure PowerShellを使って実施します。
セキュリティ規則追加時に利用するPowerShellコマンドレット
NSG(ネットワークセキュリティグループ)に送受信セキュリティ規則を追加する時には3つコマンドレットを利用します。
Get-AzNetworkSecurityGroup、Add-AzNetworkSecurityRuleConfig、Set-AzNetworkSecurityGroupを利用します。
コマンド | 概要 |
Get-AzNetworkSecurityGroup | NSG(ネットワークセキュリティグループ)の設定情報を取得 |
Add-AzNetworkSecurityRuleConfig | 送受信セキュリティ規則の設定情報を追加 |
Set-AzNetworkSecurityGroup | NSG(ネットワークセキュリティグループ)の設定を更新 |
※事前にAzure PowerShellをインストールしておく必要があります。
インターネットへアウトバウンド通信を禁止する送信セキュリティ規則を追加
Azure PowerShellを利用してインターネットへのアウトバウンド通信を禁止する送信セキュリティ規則を追加します。
インターネットへのアウトバウンド通信を拒否した状態でWindows Update
インターネットへのアウトバウンド通信を拒否した状態でWindows Updateしてみます。
Windows Updateを実行 | |
Windows Updateもブラウザを使ったインターネットアクセスもすべて拒否されている事が確認出来ます。 |
|
Windows Updateを許可する送信セキュリティ規則を追加
仮想マシン(Azure VM)のWindows Updateを許可する送信セキュリティ規則を作成します。
インターネットへのアクセス拒否する送信セキュリティ規則より優先順位を高くします。
※複数の送信セキュリティ規則を追加出来るようにしています。
Windows Updateを許可 | |
|
|
WindowsUpdate01と02の送信セキュリティ規則が追加されている事が分かります。 |
Windows Updateが許可されているか確認
Windows Updateを許可する送信セキュリティ規則を追加した状態で確認してみます。
インターネットアクセスを拒否したままWindows Updateが許可されている事が確認出来ます。
Windows Updateを実行 | |
Windows Updateが出来る事が確認出来ます。 |
|
—広告—
最後に
NSG(ネットワークセキュリティグループ)の送信セキュリティ規則を追加する事でインターネットアクセスへのアクセスを拒否しながらWindows Updateを許可する事が出来ました。
Windows Updateだけが許可される訳ではないですがそれでもWebサイトへのアクセスが制限出来る事は便利かと思いました。
NSGやセキュリティ規則についてはこちらにまとめています。