Az alkalmazások és szolgáltatások védelme dedikált gazdagéppéldány 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
A felhőszolgáltatások olyan végpontokat fednek fel, amelyek lehetővé teszik az ügyfélalkalmazások számára az API-k meghívását. Az API-k implementálásához használt 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 az ügyfél nevében fér hozzá a tárolóhoz és más szolgáltatásokhoz.
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.
Megoldás
A probléma egyik megoldása a nyilvános végpontokat megvalósító kód leválasztása a kéréseket feldolgozó és a tárterülethez hozzáférő kódtól. A leválasztást úgy érheti el, hogy egy homlokzatot vagy egy dedikált feladatot használ, amely interakcióba lép az ügyfelekkel, majd átadja a kérést – talán egy leválasztott felületen keresztül – a kérést kezelő gazdagépeknek vagy feladatoknak. Az ábra általános áttekintést nyújt erről a mintáról.
A kapuőr minta használható a tárolás védelmére, vagy átfogóbb homlokzatként is használható az alkalmazás összes funkciójának védelmére. Néhány fontosabb tényező:
- Szabályozott 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.
- Kisebb mértékű kockázat és kitettség. A forgalomirányítónak nincs hozzáférése a megbízható gazdagép által használt hitelesítő adatokhoz vagy kulcsokhoz a tároló és a szolgáltatások eléréséhez. Ha feltörik a forgalomirányítót, a támadó nem fér hozzá ezekhez a hitelesítő adatokhoz vagy kulcsokhoz.
- Megfelelő védelem. A forgalomirányító korlátozott jogosultságú módban fut, az alkalmazás többi része viszont teljesen megbízható módban fut, hogy hozzáférhessen a tárolóhoz és a szolgáltatásokhoz. 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. Lehetővé teszi a kapuőr számára, hogy megvizsgálja a kéréseket, és döntést hozzon arról, hogy a kérést átadja-e a szükséges feladatokat végző megbízható gazdagépnek. Ehhez a forgalomirányító először ellenőrzi és vírusmentesíti a kéréseket, majd továbbítja őket a megbízható gazdagépnek.
Problémák és megfontolandó szempontok
A minta megvalósítása során az alábbi pontokat vegye figyelembe:
- Győződjön meg arról, hogy a megbízható gazdagépek csak belső vagy védett végpontokat fednek fel, 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, ami általában megköveteli a kapuőr és a megbízható gazdagép külön üzemeltetett szolgáltatásokban vagy virtuális gépeken való futtatását.
- A kapuőr nem végezhet semmilyen, az alkalmazással vagy szolgáltatásokkal kapcsolatos feldolgozást, és nem férhet hozzá semmilyen adathoz. A forgalomirányító feladata kizárólag a kérések ellenőrzése és vírusmentesítése. Előfordulhat, hogy a megbízható gazdagépeknek további kérésérvényesíté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 (HTTPS, SSL vagy TLS) 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 további réteg hozzáadása a kapuőr-minta implementálásához valószínűleg hatással lesz a teljesítményre a szükséges további feldolgozás és hálózati kommunikáció miatt.
- A forgalomirányító-példány kritikus meghibásodási pont lehet a rendszeren belül. A hibák hatásának minimalizálása érdekében fontolja meg a redundáns példányok üzembe helyezését és egy automatikus skálázási mechanizmus használatát a rendelkezésre állás fenntartásához szükséges kapacitás biztosítása érdekében.
Mikor érdemes ezt a mintát használni?
Ez a minta olyan alkalmazások esetében hasznos, amelyek:
- bizalmas információk kezelése
- magas szintű védelmet igénylő szolgáltatásokat tehet elérhetővé a rosszindulatú támadásokkal szemben
- kritikus fontosságú műveleteket hajthat végre, amelyeket nem lehet megszakítani.
- a kérések érvényesítését a fő feladatoktól elkülönítve kell elvégezni, vagy központosítani ezt az ellenőrzést a karbantartás és az adminisztráció egyszerűsítése érdekében
Számítási feladatok tervezése
Az építészeknek értékelniük kell, hogy a Gatekeeper-minta hogyan használható a számítási feladat kialakításában az Azure Well-Architected Framework pilléreiben foglalt célok és alapelvek kezelésére. Példa:
Pillé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. | Az átjáró kérési folyamatba való felvételével központosíthatja az olyan biztonsági funkciókat, mint a webalkalmazási tűzfalak, a DDoS-védelem, a robotészlelés, a kérések kezelése, a hitelesítés kezdeményezése és az engedélyezési ellenőrzések. - 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 . | Ez a minta azt mutatja, hogyan valósíthatja meg a szabályozást átjárószinten ahelyett, hogy sebességellenőrzéseket implementál a csomópont szintjén. A sebességállapot koordinálása az összes csomópont között nem eredendően nem teljesít. - PE:03 Szolgáltatások kiválasztása |
Mint minden tervezési döntésnél, fontolja meg az ezzel a mintával bevezethető többi pillér céljaival szembeni kompromisszumokat.
Példa
Felhőalapú forgatókönyv esetén ez a minta a kapuőri szerepkör vagy a virtuális gép leválasztásával valósítható meg az alkalmazás megbízható szerepköreitől és szolgáltatásaitól. Az implementáció használhat belső végpontot, üzenetsort vagy tárolót köztes kommunikációs mechanizmusként. Az ábrán egy belső végpont használata látható.
Kapcsolódó erőforrások
A Pótkulcs minta is releváns lehet a forgalomirányító minta implementálásakor. A Gatekeeper és a megbízható szerepkörök közötti kommunikáció során ajánlott a biztonság növelése olyan kulcsok vagy jogkivonatok használatával, amelyek korlátozzák az erőforrások elérésére vonatkozó engedélyeket. A minta egy olyan jogkivonat vagy kulcs használatát írja le, amely korlátozott, közvetlen hozzáférést biztosít az ügyfeleknek egy adott erőforráshoz vagy szolgáltatáshoz.