Kapuőr minta

Alkalmazások és szolgáltatások védelme dedikált összetevő használatával az ügyfelek és az alkalmazás vagy szolgáltatás közötti kérelmek közvetítéséhez. A közvetítő ellenőrzi és megtisztítja a kéréseket, és további biztonsági réteget biztosíthat, és korlátozhatja a rendszer támadási felületét.

Kontextus és probléma

Számos felhőszolgáltatás olyan végpontokat tesz elérhetővé, amelyek lehetővé teszik, hogy az ügyfélalkalmazások az interneten vagy egy másik nem megbízható hálózaton keresztül hívják meg az API-kat. Az API-kat megvalósító kód számos feladatot aktivál vagy hajt végre, beleértve, de nem kizárólagosan a hitelesítést, az engedélyezést, a paraméterérvényesítést és a kérések feldolgozását. Az API-kód valószínűleg hozzáfér a tárolóhoz és más szolgáltatásokhoz az ügyfél nevében.

Ha egy rosszindulatú felhasználó feltöri a rendszert, és hozzáférést szerez az alkalmazás üzemeltetési környezetéhez, biztonsági mechanizmusai, valamint az adatokhoz és más szolgáltatásokhoz való hozzáférése nyilvánosságra kerül. Ennek eredményeképpen a rosszindulatú felhasználó korlátlan hozzáférést kaphat a hitelesítő adatokhoz, a tárkulcsokhoz, a bizalmas információkhoz és más szolgáltatásokhoz.

Solution

A probléma egyik megoldása az, hogy leválasztja a nyilvános végpontokat megvalósító kódot a kéréseket feldolgozó és a tárolóhoz hozzáférő kódról. A kód leválasztása egy olyan homlokzati réteg használatával, amely interakcióba lép az ügyfelekkel, és a jóváhagyott kéréseket egy belső végponton, üzenetsoron vagy közvetítőn keresztül irányítja át az üzleti műveletet kezelő számítási feladatok összetevőihez. A diagram magas szintű áttekintést nyújt erről a mintáról.

A Gatekeeper-minta magas szintű áttekintését bemutató ábra.

Használhatja a Gatekeeper-mintát a tárolás védelmére, vagy átfogóbb homlokzatként is használhatja az alkalmazás összes funkciójának védelmére. Fontos tényezők a következők:

  • Ellenőrzött ellenőrzés: A kapuőr ellenőrzi az összes kérést, és elutasítja azokat a kéréseket, amelyek nem felelnek meg az érvényesítési követelményeknek.

  • Korlátozott kockázat és kitettség: A kockázatok és az expozíció csökken, mert a kapuőr nem fér hozzá a megbízható gazdagép által a tároláshoz és a szolgáltatásokhoz való hozzáféréshez használt hitelesítő adatokhoz vagy kulcsokhoz. Ha a kapuőr megsérül, a támadók nem férnek hozzá ezekhez a hitelesítő adatokhoz vagy kulcsokhoz.

  • Megfelelő biztonság: A kapuőr korlátozott jogosultsági módban fut, míg a többi alkalmazás a tárterülethez és szolgáltatásokhoz való hozzáféréshez szükséges teljes megbízhatósági módban fut. Ha a forgalomirányító biztonsága sérül, nem tud közvetlenül hozzáférni az alkalmazás szolgáltatásaihoz vagy adataihoz.

Egy tipikus felépítésű hálózatban ez a minta gyakorlatilag tűzfalként funkcionál. A hagyományos tűzfaltól eltérően a kapuőr részletesen megvizsgálhatja a kéréseket, és alkalmazásalapú döntést hozhat arról, hogy a kérést átadja-e a szükséges feladatokat végző megbízható gazdagépnek. Ez a döntés általában megköveteli, hogy a kapuőr ellenőrizze és megtisztítsa a kérés tartalmát, mielőtt átadja azt a megbízható gazdagépnek. A kapuőrök engedélyezhetik a kérést, váratlan vagy érvénytelen hasznos adattartalmakat kereshetnek, sebességkorlátozást hajthatnak végre, és különféle egyéb ellenőrzéseket hajthatnak végre.

Problémák és szempontok

