Upravit

Sdílet prostřednictvím


Model Vrátný (Gatekeeper)

Azure Dedicated Host

Chraňte aplikace a služby pomocí vyhrazené instance hostitele ke zprostředkování požadavků mezi klienty a aplikací nebo službou. Zprostředkovatel ověří a sanitizuje požadavky a může poskytnout další vrstvu zabezpečení a omezit prostor pro útoky na systém.

Kontext a problém

Cloudové služby zveřejňují koncové body, které klientským aplikacím umožňují volat svá rozhraní API. Kód použitý k implementaci triggerů rozhraní API nebo provádí několik úloh, včetně ověřování, autorizace, ověření parametru a některých nebo všech zpracování požadavků. Kód rozhraní API bude pravděpodobně přistupovat k úložišti a dalším službám jménem klienta.

Pokud uživatel se zlými úmysly ohrožuje systém a získá přístup k hostitelskému prostředí aplikace, zpřístupní se jeho bezpečnostní mechanismy a přístup k datům a dalším službám. V důsledku toho může uživatel se zlými úmysly získat neomezený přístup k přihlašovacím údajům, klíčům úložiště, citlivým informacím a dalším službám.

Řešení

Jedním z řešení tohoto problému je oddělení kódu, který implementuje veřejné koncové body, od kódu, který zpracovává požadavky a přistupuje k úložišti. Oddělení můžete dosáhnout pomocí fasády nebo vyhrazené úlohy, která komunikuje s klienty, a pak žádost předá prostřednictvím odděleného rozhraní hostitelům nebo úkolům, které žádost zpracovávají. Obrázek znázorňuje přehled vysoké úrovně tohoto modelu.

Přehled vysoké úrovně tohoto modelu

Vzor vrátného lze použít k ochraně úložiště, nebo ho lze použít jako komplexnější fasádu k ochraně všech funkcí aplikace. Důležité faktory jsou:

  • Řízené ověřování. Vrátný ověří všechny požadavky a odmítne žádosti, které nesplňují požadavky na ověření.
  • Omezené riziko a vystavení. Vrátný nemá přístup k přihlašovacím údajům nebo klíčům používaným důvěryhodným hostitelem pro přístup k úložišti a službám. Pokud dojde k ohrožení vrátného, útočník k přihlašovacím údajům nebo klíčům nezíská přístup.
  • Náležité zabezpečení. Vrátný běží v režimu omezeného oprávnění, zatímco zbytek aplikace běží v režimu úplného vztahu důvěryhodnosti, který je vyžadovaný pro přístup k úložišti a službám. Pokud dojde k ohrožení vrátného, nemá přímý přístup ke službám nebo datům aplikace.

Tento model funguje jako brána firewall v typické topografii sítě. Umožňuje vrátného zkoumat požadavky a rozhodovat o tom, jestli má požadavek předat důvěryhodnému hostiteli, který provádí požadované úlohy. Toto rozhodnutí obvykle vyžaduje, aby vrátný obsah požadavku před předáním důvěryhodnému hostiteli ověřil a sanitizoval.

Problémy a důležité informace

Když se budete rozhodovat, jak tento model implementovat, měli byste vzít v úvahu následující skutečnosti:

  • Ujistěte se, že důvěryhodní hostitelé zpřístupňují pouze interní nebo chráněné koncové body, které používá pouze vrátný. Důvěryhodní hostitelé by neměli vystavovat žádné externí koncové body nebo rozhraní.
  • Vrátný musí běžet v režimu omezeného oprávnění, který obvykle vyžaduje spuštění vrátného a důvěryhodného hostitele v samostatných hostovaných službách nebo virtuálních počítačích.
  • Vrátný by neměl provádět žádné zpracování související s aplikací nebo službami ani přistupovat k žádným datům. Jeho funkcí je jenom ověřit a sanitizovat požadavky. Důvěryhodní hostitelé můžou potřebovat provést další ověření požadavků, ale vrátný by měl provést základní ověření.
  • Pokud je to možné, použijte zabezpečený komunikační kanál (HTTPS, SSL nebo TLS) mezi vrátným a důvěryhodnými hostiteli nebo úlohami. Některá hostitelská prostředí ale nepodporují HTTPS na interních koncových bodech.
  • Přidání další vrstvy pro implementaci modelu gatekeeper pravděpodobně ovlivní výkon kvůli dalšímu zpracování a požadované síťové komunikaci.
  • Instance vrátného může být kritickým prvkem způsobujícím selhání. Pokud chcete minimalizovat dopad selhání, zvažte nasazení redundantních instancí a použití mechanismu automatického škálování, aby se zajistila kapacita pro zachování dostupnosti.

Kdy se má tento model použít

Tento vzor je užitečný pro aplikace, které:

  • zpracování citlivých informací
  • zveřejnění služeb, které vyžadují vysokou úroveň ochrany před škodlivými útoky
  • provádět klíčové operace, které nelze narušit.
  • vyžadování ověření požadavku odděleně od hlavních úloh nebo k centralizaci tohoto ověření za účelem zjednodušení údržby a správy

Návrh úloh

Architekt by měl vyhodnotit způsob použití modelu Gatekeeper v návrhu úloh k řešení cílů a principů popsaných v pilířích architektury Azure Well-Architected Framework. Příklad:

Pilíř Jak tento model podporuje cíle pilíře
Rozhodnutí o návrhu zabezpečení pomáhají zajistit důvěrnost, integritu a dostupnost dat a systémů vaší úlohy. Přidání brány do toku požadavků umožňuje centralizovat funkce zabezpečení, jako jsou brány firewall webových aplikací, ochrana před útoky DDoS, detekce robotů, manipulace s požadavky, inicializace ověřování a kontrola autorizace.

- SE:06 Řízení sítě
- SE:10 Monitorování a detekce hrozeb
Efektivita výkonu pomáhá vaší úloze efektivně splňovat požadavky prostřednictvím optimalizací škálování, dat a kódu. Tento model je způsob, jakým můžete implementovat omezování na úrovni brány a neimplementovat kontroly rychlosti na úrovni uzlu. Koordinace stavu rychlosti mezi všemi uzly není ze své podstaty výkonná.

- PE:03 Výběr služeb

Stejně jako u jakéhokoli rozhodnutí o návrhu zvažte jakékoli kompromisy proti cílům ostatních pilířů, které by mohly být s tímto vzorem zavedeny.

Příklad

Ve scénáři hostovaném v cloudu je možné tento model implementovat oddělením role vrátného nebo virtuálního počítače od důvěryhodných rolí a služeb v aplikaci. Implementace může jako zprostředkující komunikační mechanismus použít interní koncový bod, frontu nebo úložiště. Obrázek znázorňuje použití interního koncového bodu.

Příklad modelu s použitím webových a pracovních rolí Cloud Services

Při implementaci modelu vrátného může být důležitý také model osobního klíče. Při komunikaci mezi gatekeeperem a důvěryhodnými rolemi je vhodné zlepšit zabezpečení pomocí klíčů nebo tokenů, které omezují oprávnění pro přístup k prostředkům. Tento model popisuje použití tokenu nebo klíče, který klientům poskytuje omezený přímý přístup ke konkrétnímu prostředku nebo službě.