Share via


Kontrollera nätverkstrafik från HDInsight på AKS-klusterpooler och kluster

Viktigt!

Den här funktionen finns i förhandsgranskning. De kompletterande användningsvillkoren för Förhandsversioner av Microsoft Azure innehåller fler juridiska villkor som gäller för Azure-funktioner som är i betaversion, förhandsversion eller på annat sätt ännu inte har släppts i allmän tillgänglighet. Information om den här specifika förhandsversionen finns i Azure HDInsight på AKS-förhandsversionsinformation. Om du vill ha frågor eller funktionsförslag skickar du en begäran på AskHDInsight med informationen och följer oss för fler uppdateringar i Azure HDInsight Community.

HDInsight på AKS är en hanterad PaaS (Platform as a Service) som körs på Azure Kubernetes Service (AKS). MED HDInsight på AKS kan du distribuera populära arbetsbelastningar för analys med öppen källkod som Apache Spark™, Apache Flink®️ och Trino utan att behöva hantera och övervaka containrar.

Som standard tillåter HDInsight på AKS-kluster utgående nätverksanslutningar från kluster till alla mål, om målet kan nås från nodens nätverksgränssnitt. Det innebär att klusterresurser kan komma åt offentliga eller privata IP-adresser, domännamn eller URL:er på Internet eller i ditt virtuella nätverk.

Men i vissa scenarier kanske du vill styra eller begränsa utgående trafik från klustret av säkerhetsskäl.

Du kanske till exempel vill:

  • Förhindra att kluster får åtkomst till skadliga eller oönskade tjänster.

  • Framtvinga nätverksprinciper eller brandväggsregler för utgående trafik.

  • Övervaka eller granska utgående trafik från klustret för felsökning eller efterlevnad.

Metoder och verktyg för att styra utgående trafik

Du har olika alternativ och verktyg för att hantera hur utgående trafik flödar från HDInsight i AKS-kluster. Du kan konfigurera några av dessa på klusterpoolsnivå och andra på klusternivå.

  • Utgående med lastbalanserare. När du distribuerar en klusterpool med den här utgående sökvägen etableras och tilldelas en offentlig IP-adress till lastbalanserarens resurs. Ett anpassat virtuellt nätverk (VNET) krävs inte. Det rekommenderas dock starkt. Du kan använda Azure Firewall eller nätverkssäkerhetsgrupper (NSG:er) i det anpassade virtuella nätverket för att hantera trafiken som lämnar nätverket.

  • Utgående med användardefinierad routning. När du distribuerar en klusterpool med den här utgående sökvägen kan användaren hantera utgående trafik på undernätsnivå med hjälp av Azure Firewall/NAT Gateway och anpassade routningstabeller. Det här alternativet är bara tillgängligt när du använder ett anpassat VNET.

  • Aktivera privat AKS. När du aktiverar privat AKS i klusterpoolen tilldelas AKS API-servern en intern IP-adress och kommer inte att vara tillgänglig offentligt. Nätverkstrafiken mellan AKS API-servern och HDInsight på AKS-nodpooler (kluster) finns kvar i det privata nätverket.

  • Privat ingresskluster. När du distribuerar ett kluster med det privata ingressalternativet aktiverat skapas ingen offentlig IP-adress och klustret kommer endast att vara tillgängligt från klienter inom samma virtuella nätverk. Du måste ange din egen NAT-lösning, till exempel en NAT-gateway eller en NAT som tillhandahålls av brandväggen, för att ansluta till utgående, offentlig HDInsight på AKS-beroenden.

I följande avsnitt beskriver vi varje metod i detalj.

Utgående med lastbalanserare

Lastbalanseraren används för utgående trafik via en HDInsight på AKS-tilldelad offentlig IP-adress. När du konfigurerar den utgående typen av lastbalanserare i klusterpoolen kan du förvänta dig utgående från lastbalanseraren som skapats av HDInsight på AKS.

Du kan konfigurera utgående med lastbalanserarens konfiguration med hjälp av Azure-portalen.

Skärmbild som visar nätverksinställningen för klusterpoolen.

När du har valt den här konfigurationen slutför HDInsight på AKS automatiskt skapandet av en offentlig IP-adress som har etablerats för klusterutgående och tilldelar till lastbalanserarens resurs.

