Az Azure Application Gateway működése

Befejeződött

Az Azure Application Gateway számos összetevővel rendelkezik, amelyek kombinálják a kérelmek biztonságos irányítását és terheléselosztását a webkiszolgálók készletében. Az Application Gateway a következő összetevőket tartalmazza:

Azure Application Gateway-összetevőket bemutató diagram.

  • előtérbeli IP-cím: Az ügyfélkérések egy előtérbeli IP-címen keresztül érkeznek. Az Application Gatewayt úgy konfigurálhatja, hogy nyilvános IP-címmel, magánhálózati IP-címmel vagy mindkettővel rendelkezzen. Az Application Gateway nem rendelkezhet egynél több nyilvános IP-címmel és egy privát IP-címmel.
  • figyelők: Az Application Gateway egy vagy több figyelőt használ a bejövő kérések fogadásához. A figyelő olyan forgalmat fogad, amely egy megadott protokoll, port, gazdagép és IP-cím kombinációjára érkezik. Minden hallgató az Ön által megadott útválasztási szabályok szerint irányítja a kéréseket egy háttéri kiszolgálói készlethez. A hallgató lehet alapszintű vagy többhelyszínes. Az alapszintű figyelő csak az URL-cím elérési útja alapján irányít át egy kérelmet. A többhelyes figyelő az URL gazdagépnév elemével is irányíthatja a kéréseket. A figyelők az alkalmazásod és az Application Gateway felhasználója közötti biztonságos kapcsolat érdekében TLS-/SSL-tanúsítványokat is kezelnek.
  • Útválasztási szabályok: Egy útválasztási szabály köti össze a hallgatót a háttérkészletekkel. A szabály azt határozza meg, hogyan értelmezheti a kérés URL-címében található állomásnevet és elérési utat, és hogyan irányíthatja a kérést a megfelelő háttérkészlethez. Az útválasztási szabályhoz http-beállítások is tartoznak. Ezek a HTTP-beállítások jelzik, hogy a forgalom titkosítva van-e az Application Gateway és a háttérkiszolgálók között. Egyéb konfigurációs információk többek között a Protokoll, a munkamenet-ragadósság, a kapcsolatelvezetés, a kérések időtúllépési időtartama és az állapot-ellenőrzések.

Terheléselosztás az Application Gatewayben

Az Application Gateway körkörös elosztási mechanizmussal automatikusan terheléselosztást végez az egyes háttérkészletek kiszolgálóinak küldött kéréseken. A terheléselosztás az Open Systems Interconnection (OSI) 7. rétegbeli útválasztásával működik, amelyet az Application Gateway-útválasztás valósít meg. Ez azt jelenti, hogy a terheléselosztás az Application Gateway-szabályok által használt útválasztási paraméterek – gazdagépnevek és útvonalak – alapján történik. Ehhez képest a többi terheléselosztó, például az Azure Load Balancer, az OSI 4. rétegében működik, és a kérés céljának IP-címe alapján osztja el a forgalmat.

Konfigurálhatja a munkamenet ragadósságát, ha gondoskodnia kell arról, hogy az ugyanabban a munkamenetben lévő ügyfél minden kérése ugyanarra a kiszolgálóra legyen irányítva egy háttérkészletben.

Webalkalmazási tűzfal

A webalkalmazási tűzfal (WAF) egy választható összetevő, amely kezeli a bejövő kéréseket, mielőtt elérnék a figyelőt. A webalkalmazás tűzfala az Open Web Application Security Project (OWASP) alapján ellenőrzi az egyes kéréseket, és számos gyakori fenyegetést keres. Gyakori fenyegetések a következők: SQL-injektálás, helyek közötti szkriptelés, parancsinjektálás, HTTP-kérések csempészése, HTTP-válasz felosztása, távoli fájlbefoglalás, robotok, bejárók és szkennerek, valamint HTTP-protokollok megsértései és rendellenességei.

Az OWASP általános szabályokat határoz meg a támadások észleléséhez. Ezeket a szabályokat alapszabálykészletnek (CRS) nevezzük. A szabálykészletek folyamatos felülvizsgálat alatt állnak, ahogy a támadások kifinomultan fejlődnek. A WAF négy szabálykészletet támogat: CRS 3.2, 3.1, 3.0 és 2.2.9. A CRS 3.1 az alapértelmezett. Szükség esetén dönthet úgy, hogy csak bizonyos szabályokat jelöl ki egy szabálykészletben, bizonyos fenyegetéseket célozva. Emellett testre is szabhatja a tűzfalat, így megadhatja, hogy a kérelem mely elemeit vizsgálja meg, és korlátozza az üzenetek méretét annak érdekében, hogy a hatalmas feltöltések ne terhelje túl a kiszolgálókat.