Vegye figyelembe a következő szempontokat, amikor úgy dönt, hogy hogyan valósítja meg ezt a mintát:

  • Győződjön meg arról, hogy a megbízható gazdagépek csak a belső vagy védett végpontokat teszik elérhetővé, amelyeket csak a kapuőr használ. Fontos, hogy a megbízható gazdagépek ne tegyenek elérhetővé külső végpontokat vagy csatolókat.

  • A kapuőrnek korlátozott jogosultsági módban kell futnia. A gyakorlatban a kapuőrt és a megbízható háttérrendszert külön számítási határokon kell üzemeltetni, és a háttérvégpontokat privátan tartani.

  • A kapuőr nem végezheti el az alkalmazással vagy szolgáltatásokkal kapcsolatos feldolgozást, és nem férhet hozzá az adatokhoz. Feladata kizárólag a kérések validálása és szűrése. Előfordulhat, hogy a megbízható gazdagépeknek további kérésellenőrzést kell végrehajtaniuk, de a kapuőrnek végre kell hajtania az alapvető ellenőrzést.

  • Ha lehetséges, használjon biztonságos kommunikációs csatornát, például HTTPS, Secure Sockets Layer (SSL) vagy Transport Layer Security (TLS) protokollt a kapuőr és a megbízható gazdagépek vagy feladatok között. Egyes üzemeltetési környezetek nem támogatják a HTTPS használatát a belső végpontokon.

  • A Gatekeeper-minta implementálásához szükséges extra réteg hozzáadása valószínűleg befolyásolja a teljesítményt a szükséges további feldolgozás és hálózati kommunikáció miatt.

  • A gatekeeper egyetlen hibapont (SPoF) lehet. A hibák hatásának minimalizálása érdekében fontolja meg a redundáns példányok üzembe helyezését és az automatikus skálázási mechanizmus használatát a kapacitás biztosítása és a rendelkezésre állás fenntartása érdekében.

Mikor érdemes ezt a mintát használni?

Használja ezt a mintát a következő esetekben:

  • Bizalmas információkat kezel.

  • Olyan szolgáltatásokat tehet közzé, amelyek erős védelmet igényelnek a rosszindulatú forgalom ellen.

  • Kritikus fontosságú műveleteket hajt végre, amelyek nem tolerálják a háttérszolgáltatások közvetlen kitettségét.

  • Az alapvető üzleti feldolgozástól el kell különíteni az ellenőrzésre és a fertőtlenítésre vonatkozó kéréseket.

Ez a minta nem feltétlenül megfelelő, ha:

  • A biztonsági és érvényesítési követelményeket a háttérszolgáltatás beépített platformvezérlőivel, dedikált kapuőrszint hozzáadása nélkül is kielégítheti.

  • A hozzáadott hálózati ugrások és az ellenőrzési késések sértik a teljes körű késésre vonatkozó szigorú követelményeket.

Munkaterhelés tervezése

Értékelje ki, hogyan használhatja a Gatekeeper-mintát a számítási feladatok kialakításában a Azure Well-Architected keretrendszer pilléreiben szereplő célok és alapelvek kezelésére. Az alábbi táblázat útmutatást nyújt arról, hogy ez a minta hogyan támogatja az egyes pillérek céljait.

Alappillér Hogyan támogatja ez a minta a pillércélokat?
A biztonsági tervezési döntések segítenek biztosítani a számítási feladatok adatainak és rendszereinek titkosságát, integritását és rendelkezésre állását. A kérésfolyamat egyik kapusa segít központosítani a biztonsági funkciókat, például a webalkalmazási tűzfalakat, a DDoS-védelmet, a robotészlelést, a kérések kezelését, a hitelesítés kezdeményezését és az engedélyezési ellenőrzéseket.

- SE:06 Hálózati vezérlők
- SE:10 Monitorozás és fenyegetésészlelés
A teljesítményhatékonyság a skálázás, az adatok és a kód optimalizálásával segíti a számítási feladatok hatékony kielégítését . Ezt a mintát használhatja arra, hogy a korlátozást az átjáró szintjén valósítsa meg, ahelyett hogy a csomópont szintjén végezne sebességkorlátozási ellenőrzéseket. A sebességállapot-koordináció az összes csomópont között eredendően nem teljesít.

- PE:03 Szolgáltatások kiválasztása

Ha ez a minta kompromisszumokat vezet be egy pilléren belül, vegye figyelembe őket a többi pillér céljaival szemben.

Example

A Gatekeeper-minta általában egy rétegzett kérelemútvonalat valósít meg, ahol minden rétegnek meghatározott felelőssége és korlátozott megbízhatósági hatóköre van.

