Hálózati forgalom korlátozása az Azure Firewall használatával az Azure Kubernetes Service-ben (AKS)

Ez a cikk bemutatja, hogyan lehet az AKS-fürtök esetében a kimenő hálózathoz és a teljesen minősített tartománynevekhez (FQDN) tartozó szabályokat használni a kimenő forgalom Azure Firewallal történő szabályozására. A konfiguráció egyszerűsítése érdekében az Azure Firewall egy Azure Kubernetes Service (AzureKubernetesService) teljes tartománynév címkét biztosít, amely korlátozza az AKS-fürt kimenő forgalmát.

Tűzfal front-end IP követelményei

  • Termelési minimum: Használjon legalább 20 előtérbeli IP-címet az Azure Firewallon a forráshálózati címfordítás (SNAT) portkimerülésének elkerülése érdekében.
  • Nagy forgalmú fürtök: Ha a fürt sok kimenő kapcsolatot hoz létre ugyanahhoz a célhelyhez, előfordulhat, hogy több előtérbeli IP-címre van szüksége a portok IP-címenkénti maximális számának elkerülése érdekében
  • API-kiszolgálóvédelem: A tűzfal nyilvános előtérbeli IP-címének hozzáadása az API-kiszolgáló által engedélyezett IP-tartományokhoz a fokozott biztonság érdekében
  • Fejlesztői hozzáférés: Engedélyezett IP-tartományok használatakor használjon jumpboxot a tűzfal virtuális hálózatában (VNet), vagy adjon hozzá fejlesztői végpont IP-címeket az engedélyezett tartományhoz

Ez az útmutató a cikkben ismertetett konfigurációs folyamat során érvényes.

Feljegyzés

Az FQDN-címke tartalmazza az összes teljes tartománynevet, amely az AKS-fürtök kimenő hálózati és FQDN-szabályaiban van felsorolva, és automatikusan frissül.

Az architektúra áttekintése

Az alábbi ábra egy korlátozott kimenő forgalommal rendelkező AKS-fürt architektúráját mutatja be az Azure Firewall használatával:

Zárolt topológia

Az architektúra fő összetevői a következők:

  • A nyilvános bejövő forgalom tűzfalszűrőkön keresztül áramlik:
    • Az AKS-ügynökcsomópontok egy dedikált alhálózatban vannak elkülönítve.
    • Az Azure Firewall a saját alhálózatán van üzembe helyezve.
    • A DNST-szabály lefordítja a tűzfal nyilvános IP-címét a terheléselosztó előtérbeli IP-címére.
  • A kimenő kérések az ügynökcsomópontokról indulnak az Azure Firewall belső IP-címére egy felhasználó által megadott útvonal (UDR) használatával:
    • Az AKS-ügynökcsomópontoktól érkező kérések egy olyan UDR-t követnek, amely az alhálózaton van elhelyezve, ahová az AKS-fürt telepítve lett.
    • Az Azure Firewall egy nyilvános IP-címelőtérről lép ki a virtuális hálózatról.
    • A nyilvános internethez vagy más Azure-szolgáltatásokhoz való hozzáférés a tűzfal előtérbeli IP-címére és onnan áramlik.
    • Az AKS-vezérlősíkhoz való hozzáférést api-kiszolgáló által engedélyezett IP-tartományokkal védheti, beleértve a tűzfal nyilvános előtérbeli IP-címét is.
  • Belső forgalom:

Környezeti változók konfigurálása

Az alábbi táblázat a cikkben használt környezeti változókat sorolja fel. Folytatás előtt állítsa be ezeket a változókat a parancssorban, vagy módosítsa a parancsokat saját értékeinek használatára.

