Megosztás a következőn keresztül:


Kimenő forgalom korlátozása tűzfal használatával az Azure CLI használatával

Fontos

Az Azure HDInsight on AKS 2025. január 31-én megszűnt. Ismerje meg többet ebből a bejelentésből.

Az Ön számítási feladatainak hirtelen leállásának elkerülése érdekében migrálnia kell azokat a Microsoft Fabric vagy azzal egyenértékű Azure termékre.

Fontos

Ez a funkció jelenleg előzetes verzióban érhető el. A Microsoft Azure Previews kiegészítő használati feltételei további jogi feltételeket tartalmaznak, amelyek a bétaverzióban, előzetes verzióban vagy más módon még nem általánosan elérhető Azure-funkciókra vonatkoznak. Erről a konkrét előzetes verzióról szóló információért lásd a Azure HDInsight az AKS-en előzetes verzió adatait. Ha kérdése vagy funkciójavaslata van, küldjön egy kérést AskHDInsight a részletekkel, és kövessen minket további frissítésekért Azure HDInsight Community.

Amikor egy vállalat saját virtuális hálózatot szeretne használni a fürttelepítésekhez, fontossá válik a virtuális hálózat forgalmának védelme. Ez a cikk ismerteti az Azure Firewall segítségével az AZsüre CLI használatával végrehajtott HDInsight kimenő forgalom védelmének lépéseit az AKS klaszteren.

Az alábbi ábra a jelen cikkben egy vállalati forgatókönyv szimulálására használt példát mutatja be:

hálózati folyamatot ábrázoló diagram.

A cikkben bemutatott példa az Azure Could Shell használata.

A változók definiálása

Másolás és végrehajtás az Azure Cloud Shellben a változók értékének beállításához.

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"

Cloud Shell-változókat bemutató diagram.

Virtuális hálózat és alhálózatok létrehozása

  1. Hozzon létre egy erőforráscsoportot az az group create paranccsal.

    az group create --name $RG --location $LOC
    
  2. Hozzon létre egy virtuális hálózatot és két alhálózatot.

    1. Virtuális hálózat a HDInsight alhálózatával az AKS-fürtkészleten

       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. Az Azure Firewall alhálózata.

      az network vnet subnet create \
         --resource-group $RG \
         --vnet-name $VNET_NAME \
         --name $FWSUBNET_NAME \
         --address-prefix 10.2.0.0/16
      

      Fontos

      1. Ha hozzáad egy NSG-t a(z) HDIAKS_SUBNET_NAMEalhálózatban, manuálisan kell hozzáadni bizonyos kimenő és bejövő szabályokat. Először kövesse a lépést, majd használjon NSG-t a forgalomkorlátozásához.
      2. Alapértelmezés szerint az útvonaltábla nem lesz társítva az alhálózattal. Szükség esetén a felhasználónak létre kell hoznia egy útvonaltáblát, és hozzá kell rendelnie a fürtmedencéhez.

HDInsight létrehozása AKS-fürtkészleten az Azure Portal használatával

  1. Klaszterkészlet létrehozása.

    A fürtkészlet alaplapjának diagramja.

    Biztonsági lapot ábrázoló diagram.

  2. Hozzon létre egy útvonaltáblát.

    Hozzon létre egy útvonaltáblát, és társítsa a klaszterkészlethez. További információ: útvonaltábla létrehozása.

A fürtkészlet mögött létrehozott AKS-fürt részleteinek lekérése

Az alábbi lépéseket követve szerezze meg az AKS-fürt információit, amelyek a további lépések során hasznosak lesznek.

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)

Tűzfal létrehozása

  1. Hozzon létre egy Standard SKU nyilvános IP-cím erőforrást. Ezt az erőforrást használja az Azure Firewall előtérbeli címeként.

    az network public-ip create -g $RG -n $FWPUBLICIP_NAME -l $LOC --sku "Standard"
    
  2. Regisztrálja az Azure Firewall előzetes cli-bővítményét egy Azure Firewall létrehozásához.

       az extension add --name azure-firewall
    
  3. Hozzon létre egy Azure Firewallt, és engedélyezze a DNS-proxyt.

       az network firewall create -g $RG -n $FWNAME -l $LOC --enable-dns-proxy true
    
  4. Hozzon létre egy Azure Firewall IP-konfigurációt.

    az network firewall ip-config create -g $RG -f $FWNAME -n $FWIPCONFIG_NAME --public-ip-address $FWPUBLICIP_NAME --vnet-name $VNET_NAME
    
  5. Ha az IP-konfigurációs parancs sikeres, mentse a tűzfal előtérbeli IP-címét később a konfigurációhoz.

    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)
    

Hálózati és alkalmazásszabályok hozzáadása a tűzfalhoz

  1. Hozza létre a hálózati szabályokat.

    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. Hozza létre az alkalmazásszabályokat.

    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"
    

Útvonal létrehozása az útvonaltáblában a forgalom tűzfalra való átirányításához

Hozzon létre egy útvonaltáblát, amely a HDInsighthoz társítható az AKS-fürtkészleten. További információ: útvonaltábla-parancsok létrehozása.

Klaszter létrehozása

Az előző lépésekben a hálózati forgalmat tűzfalra irányítottuk.

Az alábbi lépések részletesen ismertetik az egyes fürttípusokhoz szükséges konkrét hálózati és alkalmazásszabályokat. Az Apache Flink , a Trino és az Apache Spark -fürtök igény szerinti létrehozásához tekintse meg a fürtlétrehozás lapjait.

Fontos

Fürt létrehozása előtt mindenképpen futtassa a következő fürtspecifikus szabályokat a forgalom engedélyezéséhez.

Trinó

  1. Adja hozzá a következő hálózati és alkalmazásszabályokat egy Trino-fürthöz.

     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"  
    

    Módosítsa a Sql.<Region>-t a következő szintaxis szerint a régiójára, a követelményeknek megfelelően. Például: 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. Adja hozzá az alábbi alkalmazásszabályt egy Apache Flink-fürthöz.

    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. Adja hozzá a következő hálózati és alkalmazásszabályokat egy Spark-fürthöz.

    Módosítsa a következő szintaxisban a Storage.<Region> paramétert a régióra vonatkozó igényeinek megfelelően. Például: 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"
    

    Cserélje ki a Sql.<Region> értéket a következő szintaxisban az Ön régiójának megfelelően. Például: 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"
    

Szimmetrikus útválasztási probléma megoldása

A következő lépések lehetővé teszik, hogy fürtről fürtre igényeljen bejövő terheléselosztó szolgáltatást, és biztosítsák, hogy a hálózati válaszforgalom ne a tűzfalon keresztül áramoljon. Adjon hozzá egy útvonalat az útvonaltáblához, amely átirányítja a válaszforgalmat az ügyfél IP-címéről az internetre, majd közvetlenül elérheti a fürtöt.

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

Ha az NSG konfigurálása után nem tudja elérni a fürtöt, kövesse az alábbi lépéseket: használja az NSG-t a forgalom korlátozására, majd engedélyezze a forgalmat.

Borravaló

Ha több forgalmat szeretne engedélyezni, konfigurálhatja a tűzfalon keresztül.

Hibakeresés

Ha úgy találja, hogy a fürt váratlanul működik, a tűzfalnaplókban ellenőrizheti, hogy melyik forgalom van blokkolva.