Tutorial: Mengamankan hub virtual Anda menggunakan Azure PowerShell

Dalam tutorial ini, Anda membuat instans Virtual WAN dengan Virtual Hub di satu wilayah, dan Anda menyebarkan Azure Firewall di Virtual Hub untuk mengamankan konektivitas. Dalam contoh ini, Anda menunjukkan konektivitas yang aman antara Virtual Network. Lalu lintas antara jaringan virtual dan situs-ke-situs, titik-ke-situs, atau cabang ExpressRoute juga didukung oleh Virtual Secure Hub.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Menyebarkan virtual WAN
  • Menyebarkan Azure Firewall dan mengonfigurasi perutean kustom
  • Uji konektivitas

Penting

Virtual WAN adalah kumpulan hub dan layanan yang tersedia di dalam hub. Anda dapat menyebarkan Virtual WAN sebanyak yang dibutuhkan. Di hub Virtual WAN, ada beberapa layanan seperti VPN, ExpressRoute, dan sebagainya. Masing-masing layanan ini otomatis disebarkan di seluruh Zona Ketersediaankecuali Azure Firewall, jika wilayah tersebut mendukung Zona Ketersediaan. Untuk meningkatkan Azure Virtual WAN Hub yang sudah ada ke Secure Hub dan meminta Azure Firewall menggunakan Zona Ketersediaan, Anda harus menggunakan Azure PowerShell, seperti yang dijelaskan nanti di artikel ini.

Prasyarat

Masuk ke Azure

Connect-AzAccount
Select-AzSubscription -Subscription "<sub name>"

Penyebaran Virtual WAN Awal

Sebagai langkah pertama, Anda perlu mengatur beberapa variabel dan membuat grup sumber daya, instans virtual WAN, dan virtual hub:

# Variable definition
$RG = "vwan-rg"
$Location = "westeurope"
$VwanName = "vwan"
$HubName =  "hub1"
$FirewallTier = "Standard" # or "Premium"

# Create Resource Group, Virtual WAN and Virtual Hub
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"

Buat dua jaringan virtual dan sambungkan ke hub sebagai spoke:

# 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

Pada titik ini, Anda memiliki Virtual WAN yang berfungsi penuh yang menyediakan konektivitas pada apa pun. Untuk meningkatkannya dengan keamanan, Anda perlu menyebarkan Azure Firewall ke setiap Virtual Hub. Kebijakan Firewall dapat digunakan untuk mengelola instans virtual Wan Azure Firewall secara efisien. Jadi kebijakan firewall dibuat juga dalam contoh ini:

# 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

Catatan

Perintah pembuatan Firewall berikut ini tidak menggunakan Zona Ketersediaan. Jika Anda ingin menggunakan fitur ini, parameter tambahan -Zone diperlukan. Contoh disediakan di bagian peningkatan di akhir artikel ini.

Mengaktifkan pengelogan dari Azure Firewall ke Azure Monitor bersifat opsional, tetapi dalam contoh ini Anda menggunakan log Firewall untuk membuktikan bahwa lalu lintas melintasi firewall:

# Optionally, enable looging 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

Menyebarkan Azure Firewall dan mengonfigurasi perutean kustom

Catatan

Ini adalah konfigurasi yang disebarkan saat mengamankan konektivitas dari Portal Microsoft Azure dengan Azure Firewall Manager saat pengaturan "Antar-hub" diatur ke dinonaktifkan. Untuk petunjuk tentang cara mengonfigurasi perutean menggunakan powershell saat "Inter-hub" diatur ke diaktifkan, lihat Mengaktifkan niat perutean.