Variable Description Példaérték
PREFIX Erőforrásnevek előtagja aks-egress
RESOURCE_GROUP Az erőforráscsoport neve aks-egress-rg
LOCATION Azure-régió erőforrásokhoz eastus
PLUGIN Hálózati beépülő modul az AKS-hez azure
CLUSTER_NAME Az AKS-fürt neve aks-egress
VNET_NAME A virtuális hálózat neve aks-egress-vnet
AKS_SUBNET_NAME Az AKS alhálózatának neve aks-subnet
FW_SUBNET_NAME Az Azure Firewall alhálózatának neve AzureFirewallSubnet
FW_NAME Az Azure Firewall neve aks-egress-fw
FW_PUBLICIP_NAME Az Azure Firewall nyilvános IP-címe aks-egress-fwpublicip
FW_IPCONFIG_NAME Az Azure Firewall IP-konfigurációjának neve aks-egress-fwconfig
FW_ROUTE_TABLE_NAME Az Azure Firewall útvonaltáblájának neve aks-egress-fwrt
FW_ROUTE_NAME_1 Az Azure Firewall útvonalának neve aks-egress-fwrn
FW_ROUTE_NAME_2 Az Azure Firewall internetes útvonalának neve aks-egress-fwrn-internet

Erőforráscsoport létrehozása

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

    az group create --name $RESOURCE_GROUP --location $LOCATION
    

Több alhálózattal rendelkező virtuális hálózat létrehozása

Virtuális hálózat kiépítése két külön alhálózattal: egy a fürthöz és egy a tűzfalhoz. Igény szerint létrehozhat egyet a belső szolgáltatásbejárathoz. Az alábbi ábra az üres hálózati topológiát mutatja be az erőforrások üzembe helyezése előtt:

Üres hálózati topológia

  1. Hozzon létre egy virtuális hálózatot a az network vnet create paranccsal.

    az network vnet create \
        --resource-group $RESOURCE_GROUP \
        --name $VNET_NAME \
        --location $LOCATION \
        --address-prefixes 10.42.0.0/16 \
        --subnet-name $AKS_SUBNET_NAME \
        --subnet-prefix 10.42.1.0/24
    
  2. Hozzon létre egy alhálózatot az Azure Firewallhoz a az network vnet subnet create paranccsal.

    # Dedicated subnet for Azure Firewall (subnet must be named "AzureFirewallSubnet")
    az network vnet subnet create \
        --resource-group $RESOURCE_GROUP \
        --vnet-name $VNET_NAME \
        --name $FW_SUBNET_NAME \
        --address-prefix 10.42.2.0/24
    

Nyilvános IP-cím létrehozása az Azure Firewallhoz

  • Hozzon létre egy szabványos nyilvános termékváltozatú IP-erőforrást a az network public-ip create paranccsal. Ez az erőforrás az Azure Firewall előtérbeli IP-címe.

    az network public-ip create --resource-group $RESOURCE_GROUP --name $FW_PUBLICIP_NAME --location $LOCATION --sku "Standard"
    

Az Azure Firewall CLI-bővítmény telepítése

Azure Firewall létrehozása és DNS-proxy engedélyezése

Feljegyzés

A nagy forgalmú esetekhez lásd a tűzfal frontend IP-követelményeit szakaszt.

További információ az Azure Firewall több IP-címmel való létrehozásáról: Azure Firewall létrehozása több nyilvános IP-címmel a Bicep használatával.

Tűzfal és UDR

  • Hozzon létre egy Azure Firewall-t, és engedélyezze a DNS-proxyt a következő az network firewall create paranccsal: --enable-dns-proxytrue.

    az network firewall create --resource-group $RESOURCE_GROUP --name $FW_NAME --location $LOCATION --enable-dns-proxy true
    

    A nyilvános IP-cím azure firewallra való beállítása eltarthat néhány percig. Ha elkészült, hozzárendelheti az IP-címet a tűzfal előtéréhez.

    Feljegyzés

    A FQDN hálózati szabályokon való használatához engedélyeznie kell a DNS-proxyt. Ha a DNS-proxy engedélyezve van, a tűzfal figyeli az 53-at, és továbbítja a DNS-kéréseket a megadott DNS-kiszolgálónak. Ezzel a beállítással a tűzfal automatikusan lefordíthatja a teljes tartománynevet.

