Bezpečně spravované webové aplikace

Azure App Service
Azure Application Gateway
Azure SQL Database
Azure VPN Gateway
Azure Web Application Firewall

Tento článek obsahuje přehled nasazení zabezpečených aplikací pomocí prostředí služby Aplikace Azure Service Environment. K omezení přístupu k aplikacím z internetu se používá služba Aplikace Azure Gateway a Azure Web Application Firewall. Tento článek obsahuje také pokyny k kontinuální integraci a průběžnému nasazování (CI/CD) pro službu App Service Environment pomocí Azure DevOps.

Tento scénář se běžně nasazuje v odvětvích, jako je bankovnictví a pojištění, kde si zákazníci kromě zabezpečení na úrovni aplikace uvědomují zabezpečení na úrovni platformy. K předvedení těchto konceptů použijeme aplikaci, která uživatelům umožňuje odesílat vyúčtování výdajů.

Potenciální případy použití

Tento scénář zvažte pro následující případy použití:

  • Vytvoření webové aplikace Azure, kde se vyžaduje dodatečné zabezpečení
  • Poskytování vyhrazené tenantské architektury místo sdílených plánů služby App Service tenanta
  • Použití Azure DevOps s prostředím aplikační služby s interním vyrovnáváním zatížení (ILB).

Architektura

Diagram featuring the sample scenario architecture for Secure ILB App Service Environment Deployment.

Stáhněte si soubor aplikace Visio s touto architekturou.

Tok dat

  1. Nejprve se požadavky HTTP/HTTPS dostaly do služby Application Gateway.
  2. Volitelně (není zobrazeno v diagramu) můžete povolit ověřování Microsoft Entra pro webovou aplikaci. Po prvním dosažení provozu služby Application Gateway by se uživateli zobrazila výzva k zadání přihlašovacích údajů pro ověření v aplikaci.
  3. Požadavky uživatelů procházejí interním nástrojem pro vyrovnávání zatížení prostředí, který pak směruje provoz do webové aplikace Expenses.
  4. Uživatel pak vytvoří sestavu výdajů.
  5. 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.
  6. Vytvořená sestava výdajů je uložená 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. Buildovaný virtuální počítač má nainstalovaného agenta Azure DevOps, který umožňuje virtuálnímu počítači sestavení vyžádat bity pro nasazení webové aplikace do služby App Service Environment (protože se virtuální počítač sestavení nasadí do podsítě ve stejné virtuální síti).

Komponenty

  • App Service Environment poskytuje plně izolované vyhrazené prostředí pro bezpečné spouštění aplikace ve velkém měřítku. Vzhledem k tomu, že služba App Service Environment a úlohy, které na ní běží, jsou za virtuální sítí, poskytuje také další vrstvu zabezpečení a izolace. Požadavek na vysoké škálování a izolaci řídil výběr služby App Service Environment s interním nástrojem pro vyrovnávání zatížení.
  • Tato úloha používá izolovanou cenovou úroveň služby App Service, takže aplikace běží v privátním vyhrazeném prostředí v datacentru Azure pomocí rychlejších procesorů, úložiště SSD a ve srovnání se standardem zdvojnásobuje poměr paměti k jádru.
  • Aplikace Azure Services Webová aplikace a aplikace API hostují webové aplikace a rozhraní RESTful API. Tyto aplikace a rozhraní API jsou hostované v plánu izolované služby, který také nabízí automatické škálování, vlastní domény atd., ale ve vyhrazené vrstvě.
  • Azure Application Gateway je nástroj pro vyrovnávání zatížení webového provozu fungující ve vrstvě 7, který spravuje provoz do webové aplikace. Nabízí přesměrování zpracování SSL, které z webových serverů hostujících webovou aplikaci odebere další režii, aby bylo možné znovu dešifrovat provoz.
  • Firewall webových aplikací (WAF) je funkce služby Application Gateway. Povolení WAF ve službě Application Gateway dále vylepšuje zabezpečení. WAF používá pravidla OWASP k ochraně webové aplikace před útoky, jako jsou skriptování mezi weby, napadení relací a injektáž SQL.
  • Služba Azure SQL Database byla vybrána, protože většina dat v této aplikaci je relační data s některými daty jako dokumenty a objekty blob.
  • Sítě Azure poskytují různé síťové funkce v Azure a sítě můžou být v Partnerském vztahu s jinými virtuálními sítěmi v Azure. Připojení můžete také vytvořit s místními datacentry prostřednictvím ExpressRoute nebo site-to-site. V tomto případě je ve virtuální síti povolený koncový bod služby, aby se zajistilo, že data proudí jenom mezi virtuální sítí Azure a instancí služby SQL Database.
  • Azure DevOps slouží ke spolupráci týmů během sprintů pomocí funkcí podporujících agilní vývoj a vytváření kanálů sestavení a verzí.
  • Vytvořil se virtuální počítač sestavení Azure, aby instalovaný agent mohl stáhnout příslušný build 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 nasazené v prostředí, které běží jako kontejnery Linuxu. Pro hostování těchto kontejnerizovaných aplikací s jednou instancí byla vybrána služba App Service Environment. K dispozici jsou alternativy – při návrhu řešení si projděte následující aspekty.

  • Azure Service Fabric: Pokud je vaše prostředí většinou založené na Windows a vaše úlohy jsou primárně založené na rozhraní .NET Framework a zvažujete změna architektury na .NET Core, použijte Service Fabric k podpoře a nasazení kontejnerů Windows Serveru. Service Fabric navíc podporuje rozhraní API pro programování v jazyce C# nebo Java a pro vývoj nativních mikroslužeb je možné clustery zřídit ve Windows nebo Linuxu.
  • Azure Kubernetes Service (AKS) je opensourcový projekt a orchestrační platforma vhodnější 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á abstrahuje složitost zřizování a konfigurace clusteru Kubernetes. K podpoře a údržbě platformy Kubernetes se ale vyžaduje významná znalost platformy Kubernetes, takže hostování několika kontejnerizovaných webových aplikací s jednou instancí nemusí být nejlepší volbou.

