このチュートリアルでは、あるリージョンに Virtual WAN インスタンスと仮想ハブを作成し、その仮想ハブに Azure ファイアウォールをデプロイして接続をセキュリティで保護します。 この例では、仮想ネットワーク間の接続をセキュリティで保護する方法について説明します。 仮想セキュア ハブでは、仮想ネットワーク間だけでなくサイト間、ポイント対サイト、ExpressRoute ブランチ間のトラフィックもサポートされます。
このチュートリアルでは、次の作業を行う方法について説明します。
- Virtual WAN をデプロイする
- Azure Firewall のデプロイとカスタム ルーティングの構成を行う
- 接続をテストする
Important
Virtual WAN は、ハブおよびハブ内で利用できるサービスのコレクションです。 Virtual WAN は必要な数だけデプロイできます。 Virtual WAN ハブ内には、VPN や ExpressRoute などの複数のサービスがあります。 リージョンが可用性ゾーンをサポートしている場合、これらの各サービスは Azure Firewall を除く可用性ゾーンに自動的にデプロイされます。 既存の Azure Virtual WAN ハブをセキュリティで保護されたハブにアップグレードし、Azure Firewall で可用性ゾーンを使用できるようにするには、この記事で後述するように、Azure PowerShell を使用する必要があります。
Prerequisites
Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
PowerShell 7 以降
このチュートリアルでは、PowerShell 7 以降で Azure PowerShell をローカルで実行する必要があります。 PowerShell 7 のインストールについては、「Windows PowerShell 5.1 から PowerShell 7 への移行」を参照してください。
"Az.Network" モジュールのバージョンは 4.17.0 以上である必要があります。
Azure へのサインイン
Connect-AzAccount
Select-AzSubscription -Subscription "<sub name>"
最初の Virtual WAN のデプロイ
まず、変数を設定し、リソース グループ、仮想 WAN インスタンス、および仮想ハブを作成する必要があります。
# Variable definition
$RG = "vwan-rg"
$Location = "westeurope"
$VwanName = "vwan"
$HubName = "hub1"
$FirewallTier = "Standard" # or "Premium"
# Create Resource Group, Virtual WAN and Virtual Hub using the New-AzVirtualWan and New-AzVirtualHub cmdlets
New-AzResourceGroup -Name $RG -Location $Location
$Vwan = New-AzVirtualWan -Name $VwanName -ResourceGroupName $RG -Location $Location -AllowVnetToVnetTraffic -AllowBranchToBranchTraffic -VirtualWANType "Standard"
$Hub = New-AzVirtualHub -Name $HubName -ResourceGroupName $RG -VirtualWan $Vwan -Location $Location -AddressPrefix "192.168.1.0/24" -Sku "Standard"
-
New-AzVirtualHubVnetConnectionコマンドレットを使用して、2 つの仮想ネットワークを作成し、スポークとしてハブに接続します。 仮想ネットワークは、10.1.1.0/24と10.1.2.0/24アドレス プレフィックスを使用して作成されます。
# Create Virtual Network
$Spoke1 = New-AzVirtualNetwork -Name "spoke1" -ResourceGroupName $RG -Location $Location -AddressPrefix "10.1.1.0/24"
$Spoke2 = New-AzVirtualNetwork -Name "spoke2" -ResourceGroupName $RG -Location $Location -AddressPrefix "10.1.2.0/24"
# Connect Virtual Network to Virtual WAN
$Spoke1Connection = New-AzVirtualHubVnetConnection -ResourceGroupName $RG -ParentResourceName $HubName -Name "spoke1" -RemoteVirtualNetwork $Spoke1 -EnableInternetSecurityFlag $True
$Spoke2Connection = New-AzVirtualHubVnetConnection -ResourceGroupName $RG -ParentResourceName $HubName -Name "spoke2" -RemoteVirtualNetwork $Spoke2 -EnableInternetSecurityFlag $True
この段階では、Virtual WAN は完全に動作し、任意の接続を提供します。 この環境をセキュリティで保護するには、各仮想ハブに Azure Firewall をデプロイします。 これらのファイアウォールは、ファイアウォール ポリシーを使用して一元的に管理できます。
この例では、 New-AzFirewallPolicy コマンドレットを使用して、Virtual WAN ハブ内の Azure Firewall インスタンスを管理するファイアウォール ポリシーも作成します。 Azure Firewall は、 New-AzFirewall コマンドレットを使用してハブにデプロイされます。
# New Firewall Policy
$FWPolicy = New-AzFirewallPolicy -Name "VwanFwPolicy" -ResourceGroupName $RG -Location $Location
# New Firewall Public IP
$AzFWPIPs = New-AzFirewallHubPublicIpAddress -Count 1
$AzFWHubIPs = New-AzFirewallHubIpAddress -PublicIP $AzFWPIPs
# New Firewall
$AzFW = New-AzFirewall -Name "azfw1" -ResourceGroupName $RG -Location $Location `
-VirtualHubId $Hub.Id -FirewallPolicyId $FWPolicy.Id `
-SkuName "AZFW_Hub" -HubIPAddress $AzFWHubIPs `
-SkuTier $FirewallTier
Note
次のファイアウォール作成コマンドでは、可用性ゾーンは使用 されません 。 この機能を使用する場合は、追加のパラメーター -Zone が必要です。 例については、この記事の終わりにあるアップグレードに関するセクションを参照してください。
Azure Firewall から Azure Monitor へのログ記録は省略可能です。 この例では、ファイアウォール ログを使用して、トラフィックがファイアウォールを通過していることを確認します。 まず、ログを格納する Log Analytics ワークスペースを作成します。 次に、 Set-AzDiagnosticSetting コマンドレットを使用して診断設定を構成し、ログをワークスペースに送信します。
# Optionally, enable logging of Azure Firewall to Azure Monitor
$LogWSName = "vwan-" + (Get-Random -Maximum 99999) + "-" + $RG
$LogWS = New-AzOperationalInsightsWorkspace -Location $Location -Name $LogWSName -Sku Standard -ResourceGroupName $RG
Set-AzDiagnosticSetting -ResourceId $AzFW.Id -Enabled $True -Category AzureFirewallApplicationRule, AzureFirewallNetworkRule -WorkspaceId $LogWS.ResourceId
Azure Firewall のデプロイとカスタム ルーティングの構成を行う
Note
これは、"ハブ間" 設定が無効に設定されている場合に、Azure Portal から Azure Firewall Manager との接続をセキュリティで保護するときにデプロイされる構成 です。 "ハブ間" が 有効に設定されている場合に PowerShell を使用してルーティングを構成する方法については、「 ルーティング意図の有効化」を参照してください。
Azure ファイアウォールをハブに用意したら終わりではなく、Virtual WAN で仮想ネットワークやブランチからのトラフィックをファイアウォール経由で送信できるよう、次はルーティングに変更を加える必要があります。 これは 2 つの手順で行います。
- すべての仮想ネットワーク接続 (ブランチ接続がある場合はそれらも含む) を
Noneルート テーブルに伝達するように構成します。 この構成の結果、他の仮想ネットワークやブランチではそれらのプレフィックスを認識しなくなるので、それらに到達するルーティングが行われなくなります。 - これで、(すべての仮想ネットワークとブランチが既定で関連付けられる)
Defaultルート テーブルに静的ルートを挿入することができ、すべてのトラフィックが Azure ファイアウォールに送信されるようになります。
まず、 None ルート テーブルに伝達するように仮想ネットワーク接続を構成します。 この手順により、仮想ネットワークが互いのアドレス プレフィックスを学習しないようにし、仮想ネットワーク間の直接通信を防ぎます。 その結果、すべての仮想ネットワーク間トラフィックが Azure Firewall を通過する必要があります。
これを行うには、 Get-AzVhubRouteTable コマンドレットを使用して None ルート テーブルを取得し、各仮想ネットワーク接続のルーティング構成を Update-AzVirtualHubVnetConnection コマンドレットで更新します。
# Configure Virtual Network connections in hub to propagate to None
$VnetRoutingConfig = $Spoke1Connection.RoutingConfiguration # We take $Spoke1Connection as baseline for the future vnet config, all vnets will have an identical config
$NoneRT = Get-AzVhubRouteTable -ResourceGroupName $RG -HubName $HubName -Name "noneRouteTable"
$NewPropRT = @{}
$NewPropRT.Add('Id', $NoneRT.Id)
$PropRTList = @()
$PropRTList += $NewPropRT
$VnetRoutingConfig.PropagatedRouteTables.Ids = $PropRTList
$VnetRoutingConfig.PropagatedRouteTables.Labels = @()
$Spoke1Connection = Update-AzVirtualHubVnetConnection -ResourceGroupName $RG -ParentResourceName $HubName -Name "spoke1" -RoutingConfiguration $VnetRoutingConfig
$Spoke2Connection = Update-AzVirtualHubVnetConnection -ResourceGroupName $RG -ParentResourceName $HubName -Name "spoke2" -RoutingConfiguration $VnetRoutingConfig
次に、2 番目の手順に進みます。 Default ルート テーブルに静的ルートを追加します。 次の例では、Virtual WAN で接続をセキュリティで保護するときに Azure Firewall Manager が適用する既定の構成を使用します。
New-AzVHubRoute コマンドレットを使用して、必要に応じて静的ルート内のプレフィックスの一覧をカスタマイズできます。 この例では、すべてのトラフィックが Azure Firewall 経由でルーティングされます。これは推奨される既定値です。
# Create static routes in default Route table
$AzFWId = $(Get-AzVirtualHub -ResourceGroupName $RG -name $HubName).AzureFirewall.Id
$AzFWRoute = New-AzVHubRoute -Name "all_traffic" -Destination @("0.0.0.0/0", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16") -DestinationType "CIDR" -NextHop $AzFWId -NextHopType "ResourceId"
$DefaultRT = Update-AzVHubRouteTable -Name "defaultRouteTable" -ResourceGroupName $RG -VirtualHubName $HubName -Route @($AzFWRoute)
Note
上記の New-AzVHubRoute コマンドのパラメーター "-Name" の値としての文字列 "all_traffic" には特別な意味があります。この正確な文字列を使用すると、この記事で適用される構成が Azure portal に正しく反映されます (Firewall Manager --> Virtual Hubs --> [Your Hub] --> Security Configuration)。 別の名前が使用される場合、目的の構成が適用されますが、Azure portal には反映されません。
ルーティング インテントの有効化
Virtual WAN ハブにデプロイされた Azure Firewall を介して、ハブ間とリージョン間のトラフィックを送信する場合は、代わりにルーティングインテント機能を有効にすることができます。 ルーティング インテントについて詳しくは、ルーティング インテントのドキュメントをご覧ください。
Note
これは、"Interhub" 設定が 有効に設定されている場合に、Azure Portal から Azure Firewall Manager との接続をセキュリティで保護するときにデプロイされる構成です。
# Get the Azure Firewall resource ID
$AzFWId = $(Get-AzVirtualHub -ResourceGroupName <thname> -name $HubName).AzureFirewall.Id
# Create routing policy and routing intent
$policy1 = New-AzRoutingPolicy -Name "PrivateTraffic" -Destination @("PrivateTraffic") -NextHop $firewall.Id
$policy2 = New-AzRoutingPolicy -Name "PublicTraffic" -Destination @("Internet") -NextHop $firewall.Id
New-AzRoutingIntent -ResourceGroupName "<rgname>" -VirtualHubName "<hubname>" -Name "hubRoutingIntent" -RoutingPolicy @($policy1, $policy2)
If your Virtual WAN uses non-RFC1918 address prefixes (for example, `40.0.0.0/24` in a virtual network or on-premises), you should add an extra route to the `defaultRouteTable` after completing the routing intent configuration. Name this route **private_traffic**. If you use a different name, the route will work as expected, but the configuration will not be reflected in the Azure portal.
```azurepowershell-interactive
# Get the defaultRouteTable
$defaultRouteTable = Get-AzVHubRouteTable -ResourceGroupName routingIntent-Demo -HubName wus_hub1 -Name defaultRouteTable
# Get the routes automatically created by routing intent. If private routing policy is enabled, this is the route named _policy_PrivateTraffic. If internet routing policy is enabled, this is the route named _policy_InternetTraffic.
$privatepolicyroute = $defaultRouteTable.Routes[1]
# Create new route named private_traffic for non-RFC1918 prefixes
$private_traffic = New-AzVHubRoute -Name "private-traffic" -Destination @("30.0.0.0/24") -DestinationType "CIDR" -NextHop $AzFWId -NextHopType ResourceId
# Create new routes for route table
$newroutes = @($privatepolicyroute, $private_traffic)
# Update route table
Update-AzVHubRouteTable -ResourceGroupName <rgname> -ParentResourceName <hubname> -Name defaultRouteTable -Route $newroutes
接続をテストする
セキュリティで保護されたハブが完全に運用できるようになったので、ハブに接続されている各スポーク仮想ネットワークに仮想マシンをデプロイすることで、接続をテストできます。
# Create VMs in spokes for testing
$VMLocalAdminUser = "lab-user"
$VMLocalAdminSecurePassword = ConvertTo-SecureString -AsPlainText -Force
$VMCredential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);
$VMSize = "Standard_B2ms"
# Spoke1
$Spoke1 = Get-AzVirtualNetwork -ResourceGroupName $RG -Name "spoke1"
Add-AzVirtualNetworkSubnetConfig -Name "vm" -VirtualNetwork $Spoke1 -AddressPrefix "10.1.1.0/26"
$Spoke1 | Set-AzVirtualNetwork
$VM1 = New-AzVM -Name "spoke1-vm" -ResourceGroupName $RG -Location $Location `
-Image "UbuntuLTS" -credential $VMCredential `
-VirtualNetworkName "spoke1" -SubnetName "vm" -PublicIpAddressName "spoke1-pip"
$NIC1 = Get-AzNetworkInterface -ResourceId $($VM1.NetworkProfile.NetworkInterfaces[0].Id)
$Spoke1VMPrivateIP = $NIC1.IpConfigurations[0].PrivateIpAddress
$Spoke1VMPIP = $(Get-AzPublicIpAddress -ResourceGroupName $RG -Name "spoke1-pip")
# Spoke2
$Spoke2 = Get-AzVirtualNetwork -ResourceGroupName $RG -Name "spoke2"
Add-AzVirtualNetworkSubnetConfig -Name "vm" -VirtualNetwork $Spoke2 -AddressPrefix "10.1.2.0/26"
$Spoke2 | Set-AzVirtualNetwork
$VM2 = New-AzVM -Name "spoke2-vm" -ResourceGroupName $RG -Location $Location `
-Image "UbuntuLTS" -credential $VMCredential `
-VirtualNetworkName "spoke2" -SubnetName "vm" -PublicIpAddressName "spoke2-pip"
$NIC2 = Get-AzNetworkInterface -ResourceId $($VM2.NetworkProfile.NetworkInterfaces[0].Id)
$Spoke2VMPrivateIP = $NIC2.IpConfigurations[0].PrivateIpAddress
$Spoke2VMPIP = $(Get-AzPublicIpAddress -ResourceGroupName $RG -Name "spoke2-pip")
既定では、ファイアウォール ポリシーはすべてのトラフィックをブロックします。 テスト仮想マシンへのアクセスを許可するには、DNAT (宛先ネットワーク アドレス変換) 規則を構成する必要があります。 これらの規則を使用すると、Azure Firewall のパブリック IP アドレスを使用して VM に接続できます。
# Adding DNAT rules for virtual machines in the spokes
$AzFWPublicAddress = $AzFW.HubIPAddresses.PublicIPs.Addresses[0].Address
$NATRuleSpoke1 = New-AzFirewallPolicyNatRule -Name "Spoke1SSH" -Protocol "TCP" `
-SourceAddress "*" -DestinationAddress $AzFWPublicAddress -DestinationPort 10001 `
-TranslatedAddress $Spoke1VMPrivateIP -TranslatedPort 22
$NATRuleSpoke2 = New-AzFirewallPolicyNatRule -Name "Spoke2SSH" -Protocol "TCP" `
-SourceAddress "*" -DestinationAddress $AzFWPublicAddress -DestinationPort 10002 `
-TranslatedAddress $Spoke2VMPrivateIP -TranslatedPort 22
$NATCollection = New-AzFirewallPolicyNatRuleCollection -Name "SSH" -Priority 100 `
-Rule @($NATRuleSpoke1, $NATRuleSpoke2) -ActionType "Dnat"
$NATGroup = New-AzFirewallPolicyRuleCollectionGroup -Name "NAT" -Priority 100 -RuleCollection $NATCollection -FirewallPolicyObject $FWPolicy
次に、ファイアウォール ポリシーの規則の例を構成します。 まず、仮想ネットワーク間の SSH トラフィックを許可するネットワーク規則を作成します。 次に、完全修飾ドメイン名 (FQDN) ifconfig.coへのインターネット アクセスのみを許可するアプリケーションルールを追加します。これにより、HTTP 要求に表示される送信元 IP アドレスが返されます。
# Add Network Rule
$SSHRule = New-AzFirewallPolicyNetworkRule -Name PermitSSH -Protocol TCP `
-SourceAddress "10.0.0.0/8" -DestinationAddress "10.0.0.0/8" -DestinationPort 22
$NetCollection = New-AzFirewallPolicyFilterRuleCollection -Name "Management" -Priority 100 -ActionType Allow -Rule $SSHRule
$NetGroup = New-AzFirewallPolicyRuleCollectionGroup -Name "Management" -Priority 200 -RuleCollection $NetCollection -FirewallPolicyObject $FWPolicy
# Add Application Rule
$ifconfigRule = New-AzFirewallPolicyApplicationRule -Name PermitIfconfig -SourceAddress "10.0.0.0/8" -TargetFqdn "ifconfig.co" -Protocol "http:80","https:443"
$AppCollection = New-AzFirewallPolicyFilterRuleCollection -Name "TargetURLs" -Priority 300 -ActionType Allow -Rule $ifconfigRule
$NetGroup = New-AzFirewallPolicyRuleCollectionGroup -Name "TargetURLs" -Priority 300 -RuleCollection $AppCollection -FirewallPolicyObject $FWPolicy
トラフィックを送信する前に、各仮想マシンの有効なルートを確認します。 ルート テーブルには、Virtual WAN から学習したプレフィックス (0.0.0.0/0 とRFC1918範囲) が表示されますが、他のスポーク仮想ネットワークのアドレス プレフィックスは含めないようにする必要があります。
# Check effective routes in the VM NIC in spoke 1
# Note that 10.1.2.0/24 (the prefix for spoke2) should not appear
Get-AzEffectiveRouteTable -ResourceGroupName $RG -NetworkInterfaceName $NIC1.Name | ft
# Check effective routes in the VM NIC in spoke 2
# Note that 10.1.1.0/24 (the prefix for spoke1) should not appear
Get-AzEffectiveRouteTable -ResourceGroupName $RG -NetworkInterfaceName $NIC2.Name | ft
仮想マシン間でトラフィックを生成し、Azure Firewall でフィルター処理されていることを確認します。 SSH を使用して仮想マシンに接続します。SSH フィンガープリントを受け入れ、VM の作成時に設定したパスワードを入力します。 この例では、次の操作を行います。
- スポーク 1 の VM からスポーク 2 の VM に 5 つの ICMP エコー要求 (ping) を送信します。
-
ncフラグを使用して-vz(netcat) ユーティリティを使用してポート 22 で TCP 接続を試みます。このユーティリティは、データを送信せずに接続を確認します。
前に構成したネットワーク規則で許可されているように、ポート 22 の TCP 接続が成功している間に、ping 要求が失敗 (ファイアウォールによってブロックされる) ことを確認する必要があります。
# Connect to one VM and ping the other. It should not work, because the firewall should drop the traffic, since no rule for ICMP is configured
ssh $AzFWPublicAddress -p 10001 -l $VMLocalAdminUser "ping $Spoke2VMPrivateIP -c 5"
# Connect to one VM and send a TCP request on port 22 to the other. It should work, because the firewall is configured to allow SSH traffic (port 22)
ssh $AzFWPublicAddress -p 10001 -l $VMLocalAdminUser "nc -vz $Spoke2VMPrivateIP 22"
ファイアウォールを介してインターネット アクセスをテストすることもできます。 許可された FQDN (curl) に対する ifconfig.co ユーティリティを使用した HTTP 要求は成功するはずですが、他の宛先 (bing.com など) への要求はファイアウォール ポリシーによってブロックする必要があります。
# This HTTP request should succeed, since it is allowed in an app rule in the AzFW, and return the public IP of the FW
ssh $AzFWPublicAddress -p 10001 -l $VMLocalAdminUser "curl -s4 ifconfig.co"
# This HTTP request should fail, since the FQDN bing.com is not in any app rule in the firewall policy
ssh $AzFWPublicAddress -p 10001 -l $VMLocalAdminUser "curl -s4 bing.com"
ファイアウォールが想定どおりにパケットをドロップしていることを確認するには、Azure Monitor に送信されたログを確認します。 Azure Firewall は Azure Monitor に診断ログを送信するように構成されているため、Kusto クエリ言語 (KQL) を使用して、関連するログ エントリのクエリと分析を行うことができます。
Note
Azure Monitor にログが送信されるのがわかるまでに 1 分ほどかかる場合があります。
# Getting Azure Firewall network rule Logs
$LogWS = Get-AzOperationalInsightsWorkspace -ResourceGroupName $RG
$LogQuery = 'AzureDiagnostics
| where Category == "AzureFirewallNetworkRule"
| where TimeGenerated >= ago(5m)
| parse msg_s with Protocol " request from " SourceIP ":" SourcePortInt:int " to " TargetIP ":" TargetPortInt:int *
| parse msg_s with * ". Action: " Action1a
| parse msg_s with * " was " Action1b " to " NatDestination
| parse msg_s with Protocol2 " request from " SourceIP2 " to " TargetIP2 ". Action: " Action2
| extend SourcePort = tostring(SourcePortInt),TargetPort = tostring(TargetPortInt)
| extend Action = case(Action1a == "", case(Action1b == "",Action2,Action1b), Action1a),Protocol = case(Protocol == "", Protocol2, Protocol),SourceIP = case(SourceIP == "", SourceIP2, SourceIP),TargetIP = case(TargetIP == "", TargetIP2, TargetIP),SourcePort = case(SourcePort == "", "N/A", SourcePort),TargetPort = case(TargetPort == "", "N/A", TargetPort),NatDestination = case(NatDestination == "", "N/A", NatDestination)
| project TimeGenerated, Protocol, SourceIP,SourcePort,TargetIP,TargetPort,Action, NatDestination, Resource
| take 25 '
$(Invoke-AzOperationalInsightsQuery -Workspace $LogWS -Query $LogQuery).Results | ft
前述のコマンドでは、さまざまなエントリが表示されます。
- SSH 接続が DNAT 変換されている
- スポークの VM (10.1.1.4 と 10.1.2.4) 間で ICMP パケットが遮断されている
- スポークの VM 間の SSH 接続が許可されている
以下に示すのは、上のコマンドで生成された出力の例です。
TimeGenerated Protocol SourceIP SourcePort TargetIP TargetPort Action NatDestination Resource
------------- -------- -------- ---------- -------- ---------- ------ -------------- --------
2020-10-04T20:53:02.41Z TCP 109.125.122.99 62281 51.105.224.44 10001 DNAT'ed 10.1.1.4:22 AZFW1
2020-10-04T20:53:07.045Z TCP 10.1.1.4 35932 10.1.2.4 22 Allow N/A AZFW1
2020-10-04T20:53:50.119Z TCP 109.125.122.99 62293 51.105.224.44 10001 DNAT'ed 10.1.2.4:22 AZFW1
2020-10-04T20:52:47.475Z TCP 109.125.122.99 62273 51.105.224.44 10001 DNAT'ed 10.1.2.4:22 AZFW1
2020-10-04T20:51:04.682Z TCP 109.125.122.99 62200 51.105.224.44 10001 DNAT'ed 10.1.2.4:22 AZFW1
2020-10-04T20:51:17.031Z ICMP Type=8 10.1.1.4 N/A 10.1.2.4 N/A Deny N/A AZFW1
2020-10-04T20:51:18.049Z ICMP Type=8 10.1.1.4 N/A 10.1.2.4 N/A Deny N/A AZFW1
2020-10-04T20:51:19.075Z ICMP Type=8 10.1.1.4 N/A 10.1.2.4 N/A Deny N/A AZFW1
2020-10-04T20:51:20.097Z ICMP Type=8 10.1.1.4 N/A 10.1.2.4 N/A Deny N/A AZFW1
2020-10-04T20:51:21.121Z ICMP Type=8 10.1.1.4 N/A 10.1.2.4 N/A Deny N/A AZFW1
2020-10-04T20:52:52.356Z TCP 10.1.1.4 53748 10.1.2.4 22 Allow N/A AZFW1
アプリケーション ルール (許可/拒否する HTTP 接続を記述したもの) のログを確認したい場合や、ログの表示方法を変更したい場合は、他の KQL クエリで試してみてください。 「Azure Firewall の Azure Monitor ログ」でいくつかの例をご覧いただけます。
テスト環境をクリーンアップするには、 Remove-AzResourceGroup コマンドレットを使用して、リソース グループと関連するすべてのリソースを削除します。 これにより、Virtual WAN、Virtual Hub、Azure Firewall、およびこのチュートリアル中に作成されたその他のリソースが削除されます。
# Delete resource group and all contained resources
Remove-AzResourceGroup -Name $RG
可用性ゾーンを使用する新しい Azure Firewall を既存のハブにデプロイする
前の手順では、Azure PowerShell を使用して 新しい Azure Virtual WAN ハブを作成し、Azure Firewall でセキュリティで保護する方法を示しました。 同様のスクリプトベースのアプローチを使用して 、既存 の Azure Virtual WAN ハブをセキュリティで保護することもできます。 Firewall Manager はハブをセキュリティで保護されたハブに変換できますが、ポータルを介した可用性ゾーン間での Azure Firewall のデプロイはサポートされていません。 3 つの可用性ゾーンすべてに Azure Firewall をデプロイするには、次の PowerShell スクリプトを使用して、既存の Virtual WAN ハブをセキュリティで保護されたハブに変換します。
Note
この手順では、新しい Azure Firewall をデプロイします。 可用性ゾーンのない既存の Azure Firewall を、可用性ゾーンを持つものにアップグレードすることはできません。 最初にハブ内の既存の Azure Firewall を削除し、この手順を使用してもう一度作成する必要があります。
# Variable definition
$RG = "vwan-rg"
$Location = "westeurope"
$VwanName = "vwan"
$HubName = "hub1"
$FirewallName = "azfw1"
$FirewallTier = "Standard" # or "Premium"
$FirewallPolicyName = "VwanFwPolicy"
# Get references to vWAN and vWAN Hub to convert #
$Vwan = Get-AzVirtualWan -ResourceGroupName $RG -Name $VwanName
$Hub = Get-AzVirtualHub -ResourceGroupName $RG -Name $HubName
# Create a new Firewall Policy #
$FWPolicy = New-AzFirewallPolicy -Name $FirewallPolicyName -ResourceGroupName $RG -Location $Location
# Create a new Firewall Public IP #
$AzFWPIPs = New-AzFirewallHubPublicIpAddress -Count 1
$AzFWHubIPs = New-AzFirewallHubIpAddress -PublicIP $AzFWPIPs
# Create Firewall instance #
$AzFW = New-AzFirewall -Name $FirewallName -ResourceGroupName $RG -Location $Location `
-VirtualHubId $Hub.Id -FirewallPolicyId $FWPolicy.Id `
-SkuName "AZFW_Hub" -HubIPAddress $AzFWHubIPs `
-SkuTier $FirewallTier `
-Zone 1,2,3
このスクリプトを実行すると、次のスクリーンショットに示すように、セキュリティで保護されたハブのプロパティに可用性ゾーンが表示されます。
Azure Firewall をデプロイしたら、前述の「Azure Firewall のデプロイ」で説明した構成手順を完了 し、適切なルーティングと セキュリティを確保するためにカスタム ルーティングセクションを構成する必要があります。