IP-konfiguráció létrehozása az Azure Firewallhoz

  • Hozzon létre egy Azure Firewall IP-konfigurációt a az network firewall ip-config create paranccsal.

    az network firewall ip-config create --resource-group $RESOURCE_GROUP --firewall-name $FW_NAME --name $FW_IPCONFIG_NAME --public-ip-address $FW_PUBLICIP_NAME --vnet-name $VNET_NAME
    

Az Azure Firewall IP-címeinek lekérése

  • Mentse a nyilvános és a privát tűzfal előtérbeli IP-címét a későbbi konfigurációhoz az alábbi parancsokkal:

    export FW_PUBLIC_IP=$(az network public-ip show --resource-group $RESOURCE_GROUP --name $FW_PUBLICIP_NAME --query "ipAddress" -o tsv)
    export FW_PRIVATE_IP=$(az network firewall show --resource-group $RESOURCE_GROUP --name $FW_NAME --query "ipConfigurations[0].privateIPAddress" -o tsv)
    

    Feljegyzés

    Az API-kiszolgáló biztonságával kapcsolatban tekintse meg a tűzfal előtérbeli IP-követelményeinek szakaszát .

UDR-konfiguráció az Azure Firewallon keresztüli AKS-kimenő forgalomhoz

Az Azure automatikusan irányítja a forgalmat az Azure-alhálózatok, virtuális hálózatok és helyszíni hálózatok között. Az alapértelmezett útválasztás módosításához hozzon létre egy útvonaltáblát a következő követelményekkel:

Szükséges útvonalparaméterek:

  • Útvonal célhelye: 0.0.0.0/0 (minden forgalom)
  • Következő ugrás típusa: Hálózati virtuális berendezés (NVA)
  • Következő ugrás IP-címe: Az Azure Firewall privát IP-címe
  • Társítás: Alhálózatonként egy útvonaltábla (nulla vagy egy engedélyezett)

UDR-korlátozások:

  • Az alapértelmezett internetes útvonal (0.0.0.0/0) már létezik, de nyilvános IP-címet igényel az SNAT-hoz.
  • Az útvonalnak átjáróra/NVA-ra kell mutatnia, nem pedig közvetlenül az internetre.
  • Az AKS ellenőrzi az útvonalkonfigurációt, és megakadályozza a közvetlen internetes útvonalakat.
  • Minden alhálózat legfeljebb egy társított útvonaltáblát támogat.

Kimenő típus hatása:

  • UDR (userDefinedRouting): Nincs nyilvános terheléselosztó IP-cím a kimenő kérésekhez.
  • Load Balancer nyilvános IP-cím: Csak szolgáltatástípussal rendelkező LoadBalancer bejövő kérésekhez van létrehozva.
  • SNAT-konfiguráció: A kimenő kapcsolatokhoz megfelelő nyilvános IP-konfiguráció szükséges.

További információ: Az Azure Load Balancer kimenő szabályai.

Útvonal létrehozása ugrással az Azure Firewallra

  1. Hozzon létre egy üres útvonaltáblát a az network route-table create paranccsal. Az útvonaltábla az Azure Firewallt határozza meg következő ugrásként. Minden alhálózathoz nulla vagy egy útvonaltábla társítható.

    az network route-table create --resource-group $RESOURCE_GROUP --location $LOCATION --name $FW_ROUTE_TABLE_NAME
    
  2. Hozzon létre útvonalakat az alhálózatok útvonaltáblájában a az network route-table route create paranccsal.

    az network route-table route create --resource-group $RESOURCE_GROUP --name $FW_ROUTE_NAME_1 --route-table-name $FW_ROUTE_TABLE_NAME --address-prefix 0.0.0.0/0 --next-hop-type VirtualAppliance --next-hop-ip-address $FW_PRIVATE_IP
    
    az network route-table route create --resource-group $RESOURCE_GROUP --name $FW_ROUTE_NAME_2 --route-table-name $FW_ROUTE_TABLE_NAME --address-prefix $FW_PUBLIC_IP/32 --next-hop-type Internet
    