Mezi další možnosti datové vrstvy patří:

  • Azure Cosmos DB: Pokud je většina vašich dat v nerelačním formátu, je vhodná alternativa ke službě Azure Cosmos DB. Tato služba poskytuje platformu pro spouštění jiných datových modelů, jako jsou MongoDB, Cassandra, Graph data nebo jednoduché úložiště tabulek.

Důležité informace

Při práci s certifikáty ve službě App Service Environment s interním nástrojem pro vyrovnávání zatížení existují určité aspekty. Potřebujete vygenerovat certifikát, který je zřetězený do důvěryhodného kořenového adresáře, aniž byste museli vyžádat žádost o podepsání certifikátu vygenerovanou serverem, kde se certifikát nakonec uloží. V případě Internetová informační služba (IIS) je například prvním krokem vygenerování csr ze serveru IIS a jeho odeslání do certifikační autority SSL.

Z interního nástroje pro vyrovnávání zatížení (ILB) služby App Service Environment nemůžete vydat CSR. Způsob, jak toto omezení zpracovat, je použít proceduru se zástupným znakem.

Postup se zástupným znakem umožňuje místo CSR použít doklad o vlastnictví názvu DNS. Pokud vlastníte obor názvů DNS, můžete vložit speciální záznam DNS TXT, procedura se zástupnými znaménky zkontroluje, jestli záznam existuje, a pokud je nalezený, ví, že vlastníte server DNS, protože máte správný záznam. Na základě této informace vydá certifikát, který je zaregistrovaný k důvěryhodnému kořenovému adresáři, který pak můžete nahrát do interního nástroje pro vyrovnávání zatížení. S jednotlivými úložišti certifikátů ve službě Web Apps nemusíte dělat nic, protože v interním nástroji pro vyrovnávání zatížení máte důvěryhodný kořenový certifikát SSL.

Pokud chcete provádět zabezpečená volání mezi službami spuštěnými ve službě App Service Environment s interním nástrojem pro vyrovnávání zatížení, proveďte funkci certifikátu SSL podepsaného svým držitelem nebo interně vydaným certifikátem SSL. Další řešení, které byste měli zvážit , jak zajistit, aby služba App Service Environment s interním vydáním certifikátu SSL fungovala s interním certifikátem SSL a jak načíst interní certifikační autoritu do důvěryhodného kořenového úložiště.

Při zřizování služby App Service Environment zvažte následující omezení při výběru názvu domény pro prostředí. Názvy domén nemůžou být:

  • net
  • azurewebsites.net
  • p.azurewebsites.net
  • nameofthease.p.azurewebsites.net

