Model Vrátný (Gatekeeper)
Chrání aplikace a služby pomocí vyhrazené hostitelské instance, která slouží jako zprostředkovatel mezi klienty a aplikací nebo službou, ověřuje a upravuje požadavky a předává mezi nimi požadavky a data. Může tak zajišťovat další vrstvu zabezpečení a omezit prostor k útoku na systém.
Kontext a problém
Aplikace přijímáním a zpracováním požadavků vystavují své funkce klientům. Ve scénářích hostovaných v cloudu aplikace vystavují koncové body, ke kterým se klienti připojují, a obvykle zahrnují kód pro zpracování požadavků od klientů. Tento kód provádí ověřování, některé nebo veškeré zpracování požadavků a pravděpodobně jménem klienta přistupuje k úložišti a dalším službám.
Pokud uživatel se zlými úmysly dokáže ohrozit zabezpečení systému a získat přístup k hostingovému prostředí aplikace, budou mu vystaveny mechanismy zabezpečení, které aplikace používá, třeba přihlašovací údaje a klíče úložiště, i služby a data, k nimž přistupuje. V důsledku toho může uživatel se zlými úmysly získat neomezený přístup k citlivým informacím a dalším službám.
Řešení
Pokud chcete minimalizovat riziko, že klienti získají přístup k citlivým informacím a službám, oddělte hostitele nebo úlohy, které vystavují veřejné koncové body, od kódu, který zpracovává požadavky a přistupuje k úložišti. Toho se dá dosáhnout pomocí „fasády“ nebo vyhrazené úlohy, která komunikuje s klienty a pak požadavek předá — třeba prostřednictvím odděleného rozhraní — hostitelům nebo úlohám, které požadavek zpracují. Obrázek znázorňuje přehled vysoké úrovně tohoto modelu.

Model vrátného se dá použít k prosté ochraně úložiště nebo může sloužit jako komplexnější fasáda na ochranu všech funkcí aplikace. Důležité faktory jsou:
- Řízené ověřování. Vrátný ověřuje všechny požadavky a ty, které podmínky ověření nesplňují, odmítne.
- Omezené riziko a riziko ohrožení. 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.
- Odpovídající 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ě. Vrátný tak může zkoumat požadavky a rozhodnout se, 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é, kterým vrátný předává požadavky, vystavují jenom interní nebo chráněné koncové body a připojují se jenom k vrátnému. 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í. To obvykle znamená, že vrátný a důvěryhodný hostitel běží v samostatných hostovaných službách nebo virtuálních počítačích.
- Vrátný nesmí provádět žádné zpracovávání týkající se aplikace nebo služeb 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 základní ověření by měl provádět vrátný.
- Pokud je to možné, mezi vrátným a důvěryhodnými hostiteli nebo úlohami používejte zabezpečený komunikační kanál (HTTPS, SSL nebo TLS). Některá hostitelská prostředí ale nepodporují HTTPS na interních koncových bodech.
- Přidání další vrstvy do aplikace k implementaci modelu vrátného pravděpodobně bude mít dopad na výkon kvůli dalšímu zpracování a síťové komunikaci, které vyžaduje.
- Instance vrátného může být kritickým prvkem způsobujícím selhání. Pokud chcete dopad selhání minimalizovat, zvažte nasazení dalších instancí a použití mechanismu automatického škálování, abyste zajistili zachování dostupnosti kapacity.
Kdy se má tento model použít
Tento model je vhodný pro:
- Aplikace, které zpracovávají citlivé informace, vystavují služby, které musí mít vysoký stupeň ochrany před nebezpečnými útoky, nebo provádějí důležité operace, které se nesmí přerušit
- Distribuované aplikace, kde je nezbytné provádět ověřování požadavků odděleně od hlavních úloh nebo toto ověřování centralizovat kvůli zjednodušení údržby a správy
Příklad
Ve scénáři hostování v cloudu se dá 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. Provedete to pomocí interního koncového bodu, fronty nebo úložiště jako mechanismu zprostředkující komunikace. Obrázek znázorňuje použití interního koncového bodu.

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