Bezpečně spravované webové aplikace
Tento článek popisuje, jak nasadit zabezpečené aplikace pomocí služby App Service Environment. Tato architektura používá Azure Application Gateway a Azure Web Application Firewall k omezení přístupu k aplikacím z internetu. Tento článek také vysvětluje, jak integrovat kontinuální integraci a průběžné nasazování (CI/CD) se službou App Service Environment pomocí Azure DevOps.
Odvětví, jako je bankovnictví a pojištění, toto řešení často využívají, protože zákazníci hodnotí zabezpečení na úrovni platformy i na úrovni aplikace. Abychom si ukázali tyto koncepty, následující ukázková aplikace umožňuje uživatelům odesílat vyúčtování výdajů.
Architektura
Stáhněte si soubor Visia této architektury.
Tok dat
Následující tok dat odpovídá předchozímu diagramu:
Požadavky HTTP a HTTPS se dostanou ke službě Application Gateway.
Volitelně je pro webovou aplikaci povolené ověřování Microsoft Entra. Po dosažení provozu do aplikační brány se uživateli zobrazí výzva k zadání přihlašovacích údajů k ověření v aplikaci. Tento krok se nezobrazuje v diagramu.
Požadavky uživatelů procházejí interním nástrojem pro vyrovnávání zatížení (ILB) prostředí, který směruje provoz do webové aplikace s výdaji.
Uživatel vytvoří sestavu výdajů.
V rámci vytváření sestavy výdajů se vyvolá nasazená aplikace API, která načte jméno a e-mail správce uživatele.
Systém ukládá sestavu výdajů ve službě Azure SQL Database.
Kvůli usnadnění průběžného nasazování se kód zkontroluje do instance Azure DevOps.
Virtuální počítač sestavení zahrnuje agenta Azure DevOps. Tento agent umožňuje sestavení virtuálního počítače načíst artefakty webové aplikace a použít je k nasazení webové aplikace do služby App Service Environment. Virtuální počítač sestavení se nachází v podsíti ve stejné virtuální síti jako App Service Environment.
Komponenty
App Service Environment poskytuje plně izolované vyhrazené prostředí pro bezpečné spouštění aplikace ve velkém měřítku. App Service Environment i její úlohy se nacházejí za virtuální sítí, takže nastavení přidá další vrstvu zabezpečení a izolace. Tento scénář používá službu App Service Environment s interním nástrojem pro vyrovnávání zatížení, aby splňovala potřebu vysokého škálování a izolace.
Tato úloha používá cenovou úroveň Izolované služby App Service. Aplikace běží v privátním vyhrazeném prostředí v datacentru Azure, které využívá rychlejší procesory a úložiště SSD (Solid-State Drive) a poskytuje maximální možnosti škálování na více instancí.
Funkce Web Apps a API Apps hostující webové aplikace služby App Service a rozhraní RESTful API Tyto aplikace a rozhraní API jsou hostované v plánu izolované služby, který také poskytuje automatické škálování, vlastní domény a další funkce ve vyhrazené vrstvě.
Application Gateway je nástroj pro vyrovnávání zatížení webového provozu vrstvy 7, který spravuje provoz do webové aplikace. Poskytuje přesměrování zpracování SSL (Secure Sockets Layer), což eliminuje režii při dešifrování provozu z webových serverů, které hostují aplikaci.
Firewall webových aplikací je funkce služby Application Gateway, která vylepšuje zabezpečení. Firewall webových aplikací používá pravidla OWASP (Open Worldwide Application Security Project) k ochraně webové aplikace před útoky, jako jsou skriptování mezi weby, napadení relací a injektáž SQL.
SQL Database ukládá data aplikace. Většina dat je relační, s některými daty uloženými jako dokumenty a objekty blob.
Azure Virtual Network poskytuje různé síťové funkce v Azure. Virtuální sítě můžete propojit dohromady a navázat spojení s místními datacentry prostřednictvím ExpressRoute nebo virtuální privátní sítě (VPN) typu site-to-site. Tento scénář umožňuje koncovému bodu služby ve virtuální síti zajistit, aby data proudily pouze mezi virtuální sítí Azure a instancí služby SQL Database.
Azure DevOps podporuje agilní vývoj tím, že pomáhá týmům spolupracovat během sprintů a poskytuje nástroje pro vytváření kanálů sestavení a verzí.
Virtuální počítač sestavení Azure umožňuje nainstalovanému agentu stáhnout příslušné sestavení a nasadit webovou aplikaci do prostředí.
Alternativy
App Service Environment může spouštět běžné webové aplikace ve Windows nebo jako v tomto příkladu webové aplikace, které běží jako kontejnery Linuxu nasazené v prostředí. Tento scénář používá službu App Service Environment k hostování těchto kontejnerizovaných aplikací s jednou instancí. Při návrhu řešení zvažte následující alternativy:
Azure Container Apps je bezserverová platforma, která snižuje režii na infrastrukturu a šetří náklady při spouštění kontejnerizovaných aplikací. Eliminuje nutnost spravovat konfiguraci serveru, orchestraci kontejnerů a podrobnosti nasazení. Container Apps poskytuje všechny prostředky serveru up-todata potřebné k zajištění stabilního a zabezpečeného zabezpečení vašich aplikací.
Azure Kubernetes Service (AKS) je opensourcový projekt a platforma orchestrace navržená pro hostování složitých multikontejnerových aplikací, které obvykle používají architekturu založenou na mikroslužbách. AKS je spravovaná služba Azure, která zjednodušuje zřizování a konfiguraci clusteru Kubernetes. Abyste ji mohli podporovat a udržovat, musíte mít značné znalosti platformy Kubernetes, takže hostování malého počtu kontejnerizovaných webových aplikací s jednou instancí nemusí být nejlepší volbou.
Pro datovou vrstvu použijte následující alternativu:
- Azure Cosmos DB je dobrou volbou, pokud je většina dat v nerelačním formátu.
Potenciální případy použití
Zvažte toto řešení pro následující případy použití:
- Vytvořte webovou aplikaci Azure, která vyžaduje dodatečné zabezpečení.
- Poskytněte vyhrazené tenantské tenanty místo sdílených plánů služby App Service.
- Azure DevOps můžete používat s interně vyrovnáváním zatížení služby App Service Environment.
Řešení rozhodnutí o návrhu PROTOKOLU TLS a DNS
Nastavení DNS (Domain Name System) pro výchozí příponu domény služby App Service Environment neomezí dostupnost aplikace na tyto názvy. Funkce vlastní přípony domény pro službu App Service Environment s interním nástrojem pro vyrovnávání zatížení umožňuje používat pro přístup k aplikacím hostovaným ve službě App Service Environment vlastní příponu domény.
Přípona vlastní domény definuje kořenovou doménu, kterou služba App Service Environment používá. Pro službu App Service Environment s interním nástrojem pro vyrovnávání zatížení je appserviceenvironment.netvýchozí kořenová doména . Služba App Service Environment s interním nástrojem pro vyrovnávání zatížení je interní pro virtuální síť zákazníka, takže zákazníci můžou kromě výchozí domény, která odpovídá prostředí virtuální sítě, používat kořenovou doménu. Společnost Contoso Může například používat výchozí kořenovou doménu aplikací určených internal.contoso.com k překladu a dosažitelnosti jenom ve virtuální síti společnosti Contoso. Přístup k aplikaci v této virtuální síti je přístupný.APP-NAME.internal.contoso.com
Přípona vlastní domény se vztahuje na službu App Service Environment. Tato funkce se liší od vlastní vazby domény v jednotlivých instancích služby App Service.
Pokud certifikát použitý pro příponu vlastní domény obsahuje položku *.scm.CUSTOM-DOMAINalternativního názvu subjektu (SAN), stane se lokalita Správce správy zdrojového kódu (SCM) dosažitelná z APP-NAME.scm.CUSTOM-DOMAIN. K SCM můžete přistupovat pouze přes vlastní doménu pomocí základního ověřování. Jednotné přihlašování je dostupné jenom v případech, kdy používáte výchozí kořenovou doménu.
Při správě certifikátů ve službě App Service Environment s interním nástrojem pro vyrovnávání zatížení zvažte následující faktory:
Uložte platný certifikát SSL nebo TLS (Transport Layer Security) do trezoru klíčů Azure v . Formát PFX.
Ujistěte se, že je certifikát menší než 20 kB.
Pro vybraný vlastní název domény použijte zástupný certifikát.
Nakonfigurujte spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem pro službu App Service Environment. Spravovaná identita se ověřuje v trezoru klíčů Azure, kde se nachází certifikát SSL nebo TLS.
Očekáváme, že služba App Service Environment použije změny certifikátů do 24 hodin po obměně v trezoru klíčů.
Síťový přístup ke službě Azure Key Vault
K trezoru klíčů můžete přistupovat veřejně nebo prostřednictvím privátního koncového bodu, který je dostupný z podsítě, ve které je nasazená služba App Service Environment.
Pokud používáte veřejný přístup, můžete trezor klíčů zabezpečit tak, aby přijímal provoz jenom z odchozí IP adresy služby App Service Environment.
App Service Environment používá odchozí IP adresu platformy jako zdrojovou adresu, když přistupuje k trezoru klíčů. Tuto IP adresu najdete na stránce IP adresy na webu Azure Portal.
Konfigurace DNS
Pokud chcete získat přístup k aplikacím ve službě App Service Environment pomocí vlastní přípony domény, nakonfigurujte vlastní server DNS nebo nakonfigurujte DNS v zóně Azure Private DNS pro vaši vlastní doménu. Další informace najdete v tématu Konfigurace DNS.
Zabezpečení jedinečného výchozího názvu hostitele
Funkce zabezpečeného jedinečného výchozího názvu hostitele poskytuje dlouhodobé řešení pro ochranu vašich prostředků před průběžným převzetím položek DNS a subdomény. Pokud tuto funkci povolíte pro prostředky služby App Service, nikdo mimo vaši organizaci nemůže znovu vytvořit prostředky, které mají stejný výchozí název hostitele. Tato ochrana brání škodlivým hercům zneužít přeskakující položky DNS a převzít subdomény. Další informace najdete v tématu Zabezpečení jedinečných výchozích názvů hostitelů.
Důležité informace
Tyto aspekty implementují pilíře dobře architektuře Azure, což je sada hlavních principů, které můžete použít ke zlepšení kvality úlohy. Další informace najdete v tématu Well-Architected Framework.
Spolehlivost
Spolehlivost pomáhá zajistit, aby vaše aplikace splňovala závazky, které jste pro své zákazníky udělali. Další informace najdete v kontrolním seznamu pro kontrolu návrhu pro spolehlivost.
Zvažte použití geograficky distribuovaného škálování ve službě App Service Environment pro zajištění větší odolnosti a škálovatelnosti.
Projděte si typické vzory návrhu pro zajištění odolnosti a implementujte je tam, kde je to vhodné.
Zvažte použití aktivní geografické replikace pro datovou vrstvu a geograficky redundantní úložiště pro image a fronty.
Další informace najdete v následujících zdrojích informací:
Dostupnost
Při vytváření cloudové aplikace zvažte použití typických vzorů návrhu pro dostupnost .
Projděte si důležité informace o dostupnosti v příslušné referenční architektuře webových aplikací služby App Service.
Další aspekty dostupnosti najdete v průvodcích spolehlivostí podle služeb.
Zabezpečení
Zabezpečení poskytuje záruky proti záměrným útokům a zneužití cenných dat a systémů. Další informace najdete v kontrolním seznamu pro kontrolu návrhu zabezpečení.
Projděte si aspekty zabezpečení v příslušné referenční architektuře webové aplikace App Service.
Zvažte postup životního cyklu vývoje zabezpečení , který vývojářům pomáhá vytvářet bezpečnější software a řešit požadavky na dodržování předpisů zabezpečení a zároveň snížit náklady na vývoj.
Pomocí osvědčených postupů azure DDoS Protection a návrhu aplikací můžete zlepšit ochranu před distribuovanými útoky DDoS (Denial of-Service). Povolte službu DDoS Protection v hraničních virtuálních sítích.
Optimalizace nákladů
Optimalizace nákladů se zaměřuje na způsoby, jak snížit zbytečné výdaje a zlepšit efektivitu provozu. Další informace najdete v kontrolním seznamu pro kontrolu návrhu pro optimalizaci nákladů.
Prozkoumejte náklady na provoz tohoto scénáře. Následující ukázkové profily nákladů jsou založené na očekávaném provozu. Všechny služby jsou předem nakonfigurované v kalkulačce nákladů.
Malé nasazení: Tento příklad cen představuje komponenty pro instanci minimální produkční úrovně, která každý měsíc obsluhuje několik tisíc uživatelů. Aplikace používá jednu malou instanci izolované webové aplikace. Každá další komponenta se škáluje na úroveň Basic, aby se minimalizovaly náklady a současně zajistila podpora smlouvy o úrovni služeb (SLA) a dostatečnou kapacitu pro zpracování úloh na úrovni produkčního prostředí.
Střední nasazení: Tento příklad cen představuje komponenty pro středně velké nasazení, které každý měsíc obsluhuje přibližně 100 000 uživatelů. Provoz spravuje středně velká jedna izolovaná instance služby App Service. Zvýšení kapacity služby Application Gateway a SLUŽBY SQL Database za účelem podpory přidané úlohy
Velké nasazení: Tento příklad cen představuje komponenty pro vysoce škálovatou aplikaci, která každý měsíc obsluhuje miliony uživatelů a přesouvá terabajty dat. Tato úroveň využití vyžaduje vysoce výkonné izolované webové aplikace nasazené ve více oblastech a před sebou Azure Traffic Manager. Odhad zahrnuje Traffic Manager a další instance služby Application Gateway a virtuální sítě. Kapacita služby SQL Database se zvyšuje, aby podporovala přidanou úlohu.
Pokud chcete zobrazit ceny pro konkrétní případ použití, změňte příslušné proměnné tak, aby odpovídaly očekávanému provozu.
Efektivita výkonu
Efektivita výkonu odkazuje na schopnost vaší úlohy efektivně škálovat tak, aby splňovala požadavky uživatelů. Další informace najdete v kontrolním seznamu pro kontrolu návrhu týkajícího se efektivity výkonu.
Zjistěte, jak funguje škálování ve službě App Service Environment.
Projděte si osvědčené postupy pro automatické škálování cloudových aplikací.
Porozumíte typickým vzorům návrhu pro škálovatelnost při vytváření cloudové aplikace.
Projděte si aspekty škálovatelnosti v příslušné referenční architektuře webové aplikace App Service.
Přispěvatelé
Microsoft udržuje tento článek. Tento článek napsali následující přispěvatelé.
Hlavní autor:
- Nicholas McCollum | Hlavní zákaznický inženýr
Pokud chcete zobrazit nepublikované profily LinkedIn, přihlaste se na LinkedIn.
Další kroky
- Integrace služby App Service Environment s interním nástrojem pro vyrovnávání zatížení se službou Azure Application Gateway
- Geograficky distribuované škálování s využitím služby App Service Environment