Sdílet prostřednictvím


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:

diagram znázorňující tok sítě

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"

diagram zobrazující proměnné Cloud Shellu

Vytvoření virtuální sítě a podsítí

  1. Vytvořte skupinu prostředků pomocí příkazu az group create.

    az group create --name $RG --location $LOC
    
  2. Vytvořte virtuální síť a dvě podsítě.

    1. 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
      
    2. 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ý

      1. Pokud do podsítě HDIAKS_SUBNET_NAMEpř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.
      2. 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ů.

Vytvoření SLUŽBY HDInsight ve fondu clusterů AKS pomocí webu Azure Portal

  1. Vytvořte fond clusterů.

    Diagram zobrazující základní kartu fondu clusterů.

    Diagram zobrazující kartu zabezpečení.

  2. 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

  1. 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"
    
  2. Zaregistrujte CLI rozšíření Azure Firewall ve verzi Preview k vytvoření Azure Firewallu.

       az extension add --name azure-firewall
    
  3. 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
    
  4. 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
    
  5. 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

  1. 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
    
  2. 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

  1. 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"
    
  1. 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

  1. 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ý.