Az Azure alapértelmezett rendszerútvonalainak felülbírálásával vagy további útvonalak alhálózati útvonaltáblához való hozzáadásával kapcsolatos információkért tekintse meg a virtuális hálózat útvonaltáblájának dokumentációját.

Az Azure Firewall kimenő szabályai az AKS (Azure Kubernetes Service) számára

Feljegyzés

Azokon az alkalmazásokon kívüli, a kube-system vagy gatekeeper-system névterekben elhelyezkedő alkalmazások esetén, amelyek kommunikálni szeretnének az API-kiszolgálóval, szükséges egy további hálózati szabály, amely lehetővé teszi a TCP-kommunikációt az API-kiszolgáló IP-címére irányuló 443-as porton. Ezenfelül szükséges egy alkalmazásszabály hozzáadása a fqdn-tag belül a AzureKubernetesService-hez.

Az Azure Firewallon keresztüli AKS kimenő forgalom szabályozásához a következő hálózati szabályok szükségesek:

  • Az első hálózati szabály lehetővé teszi a 9000-s port tcp-en keresztüli elérését.
  • A második hálózati szabály lehetővé teszi az 1194-s port elérését UDP-en keresztül. Ha a 21Vianet által üzemeltetett Microsoft Azure-ban végzi az üzembe helyezést, tekintse meg a 21Vianet által előírt hálózati szabályok által üzemeltetett Azure-t. Ebben a cikkben a parancsok a AzureCloud.$LOCATION szolgáltatáscímkét használják célcímkéként. A szolgáltatáscímkék az egyes régiókban található Azure-szolgáltatások IP-címelőtagjainak csoportjait jelölik. Ez automatikusan tartalmazza a megfelelő CIDR-tartományokat az Azure-szolgáltatásokhoz manuális IP-címtartomány-specifikáció nélkül.
  • A harmadik hálózati szabály megnyitja a 123-es portot az ntp.ubuntu.com FQDN felé az UDP-n keresztül. A teljes tartománynév hálózati szabályként való hozzáadása az Azure Firewall egyik sajátos funkciója, így az ön saját lehetőségeinek használatakor alkalmazkodnia kell hozzá.
  • A negyedik és ötödik hálózati szabály lehetővé teszi a tárolók lekérését a GitHub Container Registryből (ghcr.io) és a Docker Hubból (docker.io).

Hálózati szabályok létrehozása az Azure Firewallon

  • Hozza létre a hálózati szabályokat az alábbi az network firewall network-rule create parancsokkal.

    az network firewall network-rule create --resource-group $RESOURCE_GROUP --firewall-name $FW_NAME --collection-name 'aksfwnr' --name 'apitcp' --protocols 'TCP' --source-addresses '*' --destination-addresses "AzureCloud.$LOCATION" --destination-ports 9000
    
    az network firewall network-rule create --resource-group $RESOURCE_GROUP --firewall-name $FW_NAME --collection-name 'aksfwnr' --name 'apiudp' --protocols 'UDP' --source-addresses '*' --destination-addresses "AzureCloud.$LOCATION" --destination-ports 1194 --action allow --priority 100
    
    az network firewall network-rule create --resource-group $RESOURCE_GROUP --firewall-name $FW_NAME --collection-name 'aksfwnr' --name 'time' --protocols 'UDP' --source-addresses '*' --destination-fqdns 'ntp.ubuntu.com' --destination-ports 123
    
    az network firewall network-rule create --resource-group $RESOURCE_GROUP --firewall-name $FW_NAME --collection-name 'aksfwnr' --name 'ghcr' --protocols 'TCP' --source-addresses '*' --destination-fqdns ghcr.io pkg-containers.githubusercontent.com --destination-ports '443'
    
    az network firewall network-rule create --resource-group $RESOURCE_GROUP --firewall-name $FW_NAME --collection-name 'aksfwnr' --name 'docker' --protocols 'TCP' --source-addresses '*' --destination-fqdns docker.io registry-1.docker.io production.cloudflare.docker.com --destination-ports '443'
    

