Firewall gebruiken om uitgaand verkeer te beperken met behulp van Azure CLI
Notitie
Op 31 januari 2025 wordt Azure HDInsight buiten gebruik gesteld op AKS. Vóór 31 januari 2025 moet u uw workloads migreren naar Microsoft Fabric of een gelijkwaardig Azure-product om te voorkomen dat uw workloads plotseling worden beëindigd. De resterende clusters in uw abonnement worden gestopt en verwijderd van de host.
Alleen basisondersteuning is beschikbaar tot de buitengebruikstellingsdatum.
Belangrijk
Deze functie is momenteel beschikbaar in preview. De aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews bevatten meer juridische voorwaarden die van toepassing zijn op Azure-functies die bèta, in preview of anderszins nog niet beschikbaar zijn in algemene beschikbaarheid. Zie Azure HDInsight op AKS Preview-informatie voor meer informatie over deze specifieke preview. Voor vragen of suggesties voor functies dient u een aanvraag in op AskHDInsight met de details en volgt u ons voor meer updates in de 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 vanuit 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 dat in dit artikel wordt gedemonstreerd, wordt Gebruikgemaakt van Azure Could Shell.
De variabelen definiëren
Kopieer en voer deze uit in De 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 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 aan het subnet
HDIAKS_SUBNET_NAME
, moet u bepaalde regels voor uitgaand en inkomend verkeer handmatig toevoegen. Volg het gebruik van NSG om het verkeer te 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 aan het 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 maken voor meer informatie.
AKS-clusterdetails ophalen die zijn gemaakt achter de clustergroep
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 opdrachten voor routetabellen maken voor 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 de pagina's voor het maken van clusters raadplegen voor het maken van Apache Flink-, Trino- en 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>
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>
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>
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 cluster aanvragen door de load balancer-service voor inkomend verkeer van de clustertaakverdeling en ervoor zorgen dat het netwerkresponsverkeer niet naar de firewall stroomt. 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 NSG om het verkeer te beperken om het verkeer toe te staan.
Tip
Als u meer verkeer wilt toestaan, kunt u dit configureren via de firewall.
Fouten opsporen
Als u merkt dat het cluster onverwacht werkt, kunt u de firewalllogboeken controleren om te zien welk verkeer wordt geblokkeerd.