A rétegzett Gatekeeper-mintát ábrázoló diagram.

Ennek az architektúrának a Visio-fájlját töltsd le.

Ebben a felépítésben a Azure Application Gateway Azure Web Application Firewall-lal a külső védelmi vonal. Az internet felé irányuló forgalmat vizsgálja, és biztonsági vezérlőket alkalmaz, mielőtt a forgalom eléri az API-szintet. Azure API Management a belső kapuőr. API-specifikus vezérlőket alkalmaz, és csak a jóváhagyott forgalmat továbbítja a privát háttérrendszerekre.

A Azure Web Application Firewall például észlelheti és letilthatja az SQL-injektálási és helyek közötti szkriptelési mintákat, protokoll- és kérelemméretszabályokat kényszeríthet ki, és robot- és IP-alapú szűrést alkalmazhat, mielőtt a kérések elérnék az API Managementet vagy a privát háttérrendszereket.

Ha az API Managementet a belső rétegben használja, az szabályzatokat alkalmaz az átjárófolyamat bejövő kérelmeire és kimenő válaszaira. Az API Management kérések és válaszok folyamatáról további információt az API Management szabályzatai című témakörben talál. Az olyan szabályzatbeállításokról, mint a JSON Web Token (JWT) érvényesítése, a sebességkorlátozás, a fejlécátalakítás és a válaszalakítás, tekintse meg az API Management szabályzatreferenciáját.

Ezen az útvonalon következetesen használja a Azure-erőforrások felügyelt identitásait a szolgáltatások közötti hitelesítéshez. Az API Management például a felügyelt identitással történő hitelesítési szabályzat használatával, titkos adatok tárolása nélkül is beszerezhet Microsoft Entra-tokeneket a háttérrendszeri hívásokhoz.

A háttér privát marad. A háttérrendszer lehet például egy Azure App Service alkalmazás, amely egy private-végpontot használ, így az alkalmazás privát módon is elérhető.

Tárolóalapú munkaterhelések esetén egy alternatív megoldás az API Management és az App Service kombinációjának belső útvonalát ingressalapú számítási megoldással helyettesítheti:

Ezekben az alternatívákban a bejövő forgalom állomás vagy útvonal szerint irányítható, leállítja a TLS-t, és csak belső szolgáltatásokat tesz elérhetővé. Bizonyos képességek, például a kérelemkorlátok és az engedélyezési vagy elutasítási szabályok a kiválasztott bejövő forgalom implementációjától függenek. Minden esetben tartsa fenn a kapuőr funkció határait: az ellenőrzést és a szabályzatok érvényesítését a belépési ponton végezze, és a háttérszolgáltatások csak ezen a kapuőrön keresztül legyenek elérhetők.

Az útvonal minden rétege olyan naplókat és metrikákat generál, amelyeket központilag kell gyűjtenie. Az Azure Web Application Firewall diagnosztikai naplói kérésenként rögzítik az egyező és letiltott szabályokat. Az API Management átjárónaplókat bocsát ki, amelyek rögzítik a kérések időtartamát, a válaszkódokat és a szabályzatok eredményeit. A háttérszolgáltatások alkalmazásszintű telemetriát bocsátanak ki. Gyűjtse össze ezeket a naplókat és metrikákat Azure Monitor és irányítsa őket egy Log Analytics munkaterületre egységes lekérdezéshez. Szabványosítsa a teljes körű kérelmek korrelációját úgy, hogy létrehoz vagy továbbít egy korrelációs azonosítót a peremhálózaton, majd propagálja azt AZ API Management és a háttérszolgáltatások segítségével (például kérelemfejléceken és elosztott nyomkövetési környezeteken keresztül), hogy egyetlen tranzakció nyomon követhető maradjon az összes rétegben. A Microsoft Defender for Cloud használatával a kapuőr-összetevők biztonsági ajánlásait jelenítheti meg. Konfiguráljon riasztásokat az Azure Web Application Firewall rendellenes blokkolási arányaira vagy az API Management hibáinak hirtelen megugrására, hogy észlelhesse a fenyegetéseket, mielőtt azok elérnék a privát háttérrendszereket.

Következő lépések

A minta megvalósításakor az alábbi útmutatás lehet releváns:

A következő felhőtervezési mintákat gyakran használják a Gatekeeper-mintával együtt: