Delen via


Zelfstudie: Uw virtuele hub beveiligen met Behulp van Azure PowerShell

In deze zelfstudie maakt u een Virtual WAN-exemplaar met een virtuele hub in één regio en implementeert u een Azure Firewall in de virtuele hub om de connectiviteit te beveiligen. In dit voorbeeld demonstreert u beveiligde connectiviteit tussen virtuele netwerken. Verkeer tussen virtuele netwerken en site-naar-site-, punt-naar-site of ExpressRoute-branches wordt ook ondersteund door virtuele beveiligde hub.

In deze zelfstudie leert u het volgende:

  • De virtuele WAN implementeren
  • Azure Firewall implementeren en aangepaste routering configureren
  • Connectiviteit testen

Belangrijk

Een Virtual WAN is een verzameling hubs en services die beschikbaar worden gesteld in de hub. U kunt zoveel virtuele WAN's implementeren die u nodig hebt. In een Virtual WAN-hub zijn er meerdere services zoals VPN, ExpressRoute, enzovoort. Elk van deze services wordt automatisch geïmplementeerd in beschikbaarheidszones, met uitzondering van Azure Firewall, als de regio beschikbaarheidszones ondersteunt. Als u een bestaande Azure Virtual WAN-hub wilt upgraden naar een beveiligde hub en de Azure Firewall beschikbaarheidszones wilt gebruiken, moet u Azure PowerShell gebruiken, zoals verderop in dit artikel wordt beschreven.

Vereisten

Aanmelden bij Azure

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

Eerste implementatie van Virtual WAN

Als eerste stap moet u enkele variabelen instellen en de resourcegroep, het virtuele WAN-exemplaar en de virtuele hub maken:

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

Maak twee virtuele netwerken en verbind ze met de hub als spokes:

# 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

Op dit moment hebt u een volledig functioneel Virtual WAN dat any-to-any-connectiviteit biedt. Als u het wilt verbeteren met beveiliging, moet u een Azure Firewall implementeren op elke virtuele hub. Er kan Firewall-beleid worden gebruikt om het Azure Firewall-exemplaar van Virtual WAN efficiënt te beheren. In dit voorbeeld wordt dus ook een firewallbeleid gemaakt:

# 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

Notitie

De volgende opdracht voor het maken van een firewall maakt geen gebruik van beschikbaarheidszones. Als u deze functie wilt gebruiken, is een extra parameter -Zone vereist. Aan het einde van dit artikel vindt u een voorbeeld in de sectie Upgrade.

Het inschakelen van logboekregistratie van de Azure Firewall op Azure Monitor is optioneel, maar in dit voorbeeld gebruikt u de Firewall-logboeken om te bewijzen dat verkeer de firewall doorkruist:

# 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

Azure Firewall implementeren en aangepaste routering configureren

Notitie

Dit is de configuratie die is geïmplementeerd bij het beveiligen van connectiviteit vanuit Azure Portal met Azure Firewall Manager wanneer de instelling Inter-hub is ingesteld op uitgeschakeld. Zie Routeringsintentie inschakelen voor instructies over het configureren van routering met behulp van PowerShell wanneer 'Inter-hub' is ingeschakeld.

U hebt nu een Azure Firewall in de hub, maar u moet nog steeds de routering wijzigen zodat Virtual WAN het verkeer van de virtuele netwerken en van de branches via de firewall verzendt. Dit doet u in twee stappen:

  1. Configureer alle virtuele netwerkverbindingen (en de branche-verbindingen indien aanwezig) zodat deze doorgeven aan de Routeringstabel None. Het effect van deze configuratie is dat andere virtuele netwerken en branches hun voorvoegsels niet leren en dat er geen routering is om ze te bereiken.
  2. U kunt nu statische routes invoegen in de Routeringstabel Default (waarbij alle virtuele netwerken en branches standaard zijn gekoppeld), zodat al het verkeer naar de Azure Firewall wordt verzonden.

Begin met de eerste stap, om uw virtuele netwerkverbindingen te configureren zodat deze doorgeven aan de Routeringstabel 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

U kunt nu doorgaan met de tweede stap, om de statische routes toe te voegen aan de routeringstabel Default. In dit voorbeeld past u de standaard configuratie toe die Azure Firewall Manager zou genereren bij het beveiligen van de connectiviteit in een Virtual WAN, maar u kunt de lijst met voorvoegsels in de statische route aanpassen aan uw specifieke vereisten:

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

Notitie

Tekenreeks 'all_traffic' als waarde voor parameter '-Name' in de bovenstaande opdracht New-AzVHubRoute heeft een speciale betekenis: als u deze exacte tekenreeks gebruikt, wordt de configuratie die in dit artikel wordt toegepast, correct weergegeven in de Azure-portal (Firewall Manager --> Virtuele hubs --> [Uw hub] -> Beveiligingsconfiguratie). Als er een andere naam wordt gebruikt, wordt de gewenste configuratie toegepast, maar wordt deze niet weergegeven in Azure Portal.

Routeringsintentie inschakelen

Als u verkeer tussen hubs en regio's wilt verzenden via Azure Firewall die is geïmplementeerd in de Virtual WAN-hub, kunt u in plaats daarvan de functie voor routeringsintentie inschakelen. Zie de documentatie over routeringsintentie voor meer informatie over routeringsintentie.

Notitie

Dit is de configuratie die is geïmplementeerd bij het beveiligen van connectiviteit vanuit Azure Portal met Azure Firewall Manager wanneer de instelling Interhub is ingesteld op ingeschakeld.

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