Alkalmazásszabályok létrehozása az Azure Firewallon

  • Hozza létre az alkalmazásszabályt a az network firewall application-rule create paranccsal.

    az network firewall application-rule create --resource-group $RESOURCE_GROUP --firewall-name $FW_NAME --collection-name 'aksfwar' --name 'fqdn' --source-addresses '*' --protocols 'http=80' 'https=443' --fqdn-tags "AzureKubernetesService" --action allow --priority 100
    

Az Azure Firewallról további információt az Azure Firewall dokumentációjában talál.

Útvonaltábla társítása az AKS-hez

A fürt tűzfalhoz való társításához a fürt alhálózatához tartozó dedikált alhálózatnak hivatkoznia kell az útvonaltáblára.

  • Társítsa az útvonaltáblát az AKS-hez a az network vnet subnet update parancs használatával.

    az network vnet subnet update --resource-group $RESOURCE_GROUP --vnet-name $VNET_NAME --name $AKS_SUBNET_NAME --route-table $FW_ROUTE_TABLE_NAME
    

A kimenő szabályokat követő AKS-fürt üzembe helyezése

Most már üzembe helyezhet egy AKS-fürtöt a meglévő virtuális hálózaton. A kimenő típususerDefinedRouting használatával biztosítható, hogy az összes kimenő adatforgalom a tűzfalon keresztül haladjon, és ne létezzen semmilyen más kimenő útvonal. A kimenő típust is használhatjaloadBalancer.

aks-deploy

  • Állítson be egy környezeti változót a célalhálózat alhálózat-azonosítójára az alábbi paranccsal:

    SUBNET_ID=$(az network vnet subnet show --resource-group $RESOURCE_GROUP --vnet-name $VNET_NAME --name $AKS_SUBNET_NAME --query id -o tsv)
    

Megadhatja a kimenő típust az alhálózaton már létező UDR használatához. Ez a konfiguráció lehetővé teszi, hogy az AKS kihagyja a terheléselosztó beállítását és IP-kiépítését.

Tipp.

További funkciókat is hozzáadhat a fürt telepítéséhez, például privát fürtöket.

Az API-kiszolgáló által engedélyezett IP-tartományok beállításával és a fejlesztői hozzáféréssel kapcsolatos szempontokat a tűzfal előtérbeli IP-követelményeinek szakaszában találja.


AKS-fürt létrehozása rendszer által hozzárendelt identitásokkal

Feljegyzés

Az AKS rendszer által hozzárendelt kubelet-identitást hoz létre a csomópont erőforráscsoportjában, ha nem adja meg a saját kubelet felügyelt identitását.

Felhasználó által definiált útválasztás esetén a rendszer által hozzárendelt identitás csak a CNI hálózati beépülő modult támogatja.

  • Hozzon létre egy AKS-fürtöt egy rendszer által hozzárendelt felügyelt identitással a CNI hálózati beépülő modullal a az aks create parancs használatával.

    az aks create --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --location $LOCATION \
        --node-count 3 \
        --network-plugin azure \
        --outbound-type userDefinedRouting \
        --vnet-subnet-id $SUBNET_ID \
        --api-server-authorized-ip-ranges $FW_PUBLIC_IP \
        --generate-ssh-keys
    

Felhasználó által hozzárendelt identitások létrehozása

Ha nem rendelkezik felhasználó által hozzárendelt identitásokkal, kövesse az ebben a szakaszban ismertetett lépéseket. Ha már rendelkezik felhasználó által hozzárendelt identitásokkal, ugorjon a felhasználó által hozzárendelt identitásokkal rendelkező AKS-fürt létrehozásához.

  1. Felügyelt identitás létrehozása a az identity create paranccsal.

    az identity create --name myIdentity --resource-group $RESOURCE_GROUP
    

    A kimenetnek a következő példakimenethez kell hasonlítania:

     {
       ...
       "id": "/subscriptions/<subscriptionid>/resourcegroups/aks-egress-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity",
       "location": "eastus",
       "name": "myIdentity",
       ...
       "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
     }
    
  2. Hozzon létre egy kubelet felügyelt identitást a az identity create paranccsal.

    az identity create --name myKubeletIdentity --resource-group $RESOURCE_GROUP
    

    A kimenetnek a következő példakimenethez kell hasonlítania:

    {
      ...
      "id": "/subscriptions/<subscriptionid>/resourcegroups/aks-egress-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity",
      "location": "eastus",
      "name": "myKubeletIdentity",
      ...
      "resourceGroup": "aks-egress-rg",
      ...
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
    }
    