En offentlig IP-adress som skapats av HDInsight på AKS och är en AKS-hanterad resurs, vilket innebär att AKS hanterar livscykeln för den offentliga IP-adressen och inte kräver användaråtgärder direkt på den offentliga IP-resursen.

När kluster skapas skapas även vissa ingress offentliga IP-adresser.

Om du vill tillåta att begäranden skickas till klustret måste du tillåtalistning av trafiken. Du kan också konfigurera vissa regler i NSG för att utföra en grov kontroll.

Utgående med användardefinierad routning

Kommentar

Utgående userDefinedRouting typ är ett avancerat nätverksscenario och kräver korrekt nätverkskonfiguration innan du börjar.
Det går inte att ändra utgående typ när klusterpoolen har skapats.

Om userDefinedRouting har angetts konfigurerar HDInsight på AKS inte automatiskt utgående sökvägar. Utgående konfiguration måste utföras av användaren.

Skärmbild som visar användardefinierad routning.

Du måste distribuera HDInsight på AKS-klustret till ett befintligt virtuellt nätverk med ett undernät som tidigare har konfigurerats, och du måste upprätta explicit utgående.

Den här arkitekturen kräver att utgående trafik uttryckligen skickas till en installation som en brandvägg, gateway eller proxy, så att en offentlig IP-adress som tilldelats standardlastbalanseraren eller installationen kan hantera NAT (Network Address Translation).

HDInsight på AKS konfigurerar inte utgående offentlig IP-adress eller utgående regler, till skillnad från kluster av typen Utgående med lastbalanserare enligt beskrivningen i avsnittet ovan. Din UDR är den enda källan för utgående trafik.

För inkommande trafik måste du välja baserat på kraven för att välja ett privat kluster (för att skydda trafik på AKS-kontrollplanet/API-servern) och välja det privata ingressalternativet som är tillgängligt för var och en av klusterformerna för att använda offentlig eller intern lastbalanserarebaserad trafik.

Skapa klusterpool för utgående trafik med userDefinedRouting

När du använder HDInsight i AKS-klusterpooler och väljer userDefinedRouting (UDR) som utgående sökväg finns det ingen standardbaserad lastbalanserare etablerad. Du måste konfigurera brandväggsreglerna för utgående resurser innan userDefinedRouting du kan fungera.

Viktigt!

UDR-utgående sökväg behöver en väg för 0.0.0.0/0 och ett nästa hoppmål för brandväggen eller NVA i routningstabellen. Routningstabellen har redan standardvärdet 0.0.0.0/0 till Internet. Du kan inte få utgående Internetanslutning genom att bara lägga till den här vägen eftersom Azure behöver en offentlig IP-adress för SNAT. AKS kontrollerar att du inte skapar en 0.0.0.0/0-väg som pekar på Internet, utan till en gateway, NVA osv. När du använder UDR skapas endast en offentlig IP-adress för lastbalanserare för inkommande begäranden om du konfigurerar en tjänst av typen loadbalancer. HDInsight på AKS skapar aldrig en offentlig IP-adress för utgående begäranden när du använder en UDR-utgående sökväg.

Skärmbild som visar aktiverat privat AKS.

Med följande steg kommer du att förstå hur du låser utgående trafik från din HDInsight på AKS-tjänsten till azure-resurser i serverdelen eller andra nätverksresurser med Azure Firewall. Den här konfigurationen hjälper till att förhindra dataexfiltrering eller risken för skadlig programimplantation.

Med Azure Firewall kan du styra utgående trafik på en mycket mer detaljerad nivå och filtrera trafik baserat på hotinformation i realtid från Microsoft Cyber Security. Du kan centralt skapa, framtvinga och logga principer för tillämpning och nätverksanslutning över prenumerationer och virtuella nätverk.

Följande är ett exempel på hur du konfigurerar brandväggsregler och testar dina utgående anslutningar