Als u niet-RFC1918 voorvoegsels gebruikt in uw Virtual WAN, zoals 40.0.0.0/24 in uw virtuele netwerk of on-premises, voegt u een extra route toe aan de defaultRouteTable nadat de configuratie van de routeringsintentie is voltooid. Zorg ervoor dat u deze route een naam krijgt als private_traffic. Als de route anders wordt genoemd, wordt de gewenste configuratie toegepast, maar wordt deze niet weergegeven in Azure Portal.

# 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

Connectiviteit testen

Nu hebt u een volledig operationele beveiligde hub. Als u de connectiviteit wilt testen, hebt u één virtuele machine nodig in elke spoke van het virtuele netwerk dat is verbonden met de 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")

De standaardconfiguratie in het firewallbeleid is om alles te verwijderen. Daarom moet u enkele regels configureren. Begin met DNAT-regels, zodat de virtuele testmachines toegankelijk zijn via het openbare IP-adres van de 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

Nu kunt u enkele voorbeeldregels configureren. Definieer een netwerkregel die SSH-verkeer toestaat, plus een toepassingsregel waarmee Internettoegang tot de FQDN-naam (Fully Qualified Domain Name) ifconfig.co wordt toegestaan. Deze URL retourneert het bron-IP-adres dat wordt weergegeven in de HTTP-aanvraag:

# 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

Voordat u verkeer daadwerkelijk verzendt, kunt u de effectieve routes van de virtuele machines inspecteren. Deze moeten de voorvoegsels bevatten die zijn geleerd van het Virtual WAN (0.0.0.0/0 plus RFC1918), maar niet het voorvoegsel van de andere spoke:

# 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

Genereer nu verkeer van de ene virtuele machine naar de andere en controleer of dit wordt verwijderd in de Azure Firewall. In de volgende SSH-opdrachten moet u de vingerafdrukken van de virtuele machines accepteren en het wachtwoord opgeven dat u hebt gedefinieerd tijdens het maken van de virtuele machines. In dit voorbeeld gaat u vijf ICMP-echo-aanvraagpakketten verzenden vanaf de virtuele machine in spoke1 naar spoke2, plus een TCP-verbindingspoging op poort 22 met behulp van het Linux-hulpprogramma nc (met de -vz-vlaggen wordt alleen een verbindingsaanvraag verzonden en wordt het resultaat weergegeven). Als het goed is, ziet u dat de ping mislukt en dat de TCP-verbindingspoging op poort 22 slaagt, omdat deze wordt toegestaan door de netwerkregel die u eerder hebt geconfigureerd:

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

U kunt ook internetverkeer controleren. HTTP-aanvragen via het hulpprogramma curl naar de FQDN die u hebt toegestaan in het firewallbeleid (ifconfig.co) zouden moeten werken, maar HTTP-aanvragen naar een andere bestemming moeten mislukken (in dit voorbeeld test u met 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"

De eenvoudigste manier om te controleren of de pakketten door de firewall worden verwijderd, is door de logboeken te controleren. Aangezien u de Azure Firewall hebt geconfigureerd om logboeken te verzenden naar Azure Monitor, kunt u de Kusto-querytaal gebruiken om de relevante logboeken uit Azure Monitor op te halen:

Notitie

Het kan ongeveer 1 minuut duren voordat de logboeken worden verzonden naar 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

In de vorige opdracht moet u verschillende vermeldingen zien:

  • Er wordt een DNAT uitgevoerd op uw SSH-verbinding
  • Verwijderde ICMP-pakketten tussen de VM’s in de spokes (10.1.1.4 en 10.1.2.4)
  • Toegestane SSH-verbindingen tussen de VM’s in de spokes

Hier volgt een voorbeeld van de uitvoer die wordt geproduceerd met de bovenstaande opdracht:

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

Als u de logboeken voor de toepassingsregels wilt weergeven (met een beschrijving van de toegestane en geweigerde HTTP-verbindingen) of als u de manier wilt wijzigen waarop de logboeken worden weergegeven, kunt u het proberen met andere KQL-query’s. U vindt enkele voorbeelden in Azure Monitor-logboeken voor Azure Firewall.

Resources opschonen

Als u de testomgeving wilt verwijderen, kunt u de resourcegroep met alle ingesloten objecten verwijderen:

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

Een nieuwe Azure Firewall implementeren met beschikbaarheidszones naar een bestaande hub

De vorige procedure maakt gebruik van Azure PowerShell om een nieuwe Azure Virtual WAN Hub te maken en converteert deze onmiddellijk naar een beveiligde hub met behulp van Azure Firewall. Een vergelijkbare benadering kan worden toegepast op een bestaande Azure Virtual WAN-hub. Firewall Manager kan ook worden gebruikt voor de conversie, maar het is niet mogelijk om Azure Firewall in beschikbaarheidszones te implementeren zonder een op scripts gebaseerde benadering. U kunt het volgende codefragment gebruiken om een bestaande Azure Virtual WAN Hub te converteren naar een beveiligde hub, met behulp van een Azure Firewall die in alle drie de beschikbaarheidszones is geïmplementeerd.

Notitie

Met deze procedure wordt een nieuwe Azure Firewall geïmplementeerd. U kunt een bestaande Azure Firewall niet upgraden zonder beschikbaarheidszones naar een met beschikbaarheidszones. U moet eerst de bestaande Azure Firewall in de hub verwijderen en deze opnieuw maken met behulp van deze procedure.

# 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

Nadat u dit script hebt uitgevoerd, moeten beschikbaarheidszones worden weergegeven in de eigenschappen van de beveiligde hub, zoals wordt weergegeven in de volgende schermopname:

Schermopname van beveiligde beschikbaarheidszones voor virtuele hubs.

Nadat de Azure Firewall is geïmplementeerd, moet een configuratieprocedure worden voltooid zoals beschreven in de vorige sectie Azure Firewall implementeren en aangepaste routering configureren.

Volgende stappen