Feljegyzés

Ha saját virtuális hálózatot és útvonaltáblát hoz létre, ahol az erőforrások a feldolgozó csomópont erőforráscsoporton kívül vannak, a parancssori felület automatikusan hozzáadja a szerepkör-hozzárendelést. Ha ARM-sablont vagy más módszert használ, a fürt által felügyelt identitás egyszerű azonosítójával kell elvégeznie egy szerepkör-hozzárendelést.

AKS-fürt létrehozása felhasználó által hozzárendelt identitásokkal

  • Hozzon létre egy AKS-fürtöt a meglévő, felhasználó által hozzárendelt felügyelt identitásokkal az alhálózatban a az aks create parancs használatával. Adja meg a vezérlősík felügyelt identitásának erőforrás-azonosítóját és a kubelet-identitás erőforrás-azonosítóját.

    az aks create \
        --resource-group $RESOURCE_GROUP \
        --name $CLUSTER_NAME \
        --location $LOCATION \
        --node-count 3 \
        --network-plugin kubenet \
        --outbound-type userDefinedRouting \
        --vnet-subnet-id $SUBNET_ID \
        --api-server-authorized-ip-ranges $FW_PUBLIC_IP \
        --assign-identity <identity-resource-id> \
        --assign-kubelet-identity <kubelet-identity-resource-id> \
        --generate-ssh-keys
    

Fejlesztői hozzáférés engedélyezése az API-kiszolgálóhoz

Ha az előző lépésben engedélyezett IP-tartományokat használt a fürthöz, hozzá kell adnia a fejlesztői eszköz IP-címeit a jóváhagyott IP-tartományok AKS-fürtlistájához, hogy onnan hozzáférjen az API-kiszolgálóhoz. A jumpboxot a tűzfal virtuális hálózatának egy külön alhálózatán belül is konfigurálhatja a szükséges eszközökkel.

  1. Az IP-cím lekérése a következő paranccsal:

    CURRENT_IP=$(dig @resolver1.opendns.com ANY myip.opendns.com +short)
    
  2. Adja hozzá az IP-címet a jóváhagyott tartományokhoz a az aks update paranccsal.

    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --api-server-authorized-ip-ranges $CURRENT_IP/32
    

Csatlakozás az AKS fürthöz

  • Konfigurálja kubectl az AKS-fürthöz való csatlakozást a az aks get-credentials paranccsal.

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME
    

Közszolgáltatás üzembe helyezése az AKS-ben

Mostantól megkezdheti a szolgáltatások felfedését és az alkalmazások üzembe helyezését ebben a fürtben. Ez a példa nyilvános szolgáltatást tesz elérhetővé, de előfordulhat, hogy belső szolgáltatást is közzé szeretne tenni egy belső terheléselosztóval.

Közszolgálati DNAT

  1. Az üzembe helyezett összetevők megismeréséhez tekintse át az AKS Store bemutatójának rövid útmutatóját .

  2. Telepítse a szolgáltatást a kubectl apply paranccsal.

    kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-quickstart.yaml
    