Kromě toho se vlastní název domény používaný pro aplikace a název domény používaný službou App Service Environment s interním nástrojem pro vyrovnávání zatížení nemůže překrývat. Pro službu App Service Environment s interním nástrojem pro vyrovnávání zatížení s názvem domény contoso.com nemůžete pro své aplikace používat vlastní názvy domén, jako jsou:

  • www.contoso.com
  • abcd.def.contoso.com
  • abcd.contoso.com

Zvolte doménu pro službu App Service Environment s interním nástrojem pro vyrovnávání zatížení, která nebude v konfliktu s těmito vlastními názvy domén. V tomto příkladu můžete použít něco jako contoso-internal.com pro doménu vašeho prostředí, protože to nebude v konfliktu s názvy vlastních domén, které končí na .contoso.com.

Dalším bodem, který je potřeba vzít v úvahu, je DNS. Pokud chcete aplikacím v rámci služby App Service Environment umožnit komunikaci mezi sebou, například webovou aplikaci, která bude komunikovat s rozhraním API, budete muset mít nakonfigurovaný DNS pro vaši virtuální síť, která prostředí drží. Můžete buď použít vlastní DNS , nebo můžete použít privátní zóny Azure DNS.

Dostupnost

Škálovatelnost

Zabezpečení

  • Projděte si přehled pilíře zabezpečení.
  • Projděte si aspekty zabezpečení v příslušné referenční architektuře webové aplikace App Service.
  • Zvažte použití zabezpečeného procesu životního cyklu vývoje, 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.
  • Projděte si architekturu podrobného plánu pro dodržování předpisů Azure PCI DSS.
  • Azure DDoS Protection v kombinaci s osvědčenými postupy návrhu aplikací poskytuje vylepšené funkce pro zmírnění rizik DDoS, které poskytují větší ochranu před útoky DDoS. Službu Azure DDOS Protection byste měli povolit v jakékoli hraniční virtuální síti.

Odolnost

Nasazení tohoto scénáře

Pokud chcete tento scénář nasadit, postupujte podle tohoto podrobného kurzu , který ukazuje, jak ručně nasadit jednotlivé komponenty. Při sledování kurzu vyberte App Service Environment v3 místo v2. Tento kurz také poskytuje ukázkovou aplikaci .NET, která spouští jednoduchou aplikaci contoso expense reporting.

Ocenění

Prozkoumejte náklady na provoz tohoto scénáře. Všechny služby jsou předem nakonfigurované v kalkulačce nákladů. Pokud chcete zjistit, jak by se u konkrétního případu použití změnily ceny, změňte odpovídající proměnné tak, aby odpovídaly očekávanému provozu.

Poskytli jsme tři ukázkové profily nákladů na základě objemu provozu, který očekáváte:

  • Malý: Tento příklad cen představuje komponenty nezbytné pro minimální instanci produkční úrovně, která obsluhuje několik tisíc uživatelů za měsíc. Aplikace používá jednu instanci standardní webové aplikace, která bude stačit k povolení automatického škálování. Každá z ostatních komponent se škáluje na úroveň Basic, která minimalizuje náklady, ale stále zajišťuje podporu sla a dostatečnou kapacitu pro zpracování úloh na úrovni produkčního prostředí.
  • Střední: Tento příklad cen představuje komponenty potřebné pro nasazení střední velikosti. Tady odhadujeme přibližně 100 000 uživatelů v průběhu měsíce. Očekávaný provoz se zpracovává v jedné instanci služby App Service se střední úrovní Standard. Kromě toho se do kalkulačky přidají střední úrovně kognitivních a vyhledávacích služeb.
  • Velký: Tento příklad cen představuje aplikaci určenou pro velké škálování v řádu milionů uživatelů za měsíc a přesouvání terabajtů dat. Na této úrovni využití se vyžadují vysoce výkonné webové aplikace úrovně Premium nasazené ve více oblastech, které jsou fronty traffic managerem. Data se skládají z následujících komponent: úložiště, databáze a CDN, všechny nakonfigurované pro terabajty dat.

Přispěvatelé

Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.

Hlavní autor:

  • Faisal Mustafa | Vedoucí zákaznický inženýr

Další kroky