Sekarang Anda memiliki Azure Firewall di hub, tetapi Anda masih perlu memodifikasi perutean sehingga Virtual WAN mengirim lalu lintas dari jaringan virtual dan dari cabang melalui firewall. Anda melakukan modifikasi ini dalam dua langkah:

  1. Mengonfigurasi semua koneksi jaringan virtual (dan koneksi cabang jika ada) untuk disebarluaskan ke Tabel Rute None. Efek dari konfigurasi ini akan menyebabkan jaringan virtual dan cabang lainnya tidak mengenali awalan mereka, sehingga tidak ada perutean yang bisa menjangkau mereka.
  2. Sekarang Anda dapat menyisipkan rute statik di Tabel Rute Default (di mana semua jaringan virtual dan cabang dikaitkan secara default), sehingga semua lalu lintas dikirim ke Azure Firewall.

Mulailah dengan langkah pertama, untuk mengonfigurasi koneksi jaringan virtual Anda untuk disebarluaskan ke Tabel Rute None:

# 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

Sekarang Anda dapat melanjutkan langkah kedua, untuk menambahkan rute statik ke tabel rute Default. Dalam contoh ini, Anda menerapkan konfigurasi default yang akan dihasilkan Azure Firewall Manager saat mengamankan konektivitas di Virtual WAN, tetapi Anda dapat mengubah daftar awalan dalam rute statik agar sesuai dengan persyaratan spesifik Anda:

# 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)

Catatan

String "all_traffic" sebagai nilai untuk parameter "-Name" pada perintah New-AzVHubRoute di atas memiliki arti khusus: jika Anda menggunakan string yang sama persis, konfigurasi yang diterapkan dalam artikel ini akan tercermin dengan benar di Portal Azure (Firewall Manager --> Hub virtual --> [Hub Anda] --> Konfigurasi Keamanan). Jika nama yang akan digunakan berbeda, konfigurasi yang diinginkan akan diterapkan, tetapi tidak akan tercermin di Portal Microsoft Azure.

Mengaktifkan niat perutean

Jika Anda ingin mengirim lalu lintas antar-hub dan antar-wilayah melalui Azure Firewall yang disebarkan di hub Virtual WAN, Anda dapat mengaktifkan fitur niat perutean. Untuk informasi selengkapnya tentang niat perutean, lihat Dokumentasi Niat Perutean.

Catatan

Ini adalah konfigurasi yang disebarkan saat mengamankan konektivitas dari Portal Microsoft Azure dengan Azure Firewall Manager saat pengaturan "Interhub" diatur ke diaktifkan.

# 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)

Jika Anda menggunakan awalan non-RFC1918 di Virtual WAN Anda seperti 40.0.0.0/24 di Virtual Network atau lokal Anda, tambahkan rute tambahan di defaultRouteTable setelah konfigurasi niat perutean selesai. Pastikan Anda menamai rute ini sebagai private_traffic. Jika rute diberi nama lain, konfigurasi yang diinginkan akan berlaku tetapi tidak akan tercermin di Portal Microsoft Azure.

# 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

Uji konektivitas

Sekarang Anda memiliki hub aman yang sepenuhnya beroperasi. Untuk menguji konektivitas, Anda memerlukan satu komputer virtual di setiap jaringan virtual spoke yang tersambung ke hub:

# 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")

Konfigurasi default dalam kebijakan firewall adalah untuk menghilangkan semuanya. Jadi Anda perlu mengkonfigurasi beberapa aturan. Mulailah dengan aturan DNAT, sehingga komputer virtual pengujian dapat diakses melalui alamat IP publik Firewall:

# 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

Sekarang Anda dapat mengonfigurasi beberapa contoh aturan. Tentukan aturan jaringan yang memungkinkan lalu lintas SSH, ditambah aturan aplikasi yang memungkinkan akses Internet ke Nama Domain Yang Sepenuhnya Memenuhi Syarat ifconfig.co. URL ini mengembalikan alamat IP sumber yang terdapat dalam permintaan HTTP:

# 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

Sebelum benar-benar mengirim lalu lintas apa pun, Anda dapat memeriksa rute efektif komputer virtual. Rute tersebut harus berisi awalan yang dipelajari dari Virtual WAN ( 0.0.0.0/0 ditambah RFC1918), tetapi bukan awalan dari spoke yang lain:

# 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

