Bezpečně spravované webové aplikace

Azure App Service
Azure Application Gateway
Azure SQL Database
Službu Azure VPN Gateway
Azure Web Application Firewall

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

Diagram znázorňující ukázkovou architekturu scénáře pro zabezpečené nasazení interního nástroje pro vyrovnávání zatížení App Service Environment

Stáhněte si soubor Visia této architektury.

Datový tok

Následující tok dat odpovídá předchozímu diagramu:

  1. Požadavky HTTP a HTTPS se dostanou ke službě Application Gateway.

  2. 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.

  3. 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.

  4. Uživatel vytvoří sestavu výdajů.

  5. V rámci vytvoření výkazu výdajů se vyvolá nasazená API aplikace, aby načetla jméno a e-mail manažera uživatele.

  6. Systém ukládá sestavu výdajů ve službě Azure SQL Database.

  7. Kvůli usnadnění průběžného nasazování se kód zkontroluje do instance Azure DevOps.

  8. Sestavovací virtuální počítač zahrnuje agenta Azure DevOps. Tento agent umožňuje virtuálnímu počítači pro sestavení načíst artefakty webové aplikace a použít je k nasazení webové aplikace do App Service Environment. Virtuální počítač sestavení se nachází v podsíti stejné virtuální sítě 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 vyrovnávačem zatížení (ILB), aby splnil 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 offloading SSL (Secure Sockets Layer), což eliminuje přetížení při dešifrování provozu, které se přesouvá z webových serverů hostujících 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í, přičemž některá jsou uložena 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í stroj pro sestavení Azure umožňuje nainstalovanému agentovi stáhnout konkrétní 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 aktuální prostředky serveru potřebné k udržení vašich aplikací stabilních a zabezpečených.

  • 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í pouze několika 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í.
  • Nabídněte vyhrazené prostředí namísto sdílených plánů služby App Service.
  • Azure DevOps můžete používat s interně vyrovnaným zatížením prostředí služby App Service.

Ř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 ve službě App Service Environment s interním systémem pro vyrovnávání zatížení (ILB) umožňuje používat vlastní příponu domény k přístupu k aplikacím hostovaným ve vašem prostředí App Service.

Přípona vlastní domény definuje kořenovou doménu, kterou služba App Service Environment používá. Pro prostředí App Service Environment s interním vyrovnáváním zatížení je výchozí kořenovou doménou appserviceenvironment.net. Služba ILB App Service Environment je součástí virtuální sítě zákazníka, takže zákazníci mohou používat kořenovou doménu vedle výchozí domény, která odpovídá jejich prostředí virtuální sítě. Společnost Contoso může například používat výchozí kořenovou doménu internal.contoso.com pro aplikace určené k tomu, aby byly dostupné a dosažitelné jenom v rámci virtuální sítě společnosti Contoso. Aplikaci v této virtuální síti lze zpřístupnit přístupem pomocí 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 alternativního názvu subjektu (SAN) pro *.scm.CUSTOM-DOMAIN, stane se stránka Správce 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ávejte, že App Service Environment použije změny certifikátů do 24 hodin po obměně v Key Vault.

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 neplatnými záznamy DNS a převzetím 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ů.

Úvahy

Tyto aspekty implementují pilíře Dobře navržené architektury Azure, což je sada hlavních principů, které můžete použít ke zlepšení kvality pracovní zátěže. 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.

Dostupnost

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í.

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žeb Application Gateway a SQL Database pro podporu 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é webové aplikace na izolované úrovni, které jsou nasazeny ve více oblastech s Azure Traffic Managerem jako front-endem. 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.

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