Rozhraní API jsou stále důležitější v tom, jak společnosti a zákazníci přistupují ke službám interně i externě. Interně se rozhraní API používají pro přístup k obchodním aplikacím, domácím řešením a integracím třetích stran. Mimo to se více společností snaží být produktivní a monetizovat svá rozhraní API. S ohledem na tento trend se API Management stává centrální součástí standardního přístupu ke správě, řízení a publikování rozhraní API pro interní i externí cílové skupiny.
Pomocí Azure Application Gateway je teď možné chránit a omezit přístup rozhraní API obsluhovaných prostřednictvím Azure API Management. Tento článek popisuje řešení, ve kterém můžete spravovat interní i externí rozhraní API prostřednictvím jedné instance API Management. Můžete udržovat bezpečný stav před zveřejněním přímo přes internet, ale místo toho se k němu přistupuje prostřednictvím Application Gateway.
Poznámka
Tato architektura slouží jako základ akcelerátoru cílových zón Azure API Management v Cloud Adoption Framework.
Architektura
Tento diagram architektury začíná komplexním rámečkem, který představuje rozsah předplatného, Privátní DNS zónu, kde se přeloží privátní domény, a oborem virtuální sítě s názvy APIM-CS VNet. Nad předplatným je pole, které označuje, že se jedná o místní úlohu. Pole obsahuje ikonu serveru. Kanál označuje připojení typu site-to-site nebo Azure ExpressRoute se připojuje k instanci API Management v předplatném Azure. Dalších sedm menších polí je uvnitř velkého rámečku s předplatným Azure. Čtyři pole jsou v horním řádku a tři v dolní řadě. Každý jednotlivý rámeček představuje samostatnou podsíť s připojenou skupinou zabezpečení sítě. Nejvíce zleva je veřejná IP adresa, která je připojená k Azure Application Gateway v poli úplně vlevo v horním řádku. Application Gateway se také nachází v jednom ze sedmi menších polí s podsítí s názvem Podsíť App GW. Vpravo je další pole, které obsahuje instanci API Management s podsítí s názvem PODsíť APIM. Vedle je třetí pole v horním řádku, které obsahuje privátní koncový bod pro instanci Azure Functions v podsíti s názvem PODsíť PE. Pravé pole v horním řádku je back-endová podsíť, která obsahuje aplikace Funkcí Azure, plán Azure App Service funkce a účet úložiště přidružený k aplikaci funkcí. V dolním řádku zleva je pole, které obsahuje Azure Bastion v podsíti Bastion. Druhé pole obsahuje virtuální počítač jumbox pro správu v podsíti Jump Box. Poslední pole v dolním řádku je agent DevOps obsažený v podsíti DevOps. V pravém dolním rohu obrázku jsou tři sdílené prostředky s příslušnými ikonami. Zleva doprava jsou následující pole: trezor klíčů, Application Insights a pracovní prostor služby Log Analytics. Existují dvě sady pracovních postupů. První pracovní postup je označen černými kroužky a druhý pracovní postup je označen modrými kroužky, které budou vysvětleny v dalších částech. Černý pracovní postup označuje přístup k rozhraním API, která jsou k dispozici externě. Tok se spustí od uživatele, který přistupuje k veřejné IP adrese. Šipka pak ukazuje na směr Application Gateway, z Application Gateway do privátního koncového bodu a z privátního koncového bodu do aplikace funkcí. Modrý pracovní postup začíná od místního serveru se šipkou, která ukazuje na instanci API Management, prostřednictvím ikony kanálu, která označuje připojení typu site-to-site nebo přes ExpressRoute. Zbytek toku je stejný, jak je popsáno výše: z API Management do privátního koncového bodu a z privátního koncového bodu do funkce Azure Functions.
Tato architektura předpokládá, že zásady jsou zavedeny z akcelerátoru cílové zóny Azure a že struktura je hnaná směrem dolů od skupiny pro správu.
Stáhněte si soubor aplikace Visio s touto architekturou.
Pracovní postup
Hybridní scénář (modré kruhy)
Tento scénář vyžaduje připojení typu site-to-site nebo Azure ExpressRoute k místnímu prostředí.
- Místní aplikace vyžaduje přístup k internímu rozhraní API, které se obsluhuje prostřednictvím Azure API Management.
- API Management se připojuje k back-endovým rozhraním API hostovaným na Azure Functions. Toto připojení je prostřednictvím privátního koncového bodu, který je k dispozici prostřednictvím plánu Azure Functions Premium a je hostované ve vlastní podsíti.
- Privátní koncový bod bezpečně přistupuje k internímu rozhraní API hostovanému na Azure Functions.
Scénář externího přístupu (černé kruhy)
- Externí aplikace přistupuje k veřejné IP adrese nebo vlastnímu plně kvalifikovanému názvu domény, který je připojený k Azure Application Gateway.
- Application Gateway funguje jako firewall webových aplikací, který vyžaduje certifikáty PFX pro ukončení protokolu SSL.
- API Management se připojuje k back-endovým rozhraním API hostovaným na Azure Functions prostřednictvím privátního koncového bodu. Tento koncový bod je dostupný prostřednictvím plánu Azure Functions Premium a hostuje se ve své vlastní podsíti.
- Privátní koncový bod bezpečně přistupuje k externě dostupnému rozhraní API hostovanému na Azure Functions.
Komponenty
Architektura používá následující komponenty:
Azure API Management je spravovaná služba, která umožňuje spravovat služby napříč hybridními a multicloudovými prostředími. Api Management funguje jako fasáda pro abstrakci back-endové architektury a poskytuje kontrolu a zabezpečení pro pozorovatelnost a využití rozhraní API pro interní i externí uživatele.
Azure Functions je bezserverové řešení, které umožňuje zaměřit se více na bloky kódu, které je možné provádět s minimální správou infrastruktury. Funkce je možné hostovat v různých plánech hostování, zatímco tato referenční architektura používá plán Premium, a to z důvodu použití privátních koncových bodů.
Azure Application Gateway je spravovaná služba, která funguje jako nástroj pro vyrovnávání zatížení vrstvy 7 a firewall webových aplikací. V tomto scénáři aplikační brána chrání interní instanci APIM, která umožňuje používat interní a externí režim.
Zóny Azure DNSPrivátní DNS umožňují spravovat a překládat názvy domén ve virtuální síti, aniž byste museli implementovat vlastní řešení DNS. Zónu Privátní DNS je možné propojit s jednou nebo více virtuálními sítěmi prostřednictvím propojení virtuálních sítí. Vzhledem k tomu, že Azure Functions vystavené přes privátní koncový bod, který tato referenční architektura používá, musíte použít privátní zónu DNS.
Azure MonitorApplication Insights pomáhá vývojářům zjišťovat anomálie, diagnostikovat problémy a porozumět vzorům používání. Funkce Application Insights pro rozšiřitelnost správy výkonu a monitorování výkonu živých webových aplikací Podporují se různé platformy, včetně .NET, Node.js, Javy a Pythonu. Podporuje aplikace hostované v Azure, místně, v hybridním prostředí nebo v jiných veřejných cloudech. Application Insights je součástí této referenční architektury pro monitorování chování nasazené aplikace.
Azure MonitorLog Analytics umožňuje upravovat a spouštět dotazy na protokoly s daty v protokolech služby Azure Monitor, volitelně z Azure Portal. Vývojáři můžou spouštět jednoduché dotazy na sadu záznamů nebo používat Log Analytics k provádění pokročilých analýz. Pak můžou vizualizovat výsledky. Služba Log Analytics se konfiguruje jako součást této referenční architektury tak, aby agregovala všechny protokoly monitorování pro další analýzy a vytváření sestav.
Azure Virtual Machines je výpočetní prostředek, který je možné použít k hostování mnoha různých úloh. V této referenční architektuře se virtuální počítače používají k poskytování serveru jumpboxu pro správu a také hostitele pro agenta DevOps nebo GitHub Runner.
Azure Key Vault je cloudová služba, která bezpečně ukládá tajné kódy a přistupuje k nim, od klíčů rozhraní API a hesel až po certifikáty a kryptografické klíče. Tato referenční architektura používá k ukládání certifikátů SSL používaných Application Gateway azure Key Vault.
Azure Bastion je platforma jako služba, která se zřizuje ve virtuální síti vývojáře. Poskytuje zabezpečené připojení RDP/SSH k virtuálním počítačům vývojáře přes protokol TLS z Azure Portal. Se službou Azure Bastion už virtuální počítače pro připojení přes RDP/SSH nevyžadují veřejnou IP adresu. Tato referenční architektura používá Azure Bastion pro přístup k agentu DevOps, serveru spouštěče GitHubu nebo k serveru jump boxu pro správu.
Pokud používáte nástroj DevOps, jako je Azure DevOps nebo GitHub, agenti nebo spouštěče hostované v cloudu fungují přes veřejný internet. Vzhledem k tomu, že služba API Management v této architektuře je nastavená na interní síť, budete muset použít agenta DevOps, který má přístup k virtuální síti. Agent DevOps vám pomůže nasadit zásady a další změny rozhraní API ve vaší architektuře. Tyto je možné použít k přerušení procesu a umožnění vývojových týmů nasazovat změny podle rozhraní API. Spouští je běžci DevOps.
Alternativy
Pro back-endové služby, ke kterým se instance API Management připojuje, je k dispozici několik alternativ kromě Azure Functions, která se používá v této referenční implementaci:
- Azure App Service je plně spravovaná služba založená na protokolu HTTP, která sestavuje, nasazuje a škáluje webové aplikace. Podporují se .NET, .NET Core, Java, Ruby, Node.js, PHP a Python. Aplikace se můžou spouštět a škálovat v prostředích založených na Windows nebo Linuxu.
- Azure Kubernetes Service nabízí plně spravované clustery Kubernetes pro integrovanou kontinuální integraci a průběžné doručování (CI/CD), zásady správného řízení a zabezpečení.
- Azure Logic Apps je cloudová platforma, která vytváří a spouští automatizované pracovní postupy. Příklad referenční architektury najdete v tématu Základní podniková integrace v Azure.
- Azure Container Apps umožňuje spouštět mikroslužby a kontejnerizované aplikace na bezserverové platformě.
V případě nasazení ve více oblastech zvažte použití služby Azure Front Door k zajištění rychlého, spolehlivého a zabezpečeného přístupu mezi vašimi uživateli a statickým a dynamickým webovým obsahem vašich aplikací.
Další příklady, jak Application Gateway chránit rozhraní API, najdete v tématu Ochrana rozhraní API pomocí Application Gateway a API Management.
Požadavky
Tyto aspekty implementují pilíře azure Well-Architected Framework, což je sada hlavních zásad, které lze použít ke zlepšení kvality úlohy. Další informace najdete v tématu Microsoft Azure Well-Architected Framework.
Spolehlivost
Spolehlivost zajišťuje, že vaše aplikace dokáže splnit závazky, které učiníte vůči zákazníkům. Další informace najdete v tématu Přehled pilíře spolehlivosti.
- Nasaďte alespoň dvě jednotky škálování API Management, které jsou rozdělené do dvou zón dostupnosti v každé oblasti. Tato metoda maximalizuje dostupnost a výkon.
- Partnerský vztah virtuálních sítí poskytuje skvělý výkon v oblasti, ale má omezení škálovatelnosti– maximálně 500 sítí. Pokud potřebujete připojit více úloh, použijte návrh hvězdicové architektury nebo virtuální síť WAN Azure.
Zabezpečení
Zabezpečení poskytuje záruku proti záměrným útokům a zneužití vašich cenných dat a systémů. Další informace najdete v tématu Přehled pilíře zabezpečení.
- API Management zásady ověřování jsou k dispozici pro ověřování požadavků a odpovědí rozhraní API vůči schématu OpenAPI. Tyto funkce nenahrazuje Web Application Firewall, ale můžou poskytovat dodatečnou ochranu před některými hrozbami. Přidání zásad ověřování může mít vliv na výkon, proto doporučujeme použít zátěžové testy výkonu k vyhodnocení jejich dopadu na propustnost rozhraní API.
- Nasaďte Azure Web Application Firewall (WAF) před API Management, abyste zajistili ochranu před běžným zneužitím a ohrožením zabezpečení webových aplikací.
- Použití pojmenovaných hodnot s Key Vault tajnými kódy k ochraně citlivých informací v zásadách APIM
- K ochraně instance APIM a povolení hybridního připojení použijte Application Gateway pro externí přístup k interní instanci APIM.
- Nasaďte bránu API Management ve virtuální síti pro podporu hybridního připojení a zvýšeného zabezpečení.
- Partnerský vztah virtuálních sítí poskytuje skvělý výkon v oblasti, ale má omezení škálovatelnosti– maximálně 500 sítí. Pokud potřebujete připojit více úloh, použijte návrh hvězdicové architektury nebo virtuální síť WAN Azure.
Optimalizace nákladů
Optimalizace nákladů spočívá v hledání způsobů, jak snížit zbytečné výdaje a zlepšit provozní efektivitu. Další informace najdete v tématu Přehled pilíře optimalizace nákladů.
- Vzhledem k potřebě podpory zóny dostupnosti a virtuální sítě jsme podle cen pro jednotlivé oblasti vybrali úroveň Premium API Management. Kromě toho se v této úloze Azure Functions hostuje v plánu Premium, a to kvůli potřebě přístupu k virtuální síti.
- Pro testování konceptu nebo prototypů doporučujeme použít jiné úrovně API Management (například Developer nebo Standard).
Efektivita provozu
Efektivita provozu zahrnuje provozní procesy, které nasazují aplikaci a udržují ji v provozu v produkčním prostředí. Další informace najdete v tématu Přehled pilíře efektivity provozu.
- API Management konfigurace by měly být reprezentované jako šablony ARM a měli byste si osvojit infrastrukturu jako kód.
- Ke správě, verzi a aktualizaci konfigurací API Management použijte proces CI/CD.
- Vytvořte vlastní sondy stavu, které vám pomůžou ověřit stav vaší instance služby API Management. Pomocí adresy URL
/status-0123456789abcdef
vytvořte společný koncový bod stavu pro službu APIM v bráně aplikace. - Certifikáty aktualizované v trezoru klíčů se automaticky obměňují v API Management, které se aktualizují během 4 hodin.
- Nasaďte alespoň dvě jednotky škálování API Management, které jsou rozdělené do dvou zón dostupnosti v každé oblasti. Tato metoda maximalizuje dostupnost a výkon.
Nasazení tohoto scénáře
Tato architektura je k dispozici na GitHubu. Obsahuje všechny potřebné soubory infrastruktury jako kódu a pokyny k nasazení.
Přispěvatelé
Tento článek spravuje Microsoft. Původně ji napsali následující přispěvatelé.
Hlavní autoři:
- Pete Messina | Vedoucí architekt cloudových řešení
- Anthony Nevico | Vedoucí architekt cloudových řešení
Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se k LinkedInu.
Další kroky
- Stejná architektura se používá jako základ akcelerátoru cílových zón Azure API Management v Cloud Adoption Framework.
- CI/CD pro API Management s využitím šablon Azure Resource Manager
- Úvod do API Management
- Správa rozhraní API pomocí APIM
- API Management zdroje informací pro začátek
Projděte si tyto klíčové zdroje informací:
- Akcelerátor cílové zóny Azure
- Operace rozhraní API
- Dokumentace ke službě Azure API Management
- Klíčové koncepty Azure API Management
- Dokumentace ke službě Application Gateway
- Akcelerátor cílových zón Azure API Management
Další informace o těchto klíčových službách:
- přehled Azure Functions
- Zóny Azure Private DNS
- Přehled Aplikace Azure Insights
- Přehled Služby Azure Log Analytics
- Přehled azure Virtual Machines
- Koncepty azure Key Vault
- Přehled služby Azure Bastion