Sekarang hasilkan lalu lintas dari satu Komputer Virtual ke komputer lain, dan verifikasi bahwa lalu lintas tersebut akan dihilangkan di Azure Firewall. Dalam perintah SSH berikut Anda perlu menerima sidik jari komputer virtual, dan memberikan kata sandi yang Anda tentukan ketika Anda membuat komputer virtual. Dalam contoh ini, Anda akan mengirim lima paket permintaan ICMP echo dari komputer virtual di spoke1 ke spoke2, ditambah upaya koneksi TCP pada port 22 menggunakan utilitas Linux nc (dengan bendera -vz yang hanya mengirim permintaan koneksi dan menunjukkan hasilnya). Anda akan melihat ping gagal, dan upaya koneksi TCP pada port 22 berhasil, karena diperbolehkan oleh aturan jaringan yang Anda konfigurasi sebelumnya:

# 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"

Anda juga dapat memverifikasi lalu lintas Internet. Permintaan HTTP melalui utilitas curl ke FQDN yang Anda izinkan dalam kebijakan firewall (ifconfig.co) harus berfungsi, tetapi permintaan HTTP ke tujuan lain harus gagal (dalam contoh ini Anda menguji dengan 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"

Cara termudah untuk memverifikasi bahwa paket dihilangkan oleh firewall adalah dengan memeriksa log. Karena Anda mengonfigurasi Azure Firewall untuk mengirim log ke Azure Monitor, Anda bisa menggunakan Kusto Query Language untuk mengambil log yang relevan dari Azure Monitor:

Catatan

Dibutuhkan waktu sekitar 1 menit agar log muncul dan dikirim ke Azure Monitor

# 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

Di perintah sebelumnya Anda akan melihat entri yang berbeda:

  • Koneksi SSH Anda adalah DNAT'ed
  • Paket ICMP yang dihilangkan antar komputer virtual dalam spoke (10.1.1.4 dan 10.1.2.4)
  • Koneksi SSH yang diizinkan antar komputer virtual berada di dalam spoke

Berikut merupakan sampel output yang dihasilkan oleh perintah di atas:

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

Jika Anda ingin melihat log untuk aturan aplikasi (menjelaskan koneksi HTTP yang diizinkan dan ditolak) atau mengubah cara log ditampilkan, Anda dapat mencoba dengan kueri KQL lainnya. Anda dapat menemukan beberapa contoh dalam log Azure Monitor untuk Azure Firewall.

Membersihkan sumber daya

Untuk menghapus lingkungan pengujian, Anda dapat menghapus grup sumber daya dan semua objek di dalamnya:

# Delete resource group and all contained resources
Remove-AzResourceGroup -Name $RG

Meningkatkan Hub yang ada dengan Zona Ketersediaan

Prosedur sebelumnya menggunakan Azure PowerShell untuk membuat Azure Virtual WAN Hub baru, lalu segera mengonversinya ke Secure Hub menggunakan Azure Firewall. Pendekatan serupa dapat diterapkan ke Azure Virtual WAN Hub yang sudah ada. Firewall Manager juga dapat digunakan untuk konversi, tetapi tidak dimungkinkan untuk menyebarkan Azure Firewall di seluruh Zona Ketersediaan tanpa pendekatan berbasis skrip. Anda dapat menggunakan cuplikan kode berikut untuk mengonversi Azure Virtual WAN Hub yang ada ke Secure Hub, menggunakan Azure Firewall yang disebarkan di ketiga Zona Ketersediaan.

# 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

Setelah Anda menjalankan skrip ini, Zona Ketersediaan akan muncul di properti hub aman seperti yang ditunjukkan pada cuplikan layar berikut:

Cuplikan layar zona ketersediaan hub virtual aman.

Setelah Azure Firewall disebarkan, prosedur konfigurasi harus diselesaikan seperti yang dijelaskan di bagian Menyebarkan Azure Firewall sebelumnya dan mengonfigurasi perutean kustom.

Langkah berikutnya