Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym samouczku szybkiego startu używasz narzędzia Bicep do utworzenia usługi Azure Firewall i polityki zapory. Zasady zapory mają regułę aplikacji, która zezwala na połączenia z www.microsoft.com usługą i regułę zezwalającą na połączenia z usługą Windows Update przy użyciu tagu FQDN programu WindowsUpdate . Reguła sieci umożliwia nawiązywanie połączeń UDP z serwerem czasu o godzinie 13.86.101.172.
Ponadto grupy adresów IP są używane w regułach do definiowania źródłowych adresów IP.
Bicep to język specyficzny dla domeny (DSL), który używa składni deklaratywnej do wdrażania zasobów platformy Azure. Zapewnia zwięzłą składnię, niezawodne bezpieczeństwo typów i obsługę ponownego użycia kodu. Bicep oferuje najlepsze środowisko tworzenia rozwiązań infrastruktury jako kodu na platformie Azure.
Aby uzyskać informacje o usłudze Azure Firewall Manager, zobacz Co to jest usługa Azure Firewall Manager?
Aby uzyskać informacje o usłudze Azure Firewall, zobacz Co to jest usługa Azure Firewall?
Aby uzyskać informacje o grupach adresów IP, zobacz Grupy adresów IP w usłudze Azure Firewall.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
Przejrzyj plik Bicep
Ten plik Bicep tworzy wirtualną sieć koncentratora, wraz z niezbędnymi zasobami do obsługi scenariusza.
Plik Bicep używany w tym przewodniku Szybki start pochodzi z szablonów szybkiego startu platformy Azure.
@description('Virtual network name')
param virtualNetworkName string = 'vnet${uniqueString(resourceGroup().id)}'
@description('Azure Firewall name')
param firewallName string = 'fw${uniqueString(resourceGroup().id)}'
@description('Number of public IP addresses for the Azure Firewall')
@minValue(1)
@maxValue(100)
param numberOfPublicIPAddresses int = 2
@description('Zone numbers e.g. 1,2,3.')
param availabilityZones array = []
@description('Location for all resources.')
param location string = resourceGroup().location
param infraIpGroupName string = '${location}-infra-ipgroup-${uniqueString(resourceGroup().id)}'
param workloadIpGroupName string = '${location}-workload-ipgroup-${uniqueString(resourceGroup().id)}'
param firewallPolicyName string = '${firewallName}-firewallPolicy'
var vnetAddressPrefix = '10.10.0.0/24'
var azureFirewallSubnetPrefix = '10.10.0.0/25'
var publicIPNamePrefix = 'publicIP'
var azurepublicIpname = publicIPNamePrefix
var azureFirewallSubnetName = 'AzureFirewallSubnet'
var azureFirewallSubnetId = resourceId('Microsoft.Network/virtualNetworks/subnets', virtualNetworkName, azureFirewallSubnetName)
var azureFirewallPublicIpId = resourceId('Microsoft.Network/publicIPAddresses', publicIPNamePrefix)
var azureFirewallIpConfigurations = [for i in range(0, numberOfPublicIPAddresses): {
name: 'IpConf${i}'
properties: {
subnet: ((i == 0) ? json('{"id": "${azureFirewallSubnetId}"}') : json('null'))
publicIPAddress: {
id: '${azureFirewallPublicIpId}${i + 1}'
}
}
}]
resource workloadIpGroup 'Microsoft.Network/ipGroups@2022-01-01' = {
name: workloadIpGroupName
location: location
properties: {
ipAddresses: [
'10.20.0.0/24'
'10.30.0.0/24'
]
}
}
resource infraIpGroup 'Microsoft.Network/ipGroups@2022-01-01' = {
name: infraIpGroupName
location: location
properties: {
ipAddresses: [
'10.40.0.0/24'
'10.50.0.0/24'
]
}
}
resource vnet 'Microsoft.Network/virtualNetworks@2022-01-01' = {
name: virtualNetworkName
location: location
tags: {
displayName: virtualNetworkName
}
properties: {
addressSpace: {
addressPrefixes: [
vnetAddressPrefix
]
}
subnets: [
{
name: azureFirewallSubnetName
properties: {
addressPrefix: azureFirewallSubnetPrefix
}
}
]
enableDdosProtection: false
}
}
resource publicIpAddress 'Microsoft.Network/publicIPAddresses@2022-01-01' = [for i in range(0, numberOfPublicIPAddresses): {
name: '${azurepublicIpname}${i + 1}'
location: location
sku: {
name: 'Standard'
}
properties: {
publicIPAllocationMethod: 'Static'
publicIPAddressVersion: 'IPv4'
}
}]
resource firewallPolicy 'Microsoft.Network/firewallPolicies@2022-01-01'= {
name: firewallPolicyName
location: location
properties: {
threatIntelMode: 'Alert'
}
}
resource networkRuleCollectionGroup 'Microsoft.Network/firewallPolicies/ruleCollectionGroups@2022-01-01' = {
parent: firewallPolicy
name: 'DefaultNetworkRuleCollectionGroup'
properties: {
priority: 200
ruleCollections: [
{
ruleCollectionType: 'FirewallPolicyFilterRuleCollection'
action: {
type: 'Allow'
}
name: 'azure-global-services-nrc'
priority: 1250
rules: [
{
ruleType: 'NetworkRule'
name: 'time-windows'
ipProtocols: [
'UDP'
]
destinationAddresses: [
'13.86.101.172'
]
sourceIpGroups: [
workloadIpGroup.id
infraIpGroup.id
]
destinationPorts: [
'123'
]
}
]
}
]
}
}
resource applicationRuleCollectionGroup 'Microsoft.Network/firewallPolicies/ruleCollectionGroups@2022-01-01' = {
parent: firewallPolicy
name: 'DefaultApplicationRuleCollectionGroup'
dependsOn: [
networkRuleCollectionGroup
]
properties: {
priority: 300
ruleCollections: [
{
ruleCollectionType: 'FirewallPolicyFilterRuleCollection'
name: 'global-rule-url-arc'
priority: 1000
action: {
type: 'Allow'
}
rules: [
{
ruleType: 'ApplicationRule'
name: 'winupdate-rule-01'
protocols: [
{
protocolType: 'Https'
port: 443
}
{
protocolType: 'Http'
port: 80
}
]
fqdnTags: [
'WindowsUpdate'
]
terminateTLS: false
sourceIpGroups: [
workloadIpGroup.id
infraIpGroup.id
]
}
]
}
{
ruleCollectionType: 'FirewallPolicyFilterRuleCollection'
action: {
type: 'Allow'
}
name: 'Global-rules-arc'
priority: 1202
rules: [
{
ruleType: 'ApplicationRule'
name: 'global-rule-01'
protocols: [
{
protocolType: 'Https'
port: 443
}
]
targetFqdns: [
'www.microsoft.com'
]
terminateTLS: false
sourceIpGroups: [
workloadIpGroup.id
infraIpGroup.id
]
}
]
}
]
}
}
resource firewall 'Microsoft.Network/azureFirewalls@2021-03-01' = {
name: firewallName
location: location
zones: ((length(availabilityZones) == 0) ? null : availabilityZones)
dependsOn: [
vnet
publicIpAddress
workloadIpGroup
infraIpGroup
networkRuleCollectionGroup
applicationRuleCollectionGroup
]
properties: {
ipConfigurations: azureFirewallIpConfigurations
firewallPolicy: {
id: firewallPolicy.id
}
}
}
W pliku Bicep zdefiniowano wiele zasobów platformy Azure:
- Microsoft.Network/ipGroups
- Microsoft.Network/firewallPolicies
- Microsoft.Network/firewallPolicies/ruleCollectionGroups
- Microsoft.Network/azureFirewalls
- Microsoft.Network/virtualNetworks
- Microsoft.Network/publicIPAddresses
Wdróż plik Bicep
Zapisz plik Bicep jako
main.bicepna komputerze lokalnym.Wdróż plik Bicep przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.
az group create --name exampleRG --location eastus az deployment group create --resource-group exampleRG --template-file main.bicep --parameters firewallName=<firewall-name>Uwaga
Zastąp <firewall-name> nazwą Azure Firewall.
Po zakończeniu wdrażania powinien zostać wyświetlony komunikat informujący o pomyślnym wdrożeniu.
Przeglądanie wdrożonych zasobów
Przejrzyj wdrożone zasoby przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.
az resource list --resource-group exampleRG
Czyszczenie zasobów
Jeśli nie potrzebujesz już zasobów utworzonych za pomocą zapory, usuń grupę zasobów. Zapora i wszystkie powiązane zasoby zostaną usunięte.
az group delete --name exampleRG