Použití brány firewall k omezení odchozího provozu pomocí Azure CLI
Důležitý
Azure HDInsight v AKS byl vyřazen 31. ledna 2025. Další informace naleznete v tomto oznámení .
Abyste se vyhnuli náhlému ukončení úloh, musíte migrovat úlohy do Microsoft Fabric nebo ekvivalentního produktu Azure.
Důležitý
Tato funkce je aktuálně ve verzi Preview. Doplňkové podmínky použití pro ukázkové verze Microsoft Azure obsahují další právní podmínky, které se vztahují na funkce Azure, jež jsou v beta verzi, ukázkové verzi, nebo které ještě nebyly uvedeny do obecné dostupnosti. Informace o této konkrétní verzi Preview najdete v tématu Azure HDInsight ve 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 pro další aktualizace 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 NSG (skupinu zabezpečení sítě), musíte přidat určitá odchozí a příchozí pravidla ručně. Řiďte se a pomocí skupiny zabezpečení sítě omezte provoz. - Ve výchozím nastavení nebude směrovací tabulka připojena 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ískejte podrobnosti o clusteru AKS vytvořeném v rámci poolu 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řte bránu firewall
Vytvořte veřejný IP prostředek s SKU 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 CLI rozšíření Azure Firewall ve verzi Preview k vytvoření Azure Firewallu.
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řidejte pravidla 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řte trasu ve směrovací tabulce pro přesměrování provozu na bránu firewall.
Vytvořte směrovací tabulku, která bude přidružena ke službě HDInsight v clusterovém fondu AKS. Další informace najdete v části vytvoření příkazů pro 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í Apache Flink, trinoa clustery Apache Spark podle 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"
Změňte
Sql.<Region>
v následující syntaxi na vaši oblast podle vašich požadavků. 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.
Změňte
Storage.<Region>
v následující syntaxi na váš region podle vašeho požadavku. 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"
Podle vašeho požadavku změňte
Sql.<Region>
v 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
V následujících krocích můžete požádat o příchozí službu pro vyrovnávání zatížení pro jednotlivé clustery a zajistit, aby provoz odpovědí v síti nesměřoval 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, postupujte podle pro omezení provozu pomocí skupiny zabezpečení sítě a použíjte k povolení provozu.
Spropitné
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ý.