Här är ett exempel på hur du konfigurerar brandväggsregler och kontrollerar dina utgående anslutningar.

  1. Skapa det brandväggsundernät som krävs

    För att distribuera en brandvägg till det integrerade virtuella nätverket behöver du ett undernät med namnet AzureFirewallSubnet eller Namn som du väljer.

    1. I Azure-portalen navigerar du till det virtuella nätverket som är integrerat med din app.

    2. I det vänstra navigeringsfältet väljer du Undernät > + undernät.

    3. I Namn skriver du AzureFirewallSubnet.

    4. Undernätsadressintervall, acceptera standardvärdet eller ange ett intervall som är minst /26 i storlek.

    5. Välj Spara.

  2. Distribuera brandväggen och hämta dess IP-adress

    1. I menyn i Azure-portalen eller på sidan Start väljer du Skapa en resurs.

    2. Skriv brandväggen i sökrutan och tryck på Retur.

    3. Välj Brandvägg och välj sedan Skapa.

    4. På sidan Skapa en brandvägg konfigurerar du brandväggen enligt följande tabell:

      Inställning Värde
      Resursgrupp Samma resursgrupp som det integrerade virtuella nätverket.
      Name Valfritt namn
      Region Samma region som det integrerade virtuella nätverket.
      Brandväggsprincip Skapa en genom att välja Lägg till ny.
      Virtuellt nätverk Välj det integrerade virtuella nätverket.
      Offentlig IP-adress Välj en befintlig adress eller skapa en genom att välja Lägg till ny.

      Skärmbild som visar fliken Skapa en grundläggande brandvägg.

    5. Klicka på Granska och skapa.

    6. Välj Skapa igen. Det tar några minuter att distribuera den här processen.

    7. När distributionen är klar går du till resursgruppen och väljer brandväggen.

    8. På brandväggens översiktssida kopierar du den privata IP-adressen. Den privata IP-adressen används som nästa hoppadress i routningsregeln för det virtuella nätverket.

      Skärmbild som visar hur du konfigurerar brandväggen.

  3. Dirigera all trafik till brandväggen

    När du skapar ett virtuellt nätverk skapar Azure automatiskt en standardrutttabell för vart och ett av dess undernät och lägger till systemets standardvägar i tabellen. I det här steget skapar du en användardefinierad routningstabell som dirigerar all trafik till brandväggen och sedan associerar den med App Service-undernätet i det integrerade virtuella nätverket.

    1. På Menyn i Azure-portalen väljer du Alla tjänster eller söker efter och väljer Alla tjänster på valfri sida.

    2. Under Nätverk väljer du Routningstabeller.

    3. Markera Lägga till.

    4. Konfigurera routningstabellen som i följande exempel:

      Skärmbild som visar hur du skapar routningstabell.

      Se till att du väljer samma region som brandväggen som du skapade.

    5. Välj Granska + skapa.

    6. Välj Skapa.

    7. När distributionen är klar väljer du Gå till resurs.

    8. I det vänstra navigeringsfältet väljer du Vägar > Lägg till.

    9. Konfigurera den nya vägen enligt följande tabell:

      Inställning Värde
      Måltyp IP-adresser
      Mål-IP-adresser/CIDR-intervall 0.0.0.0/0
      Nästa hopptyp Virtuell installation
      Nexthop-adress Den privata IP-adressen för brandväggen som du kopierade
    10. I det vänstra navigeringsfältet väljer du Associera undernät>.

    11. I Virtuellt nätverk väljer du ditt integrerade virtuella nätverk.

    12. I Undernät väljer du det HDInsight på AKS-undernät som du vill använda.

      Skärmbild som visar hur du associerar undernät.

    13. Välj OK.

  4. Konfigurera brandväggsprinciper

    Utgående trafik från HDInsight på AKS-undernätet dirigeras nu via det integrerade virtuella nätverket till brandväggen. Om du vill styra utgående trafik lägger du till en programregel i brandväggsprincipen.

    1. Gå till brandväggens översiktssida och välj dess brandväggsprincip.

    2. Lägg till nätverks- och programregler i det vänstra navigeringsfönstret på sidan brandväggsprincip. Välj till exempel Nätverksregler > Lägg till en regelsamling.

    3. I Regler lägger du till en nätverksregel med undernätet som källadress och anger ett FQDN-mål. På samma sätt lägger du till programreglerna.

      1. Du måste lägga till de regler för utgående trafik som anges här. Se det här dokumentet för att lägga till program- och nätverksregler för att tillåta att trafiken för klustret fungerar. (AKS ApiServer måste läggas till när klusterpoolen har skapats eftersom du bara kan hämta AKS ApiServer när du har skapat klusterpoolen).
      2. Du kan också lägga till privata slutpunkter för alla beroende resurser i samma undernät för att klustret ska få åtkomst till dem (till exempel – lagring).
    4. Markera Lägga till.

  5. Kontrollera om offentlig IP-adress har skapats