A terheléselosztó belső IP-címének és szolgáltatási IP-címének lekérése

  1. Kérje le a terheléselosztóhoz rendelt belső IP-címet a kubectl get services paranccsal.

    kubectl get services
    

    Az IP-címnek szerepelnie kell az EXTERNAL-IP oszlopban, ahogy az a következő példakimenetben is látható:

    NAME              TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)              AGE
    kubernetes        ClusterIP      10.0.0.1       <none>        443/TCP              9m10s
    order-service     ClusterIP      10.0.104.144   <none>        3000/TCP             11s
    product-service   ClusterIP      10.0.237.60    <none>        3002/TCP             10s
    rabbitmq          ClusterIP      10.0.161.128   <none>        5672/TCP,15672/TCP   11s
    store-front       LoadBalancer   10.0.89.139    20.39.18.6    80:32271/TCP         10s
    
  2. Kérje le a szolgáltatás IP-címét a kubectl get svc store-front parancs használatával.

    SERVICE_IP=$(kubectl get svc store-front -o jsonpath='{.status.loadBalancer.ingress[*].ip}')
    

DNST-szabály létrehozása az Azure Firewallon

Fontos

Ha az Azure Firewall használatával korlátozza a kimenő forgalmat, és létrehoz egy UDR-t az összes kimenő forgalom kényszerítéséhez, győződjön meg arról, hogy megfelelő DNST-szabályt hoz létre az Azure Firewallban a bejövő forgalom megfelelő engedélyezéséhez. Az Azure Firewall UDR-vel való használata megszakítja a bejövő forgalom beállítását az aszimmetrikus útválasztás miatt. A probléma akkor fordul elő, ha az AKS-alhálózat alapértelmezett útvonala a tűzfal privát IP-címére kerül, de nyilvános terheléselosztót használ – bejövő vagy Kubernetes típusú szolgáltatást loadBalancer. Ebben az esetben a bejövő terheléselosztó-forgalom a nyilvános IP-címén keresztül érkezik, de a visszatérési útvonal a tűzfal magánhálózati IP-címén halad át. Mivel a tűzfal állapotalapú, a visszaadott csomagot elveti, mert a tűzfal nem tud egy már létrehozott munkamenetről. Ha tudni szeretné, hogyan integrálhatja az Azure Firewallt a bejövő vagy szolgáltatás terheléselosztójával, olvassa el az Azure Firewall integrálása az Azure Standard Load Balancerrel című témakört.

A bejövő kapcsolatok konfigurálásához meg kell írnia egy DNST-szabályt az Azure Firewallba. A fürthöz való kapcsolódás teszteléséhez a tűzfal előtérbeli nyilvános IP-címére egy szabály van meghatározva, amely a belső szolgáltatás által közzétett belső IP-címre irányít. Testre szabhatja a célcímet. A lefordított címnek a belső terheléselosztó IP-címének kell lennie. A lefordított portnak a Kubernetes-szolgáltatás közzétett portjának kell lennie. Meg kell adnia a Kubernetes szolgáltatás által létrehozott terheléselosztóhoz rendelt belső IP-címet is.

  • Adja hozzá a NAT-szabályt a az network firewall nat-rule create paranccsal.

    az network firewall nat-rule create --collection-name exampleset --destination-addresses $FW_PUBLIC_IP --destination-ports 80 --firewall-name $FW_NAME --name inboundrule --protocols Any --resource-group $RESOURCE_GROUP --source-addresses '*' --translated-port 80 --action Dnat --priority 100 --translated-address $SERVICE_IP
    

A kapcsolat ellenőrzése

  • Lépjen az Azure Firewall előtérbeli IP-címére egy böngészőben a kapcsolat ellenőrzéséhez. Meg kell jelennie az AKS áruházbeli alkalmazásnak. Ebben a példában a tűzfal nyilvános IP-címe a következő volt 52.253.228.132:

    Képernyőkép a helyi böngészőben megnyitott Azure Store Front Appról.

    Ezen az oldalon megtekintheti a termékeket, hozzáadhatja őket a kosárhoz, majd megrendelheti őket.

Az erőforrások eltávolítása

Ha már nincs szüksége a cikkben létrehozott erőforrásokra, törölheti őket a jövőbeli költségek elkerülése érdekében.

  • Törölje az AKS-erőforráscsoportot a az group delete paranccsal.

    az group delete --name $RESOURCE_GROUP