Háttérkészletek

A háttérkészlet egy webkiszolgálók gyűjteménye, amelyek állhatnak: rögzített virtuális gépekből, virtuális gépek méretezési csoportjaiból, Azure App Services által üzemeltetett alkalmazásokból vagy helyszíni kiszolgálók gyűjteményéből.

Minden háttérkiszolgáló készlethez tartozik egy terheléselosztó, amely elosztja a terhelést a készleten belül. A készlet konfigurálásakor meg kell adnia az egyes webkiszolgálók IP-címét vagy nevét. A háttérkészlet összes kiszolgálóját ugyanúgy kell konfigurálni, beleértve a biztonsági beállításokat is.

TLS/SSL használata esetén a háttérkészlet http-beállítással rendelkezik, amely a háttérkiszolgálók hitelesítéséhez használt tanúsítványra hivatkozik. Az átjáró ezt a tanúsítványt használva újra titkosítja a forgalmat, mielőtt elküldené azt a háttérkészlet egyik kiszolgálójára.

Ha az Azure App Service-t használja a háttéralkalmazás üzemeltetéséhez, nem kell tanúsítványokat telepítenie az Application Gatewayben a háttérkészlethez való csatlakozáshoz. Minden kommunikáció automatikusan titkosítva van. Az Application Gateway megbízik a kiszolgálókban, mert az Azure felügyeli őket.

Az Application Gateway egy szabály használatával határozza meg, hogyan irányíthatja a bejövő portján érkező üzeneteket a háttérkészlet kiszolgálóira. Ha a kiszolgálók TLS/SSL-t használnak, a szabályt úgy kell konfigurálnia, hogy jelezze:

  • Hogy a kiszolgálók a HTTPS protokollon keresztüli forgalmat várják.
  • Melyik tanúsítványt használja a forgalom titkosításához és a kiszolgálóhoz való kapcsolat hitelesítéséhez.

Application Gateway-útválasztás

Amikor az átjáró átirányít egy ügyfélkérést egy webkiszolgálóra a háttérkészletben, az átjáróhoz konfigurált szabályok készletével határozza meg, hogy hová menjen a kérés. Az ügyfélkérelmek forgalmának útválasztásának két elsődleges módja van: az útvonalalapú útválasztás és a többhelyes útválasztás.

Útvonalalapú útválasztás