Med brandväggsreglerna angivna kan du välja undernätet när klusterpoolen skapas.

Skärmbild som visar hur du verifierar IP-adressen.

När klusterpoolen har skapats kan du i MC-gruppen se att ingen offentlig IP-adress har skapats.

Skärmbild som visar nätverkslistan.

Viktigt!

Innan du skapar klustret i klusterpoolens konfiguration med Outbound with userDefinedRouting utgående sökväg måste du ge AKS-klustret – som matchar klusterpoolen – Network Contributor rollen för dina nätverksresurser som används för att definiera routningen, till exempel Virtuellt nätverk, Routningstabell och NSG (om det används). Läs mer om hur du tilldelar rollen här

Kommentar

När du distribuerar en klusterpool med UDR-utgående sökväg och ett privat ingresskluster skapar HDInsight på AKS automatiskt en privat DNS-zon och mappar posterna för att matcha det fullständiga domännamnet för åtkomst till klustret.

Skapa klusterpool med privat AKS

Med privat AKS har kontrollplanet eller API-servern interna IP-adresser som definieras i dokumentet RFC1918 – Adressallokering för privat Internet. Med det här alternativet för privat AKS kan du se till att nätverkstrafiken mellan API-servern och HDInsight i AKS-arbetsbelastningskluster endast finns kvar i det privata nätverket.

Skärmbild som visar aktiverade privata AKS.

När du etablerar ett privat AKS-kluster skapar AKS som standard ett privat FQDN med en privat DNS-zon och ytterligare ett offentligt FQDN med motsvarande A-post i Azures offentliga DNS. Agentnoderna fortsätter att använda posten i den privata DNS-zonen för att matcha den privata IP-adressen för den privata slutpunkten för kommunikation till API-servern.

Eftersom HDInsight på AKS automatiskt infogar posten i den privata DNS-zonen i DEN HANTERADE GRUPPEN SOM skapats av HDInsight i AKS, för privat ingress.

Kluster med privat ingress

När du skapar ett kluster med HDInsight på AKS har det ett offentligt FQDN och EN IP-adress som vem som helst kan komma åt. Med den privata ingressfunktionen kan du se till att endast ditt privata nätverk kan skicka och ta emot data mellan klienten och HDInsight i AKS-klustret.

Skärmbild som visar fliken Skapa kluster grundläggande.

Kommentar

Med den här funktionen skapar HDInsight på AKS automatiskt A-poster i den privata DNS-zonen för ingress.

Den här funktionen förhindrar offentlig Internetåtkomst till klustret. Klustret hämtar en intern lastbalanserare och en privat IP-adress. HDInsight på AKS använder den privata DNS-zon som klusterpoolen skapade för att ansluta klustrets virtuella nätverk och göra namnmatchning.

Varje privat kluster innehåller två FQDN: offentligt FQDN och privat FQDN.

Offentligt FQDN: {clusterName}.{clusterPoolName}.{subscriptionId}.{region}.hdinsightaks.net

Det offentliga FQDN:t kan bara matchas till ett CNAME med underdomän, därför måste det användas med rätt för Private DNS zone setting att se till att FQDN äntligen kan lösas för att korrigera den privata IP-adressen.

Den Privat DNS zonen ska kunna matcha privat FQDN till en IP-adress (privatelink.{clusterPoolName}.{subscriptionId}).

Kommentar

HDInsight på AKS skapar en privat DNS-zon i klusterpoolen, det virtuella nätverket. Om klientprogrammen finns i samma virtuella nätverk behöver du inte konfigurera den privata DNS-zonen igen. Om du använder ett klientprogram i ett annat virtuellt nätverk måste du använda virutal nätverkspeering och binda till privat DNS-zon i klusterpoolens virtuella nätverk eller använda privata slutpunkter i det virutala nätverket och privata DNS-zoner för att lägga till A-posten i den privata slutpunktens privata IP-adress.

Privat FQDN: {clusterName}.privatelink.{clusterPoolName}.{subscriptionId}.{region}.hdinsightaks.net

Det privata fullständiga domännamnet tilldelas till kluster med endast den privata ingressen aktiverad. Det är en A-POST i den privata DNS-zonen som matchar klustrets privata IP-adress.

Referens