Použití brány firewall k omezení odchozího provozu pomocí Azure CLI
Poznámka:
Azure HDInsight vyřadíme ze služby AKS 31. ledna 2025. Před 31. lednem 2025 budete muset migrovat úlohy do Microsoft Fabric nebo ekvivalentního produktu Azure, abyste se vyhnuli náhlému ukončení úloh. Zbývající clustery ve vašem předplatném se zastaví a odeberou z hostitele.
Do data vyřazení bude k dispozici pouze základní podpora.
Důležité
Tato funkce je aktuálně dostupná jako ukázková verze. Doplňkové podmínky použití pro Microsoft Azure Preview obsahují další právní podmínky, které se vztahují na funkce Azure, které jsou v beta verzi, ve verzi Preview nebo ještě nejsou vydány v obecné dostupnosti. Informace o této konkrétní verzi Preview najdete v tématu Azure HDInsight o službě AKS ve verzi Preview. Pokud máte dotazy nebo návrhy funkcí, odešlete prosím žádost na AskHDInsight s podrobnostmi a sledujte nás o dalších aktualizacích v komunitě Azure HDInsight.
Když podnik chce pro nasazení clusteru používat vlastní virtuální síť, stane se důležitým zabezpečením provozu virtuální sítě. Tento článek obsahuje postup zabezpečení odchozího provozu ze služby HDInsight v clusteru AKS prostřednictvím služby Azure Firewall pomocí Azure CLI.
Následující diagram znázorňuje příklad použitý v tomto článku k simulaci podnikového scénáře:
Příklad ukázaný v tomto článku používá Azure Could Shell.
Definování proměnných
Zkopírujte a spusťte v Azure Cloud Shellu, abyste nastavili hodnoty těchto proměnných.
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"
Vytvoření virtuální sítě a podsítí
Vytvořte skupinu prostředků pomocí příkazu az group create.
az group create --name $RG --location $LOC
Vytvořte virtuální síť a dvě podsítě.
Virtuální síť s podsítí pro HDInsight ve fondu clusterů AKS
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
Podsíť pro Azure Firewall
az network vnet subnet create \ --resource-group $RG \ --vnet-name $VNET_NAME \ --name $FWSUBNET_NAME \ --address-prefix 10.2.0.0/16
Důležité
- Pokud do podsítě
HDIAKS_SUBNET_NAME
přidáte skupinu zabezpečení sítě , musíte přidat určitá odchozí a příchozí pravidla ručně. Pomocí skupiny zabezpečení sítě omezte provoz. - Ve výchozím nastavení nebude směrovací tabulka přidružená k podsíti. V případě potřeby musí uživatel vytvořit směrovací tabulku a přidružit ji k fondu clusterů.
- Pokud do podsítě
Vytvoření SLUŽBY HDInsight ve fondu clusterů AKS pomocí webu Azure Portal
Vytvořte fond clusterů.
Vytvořte směrovací tabulku.
Vytvořte směrovací tabulku a přidružte ji ke fondu clusteru. Další informace najdete v tématu Vytvoření směrovací tabulky.
Získání podrobností o clusteru AKS vytvořených za fondem clusteru
Podle kroků získejte informace o clusteru AKS, což je užitečné v následujících krocích.
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)
Vytvoření brány firewall
Vytvořte prostředek veřejné IP adresy skladové položky Standard. Tento prostředek se používá jako front-endová adresa služby Azure Firewall.
az network public-ip create -g $RG -n $FWPUBLICIP_NAME -l $LOC --sku "Standard"
Zaregistrujte rozšíření Rozhraní příkazového řádku služby Azure Firewall ve verzi Preview a vytvořte bránu Azure Firewall.
az extension add --name azure-firewall
Vytvořte bránu Azure Firewall a povolte proxy server DNS.
az network firewall create -g $RG -n $FWNAME -l $LOC --enable-dns-proxy true
Vytvořte konfiguraci PROTOKOLU IP služby Azure Firewall.
az network firewall ip-config create -g $RG -f $FWNAME -n $FWIPCONFIG_NAME --public-ip-address $FWPUBLICIP_NAME --vnet-name $VNET_NAME
Jakmile bude příkaz konfigurace PROTOKOLU IP úspěšný, uložte ip adresu front-endu brány firewall pro pozdější konfiguraci.
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)
Přidání pravidel sítě a aplikací do brány firewall
Vytvořte pravidla sítě.
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
Vytvořte pravidla aplikace.
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"
Vytvoření trasy v směrovací tabulce pro přesměrování provozu do brány firewall
Vytvořte směrovací tabulku, která se přidružuje ke službě HDInsight ve fondu clusteru AKS. Další informace najdete v tématu vytvoření příkazů směrovací tabulky.
Vytvoření clusteru
V předchozích krocích jsme směrovali síťový provoz do brány firewall.
Následující kroky obsahují podrobnosti o konkrétních pravidlech sítě a aplikací potřebných pro každý typ clusteru. Můžete se podívat na stránky pro vytváření clusterů pro vytváření clusterů Apache Flink, Trino a Apache Spark na základě vašich potřeb.
Důležité
Před vytvořením clusteru nezapomeňte spustit následující pravidla specifická pro cluster, která povolují provoz.
Trino
Přidejte následující pravidla sítě a aplikací pro cluster Trino.
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"
Sql.<Region>
Podle vašeho požadavku změňte následující syntaxi na vaši oblast. Příklad: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
Přidejte následující pravidlo aplikace pro cluster Apache Flink.
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
Přidejte následující pravidla sítě a aplikací pro cluster Spark.
Storage.<Region>
Podle vašeho požadavku změňte následující syntaxi na vaši oblast. Příklad: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"
Sql.<Region>
Podle vašeho požadavku změňte následující syntaxi na vaši oblast. Příklad: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"
Řešení problému se symetrickým směrováním
Následující kroky umožňují vyžádat cluster podle služby příchozího přenosu dat nástroje pro vyrovnávání zatížení clusteru a zajistit, aby provoz odezvy sítě netekal do brány firewall. Přidejte trasu do směrovací tabulky, která přesměruje provoz odpovědí na IP adresu klienta na internet a pak se můžete připojit přímo ke clusteru.
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
Pokud se po nakonfigurování skupiny zabezpečení sítě nemůžete připojit ke clusteru, pomocí skupiny zabezpečení sítě omezte provoz a povolte provoz .
Tip
Pokud chcete povolit více přenosů, můžete ho nakonfigurovat přes bránu firewall.
Postup ladění
Pokud zjistíte, že cluster funguje neočekávaně, můžete zkontrolovat protokoly brány firewall a zjistit, který provoz je blokovaný.