Az útvonalalapú útválasztás különböző URL-címekkel rendelkező kéréseket küld a háttérkiszolgálók különböző készleteibe. A kéréseket például a /video/* elérési úttal irányíthatja egy háttérkészletbe, amely a videostreamelés kezelésére optimalizált kiszolgálókat tartalmaz, és a /images/* kéréseket egy képlekérést kezelő kiszolgálókészlethez irányíthatja.

Diagram, amely az Útvonalalapú útválasztást ábrázolja az Azure Application Gatewayben.

Több helyszínes útválasztás

A többhelyes forgalomirányítás több webalkalmazást konfigurál ugyanazon az Application Gateway példányon. Többhelyes konfiguráció esetén több tartománynévrendszernevet (CNAME) regisztrál az application gateway IP-címéhez, és megadja az egyes helyek nevét. Az Application Gateway külön figyelőkkel várja meg az egyes webhelyekre vonatkozó kéréseket. Minden figyelő egy másik szabálynak továbbítja a kérést, amely átirányíthatja a kéréseket egy másik háttérkészlet kiszolgálóira. Például az http://contoso.com összes kérését átirányíthatja az egyik háttérkészlet kiszolgálóira, a http://fabrikam.com pedig egy másik háttérkészletbe. Az alábbi ábrán ez a konfiguráció látható:

Diagram, amely az Azure Application Gateway több helyszínes útválasztását ábrázolja.

A többhelyes konfigurációk hasznosak a több-bérlős alkalmazások támogatásához, ahol minden bérlő saját virtuális gépekkel vagy más, webalkalmazást üzemeltető erőforrásokkal rendelkezik.

Az Application Gateway útválasztása az alábbi funkciókat is tartalmazza:

  • Átirányítás. Az átirányítás használható egy másik webhelyre vagy HTTP-ről HTTPS-ra.
  • HTTP-fejlécek újraírása. A HTTP-fejlécek lehetővé teszik, hogy az ügyfél és a kiszolgáló paraméteradatokat adjon át a kéréssel vagy a válaszsal.
  • Egyéni hibalapok. Az Application Gateway lehetővé teszi egyéni hibalapok létrehozását az alapértelmezett hibalapok megjelenítése helyett. Egyéni hibaoldal használatával saját arculatot és elrendezést alkalmazhat.

TLS/SSL-leállítás

Amikor leállítja a TLS/SSL-kapcsolatot az Application Gatewayen, az kiszervezi a processzorigényes TLS/SSL-leállítási számítási feladatokat a kiszolgálókról. Emellett nem kell tanúsítványokat telepítenie, és konfigurálnia kell a TLS/SSL-t a kiszolgálókon.

Ha végpontok közötti titkosításra van szüksége, az Application Gateway a forgalmat az átjárón dekódolja a titkos kulcsával, majd újból titkosítja a háttérhálózatban futó szolgáltatás nyilvános kulcsával.

A forgalom egy előtérbeli porton keresztül lép be az átjáróba. Számos portot nyithat meg, és az Application Gateway bármelyik porton fogadhat üzeneteket. A figyelő az első dolog, amellyel a forgalom találkozik, amikor egy porton keresztül lép be az átjáróba. A figyelő alkalmazás egy adott gazdagépnévre, egy adott IP-címre és egy adott portra van beállítva. A figyelő TLS/SSL-tanúsítvány használatával visszafejtheti az átjáróba érkező forgalmat. A figyelő ezután egy szabályt használ, amelyet ön definiált, hogy a bejövő kéréseket egy háttérpoolhoz irányítsa.

TLS/SSL-végződést ábrázoló diagram az Azure Application Gatewayben.

Ha a webhelyet vagy a webalkalmazást az Application Gatewayen keresztül teszi közzé, az azt is jelenti, hogy nem csatlakoztatja közvetlenül a kiszolgálókat a wehez. Csak a 80-as vagy a 443-as portot teszi ki az alkalmazás átjárón, amelyet aztán a háttérkiszolgáló-készletre továbbít. Ebben a konfigurációban a webkiszolgálók nem érhetők el közvetlenül az internetről, ami csökkenti az infrastruktúra támadási felületét.

Állapotadat-mintavételek

Az állapottesztek határozzák meg, hogy mely kiszolgálók érhetők el a terheléselosztáshoz egy háttércsoportban. Az Application Gateway egy egészségügyi ellenőrzést használ, hogy kérést küldjön egy kiszolgálónak. Amikor a kiszolgáló egy 200 és 399 közötti állapotkóddal rendelkező HTTP-választ ad vissza, a kiszolgáló kifogástalannak minősül. Ha nem konfigurál állapotmintát, az Application Gateway létrehoz egy alapértelmezett mintavételt, amely 30 másodpercig várakozik, mielőtt eldönti, hogy a kiszolgáló nem érhető el. Az állapotadat-mintavételek biztosítják, hogy a forgalom ne irányuljon nem válaszoló vagy sikertelen webes végpontra a háttérkészletben.

Automatikus skálázás

Az Application Gateway támogatja az automatikus skálázást, és a forgalmi terhelési minták módosítása alapján vertikálisan fel- vagy leskálázható. Az automatikus skálázás azt a követelményt is eltávolítja, hogy az üzembe helyezési méret vagy a példányok száma legyen kiválasztva a kiépítés során.

WebSocket és HTTP/2 forgalom

Az Application Gateway natív támogatást nyújt a WebSocket és a HTTP/2 protokollokhoz. A WebSocket és a HTTP/2 protokollok teljes kétirányú kommunikációt tesznek lehetővé egy kiszolgáló és egy ügyfél között egy hosszan futó Tcp-kapcsolaton keresztül. Az ilyen típusú kommunikáció interaktívabb a webkiszolgáló és az ügyfél között, és kétirányú is lehet anélkül, hogy a HTTP-alapú implementációkban szükség lenne a lekérdezésre. Ezek a protokollok alacsony többletterheléssel rendelkeznek (a HTTP-vel ellentétben), és ugyanazt a TCP-kapcsolatot több kérelem/válasz esetében is újra felhasználhatják, ami hatékonyabb erőforrás-kihasználtságot eredményez. Ezek a protokollok úgy vannak kialakítva, hogy a hagyományos 80-443-ból álló HTTP-portokon működjenek.