Firewall gebruiken om uitgaand verkeer te beperken met behulp van Azure CLI
Belangrijk
Azure HDInsight op AKS is op 31 januari 2025 buiten gebruik gesteld. Meer informatie met deze aankondiging.
U moet uw workloads migreren naar Microsoft Fabric- of een gelijkwaardig Azure-product om plotselinge beëindiging van uw workloads te voorkomen.
Belangrijk
Deze functie is momenteel beschikbaar als preview-versie. De aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews meer juridische voorwaarden bevatten die van toepassing zijn op Azure-functies die bèta, in preview of anderszins nog niet in algemene beschikbaarheid zijn vrijgegeven. Voor meer informatie over deze specifieke preview, zie Azure HDInsight op AKS preview-informatie. Voor vragen of suggesties voor functies dient u een aanvraag in op AskHDInsight- met de details en volgt u ons voor meer updates over Azure HDInsight Community-.
Wanneer een onderneming een eigen virtueel netwerk wil gebruiken voor de clusterimplementaties, wordt het beveiligen van het verkeer van het virtuele netwerk belangrijk. Dit artikel bevat de stappen voor het beveiligen van uitgaand verkeer van uw HDInsight op AKS-cluster via Azure Firewall met behulp van Azure CLI-.
In het volgende diagram ziet u het voorbeeld dat in dit artikel wordt gebruikt om een bedrijfsscenario te simuleren:
In het voorbeeld in dit artikel wordt gebruikgemaakt van Azure Could Shell-.
De variabelen definiëren
Kopiëren en uitvoeren in Azure Cloud Shell om de waarden van deze variabelen in te stellen.
PREFIX="hdiaks-egress"
RG="${PREFIX}-rg"
LOC="eastus"
HDIAKS_CLUSTER_POOL=${PREFIX}
VNET_NAME="${PREFIX}-vnet"
HDIAKS_SUBNET_NAME="${PREFIX}-subnet"
# DO NOT CHANGE FWSUBNET_NAME - This is currently a requirement for Azure Firewall.
FWSUBNET_NAME="AzureFirewallSubnet"
FWNAME="${PREFIX}-fw"
FWPUBLICIP_NAME="${PREFIX}-fwpublicip"
FWIPCONFIG_NAME="${PREFIX}-fwconfig"
FWROUTE_NAME="${PREFIX}-fwrn"
FWROUTE_NAME_INTERNET="${PREFIX}-fwinternet"
Een virtueel netwerk en subnetten maken
Maak een resourcegroep met behulp van de opdracht az group create.
az group create --name $RG --location $LOC
Maak een virtueel netwerk en twee subnetten.
Virtueel netwerk met subnet voor HDInsight in AKS-clustergroep
az network vnet create \ --resource-group $RG \ --name $VNET_NAME \ --location $LOC \ --address-prefixes 10.0.0.0/8 \ --subnet-name $HDIAKS_SUBNET_NAME \ --subnet-prefix 10.1.0.0/16
Subnet voor Azure Firewall.
az network vnet subnet create \ --resource-group $RG \ --vnet-name $VNET_NAME \ --name $FWSUBNET_NAME \ --address-prefix 10.2.0.0/16
Belangrijk
- Als u NSG toevoegt in subnet
HDIAKS_SUBNET_NAME
, moet u bepaalde regels voor uitgaand en inkomend verkeer handmatig toevoegen. Gebruik de NSG volgens om het verkeerte beperken. - Standaard wordt de routetabel niet gekoppeld aan het subnet. Indien nodig moet de gebruiker een routetabel maken en deze koppelen aan de clustergroep.
- Als u NSG toevoegt in subnet
HDInsight in AKS-clustergroep maken met behulp van Azure Portal
Maak een clustergroep.
Maak een routetabel.
Maak een routetabel en koppel deze aan de clustergroep. Zie een routetabel makenvoor meer informatie.
Verkrijg AKS-clusterdetails die zijn gemaakt achter de clusterpool
Volg de stappen om de informatie over het AKS-cluster op te halen. Dit is handig in de volgende stappen.
AKS_MANAGED_RG=$(az network vnet subnet show --name $HDIAKS_SUBNET_NAME --vnet-name $VNET_NAME --resource-group $RG --query routeTable.resourceGroup -o tsv)
AKS_ID=$(az group show --name $AKS_MANAGED_RG --query managedBy -o tsv)
HDIAKS_MANAGED_RG=$(az resource show --ids $AKS_ID --query "resourceGroup" -o tsv)
API_SERVER=$(az aks show --name $HDIAKS_CLUSTER_POOL --resource-group $HDIAKS_MANAGED_RG --query fqdn -o tsv)
Firewall maken
Maak een openbare IP-resource voor de standard-SKU. Deze resource wordt gebruikt als het front-endadres van Azure Firewall.
az network public-ip create -g $RG -n $FWPUBLICIP_NAME -l $LOC --sku "Standard"
Registreer de AZURE Firewall Preview CLI-extensie om een Azure Firewall te maken.
az extension add --name azure-firewall
Maak een Azure Firewall en schakel DNS-proxy in.
az network firewall create -g $RG -n $FWNAME -l $LOC --enable-dns-proxy true
Maak een IP-configuratie van Azure Firewall.
az network firewall ip-config create -g $RG -f $FWNAME -n $FWIPCONFIG_NAME --public-ip-address $FWPUBLICIP_NAME --vnet-name $VNET_NAME
Zodra de IP-configuratieopdracht is geslaagd, slaat u het front-end-IP-adres van de firewall op voor de configuratie later.
FWPUBLIC_IP=$(az network public-ip show -g $RG -n $FWPUBLICIP_NAME --query "ipAddress" -o tsv) FWPRIVATE_IP=$(az network firewall show -g $RG -n $FWNAME --query "ipConfigurations[0].privateIPAddress" -o tsv)
Netwerk- en toepassingsregels toevoegen aan de firewall
Maak de netwerkregels.
az network firewall network-rule create -g $RG -f $FWNAME --collection-name 'aksfwnr' -n 'apiudp' --protocols 'UDP' --source-addresses '*' --destination-addresses "AzureCloud.$LOC" --destination-ports 1194 --action allow --priority 100 az network firewall network-rule create -g $RG -f $FWNAME --collection-name 'aksfwnr' -n 'apitcp' --protocols 'TCP' --source-addresses '*' --destination-addresses "AzureCloud.$LOC" --destination-ports 9000 az network firewall network-rule create -g $RG -f $FWNAME --collection-name 'aksfwnr' -n 'apiserver' --protocols 'TCP' --source-addresses '*' --destination-fqdns "$API_SERVER" --destination-ports 443 #Add below step, in case you are integrating log analytics workspace az network firewall network-rule create -g $RG -f $FWNAME --collection-name 'aksfwnr' -n 'azuremonitor' --protocols 'TCP' --source-addresses '*' --destination-addresses "AzureMonitor" --destination-ports 443
Maak de toepassingsregels.
az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'aks-fqdn' --source-addresses '*' --protocols 'http=80' 'https=443' --fqdn-tags "AzureKubernetesService" --action allow --priority 100 az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'acr' --source-addresses '*' --protocols 'https=443' --target-fqdns "hiloprodrpacr00.azurecr.io" az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'blob' --source-addresses '*' --protocols 'https=443' --target-fqdns "*.blob.core.windows.net" az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'servicebus' --source-addresses '*' --protocols 'https=443' --target-fqdns "*.servicebus.windows.net" az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'gsm' --source-addresses '*' --protocols 'https=443' --target-fqdns "*.table.core.windows.net" az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'gcsmonitoring' --source-addresses '*' --protocols 'https=443' --target-fqdns "gcs.prod.monitoring.core.windows.net" az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'graph' --source-addresses '*' --protocols 'https=443' --target-fqdns "graph.microsoft.com"
Route maken in de routetabel om het verkeer om te leiden naar de firewall
Maak een routetabel die moet worden gekoppeld aan HDInsight in een AKS-clustergroep. Zie routetabelopdrachten makenvoor meer informatie.
Cluster maken
In de vorige stappen hebben we netwerkverkeer omgeleid naar de firewall.
De volgende stappen bevatten details over de specifieke netwerk- en toepassingsregels die voor elk clustertype nodig zijn. U kunt verwijzen naar de pagina's voor het maken van clusters voor het maken van Apache Flink, Trinoen Apache Spark clusters op basis van uw behoeften.
Belangrijk
Voordat u een cluster maakt, moet u de volgende clusterspecifieke regels uitvoeren om het verkeer toe te staan.
Trino
Voeg de volgende netwerk- en toepassingsregels toe voor een Trino-cluster.
az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'dfs' --source-addresses '*' --protocols 'https=443' --target-fqdns "*.dfs.core.windows.net" az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'mysql' --source-addresses '*' --protocols 'mssql=1433' --target-fqdns "*.database.windows.net"
Wijzig de
Sql.<Region>
in de volgende syntaxis in uw regio op basis van uw behoeften. Bijvoorbeeld:Sql.EastUS
az network firewall network-rule create -g $RG -f $FWNAME --collection-name 'aksfwnr' -n 'mysql' --protocols 'TCP' --source-addresses '*' --destination-addresses Sql.<Region> --destination-ports "11000-11999"
Apache Flink
Voeg de volgende toepassingsregel toe voor een Apache Flink-cluster.
az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'dfs' --source-addresses '*' --protocols 'https=443' --target-fqdns "*.dfs.core.windows.net"
Apache Spark
Voeg de volgende netwerk- en toepassingsregels toe voor een Spark-cluster.
Wijzig de
Storage.<Region>
in de volgende syntaxis in uw regio op basis van uw behoeften. Bijvoorbeeld:Storage.EastUS
az network firewall network-rule create -g $RG -f $FWNAME --collection-name 'aksfwnr' -n 'smb' --protocols 'TCP' --source-addresses '*' --destination-addresses "Storage.<Region>" --destination-ports 445 az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'dfs' --source-addresses '*' --protocols 'https=443' --target-fqdns "*.dfs.core.windows.net"
Wijzig de
Sql.<Region>
in de volgende syntaxis in uw regio op basis van uw behoeften. Bijvoorbeeld:Sql.EastUS
az network firewall network-rule create -g $RG -f $FWNAME --collection-name 'aksfwnr' -n 'mysql' --protocols 'TCP' --source-addresses '*' --destination-addresses "Sql.<Region>" --destination-ports '11000-11999' az network firewall application-rule create -g $RG -f $FWNAME --collection-name 'aksfwar' -n 'mysql' --source-addresses '*' --protocols 'mssql=1433' --target-fqdns "*.database.windows.net"
Probleem met symmetrische routering oplossen
Met de volgende stappen kunt u voor iedere cluster een load balancer-ingresservice aanvragen en ervoor zorgen dat het netwerkresponsverkeer niet door de firewall gaat. Voeg een route toe aan de routetabel om het antwoordverkeer om te leiden naar het IP-adres van uw client naar internet. Vervolgens kunt u het cluster rechtstreeks bereiken.
az network route-table route create -g $AKS_MANAGED_RG --name clientip --route-table-name $ROUTE_TABLE_NAME --address-prefix {Client_IPs} --next-hop-type Internet
Als u het cluster niet kunt bereiken nadat u NSG hebt geconfigureerd, volgt u de stappen: gebruik om NSG te gebruiken en het verkeer te beperken, en gebruik om het verkeer toe te staan.
Tip
Als u meer verkeer wilt toestaan, kunt u dit configureren via de firewall.
Hoe je fouten kunt opsporen
Als u merkt dat het cluster onverwacht werkt, kunt u de firewalllogboeken controleren om te zien welk verkeer wordt geblokkeerd.