App Service síťové funkce
Aplikace můžete v Azure App Service nasadit několika způsoby. Ve výchozím nastavení jsou aplikace hostované v App Service přístupné přímo přes internet a můžou přistupovat pouze ke koncovým bodům hostovaným na internetu. U mnoha aplikací ale potřebujete řídit příchozí a odchozí síťový provoz. V App Service je několik funkcí, které vám pomůžou tyto potřeby splnit. Úkolem je vědět, kterou funkci použít k vyřešení daného problému. Tento článek vám na základě některých příkladů použití pomůže určit, kterou funkci použít.
Existují dva hlavní typy nasazení pro Azure App Service:
- Veřejná služba s více tenanty hostuje App Service plány v cenových cenách Free, Shared, Basic, Standard, Premium, PremiumV2 a PremiumV3.
- App Service Environment s jedním tenantem (ASE) hostuje izolované skladové položky App Service plány přímo ve vaší virtuální síti Azure.
Funkce, které použijete, budou záviset na tom, jestli jste ve službě s více tenanty nebo ve službě ASE.
Poznámka
Síťové funkce nejsou k dispozici pro aplikace nasazené ve službě Azure Arc.
Síťové funkce App Service s více tenanty
Azure App Service je distribuovaný systém. Role, které zpracovávají příchozí požadavky HTTP nebo HTTPS, se nazývají front-endy. Role, které hostují úlohy zákazníka, se nazývají pracovní procesy. Všechny role v App Service nasazení existují v síti s více tenanty. Vzhledem k tomu, že ve stejné jednotce škálování App Service existuje mnoho různých zákazníků, nemůžete síť App Service připojit přímo k síti.
Místo připojení sítí potřebujete funkce, které zvládnou různé aspekty komunikace aplikací. Funkce, které zpracovávají požadavky na vaši aplikaci, se nedají použít k řešení problémů při volání z aplikace. Stejně tak funkce, které řeší problémy s voláními z vaší aplikace, se nedají použít k řešení problémů s vaší aplikací.
Příchozí funkce | Odchozí funkce |
---|---|
Adresa přiřazená aplikací | Hybridní připojení |
Omezení přístupu | Integrace virtuální sítě vyžadované bránou |
Koncové body služby | Integrace virtuální sítě |
Privátní koncové body |
Kromě uvedených výjimek můžete všechny tyto funkce používat společně. Funkce můžete zkombinovat, abyste vyřešili své problémy.
Případy použití a funkce
Pro každý případ použití může existovat několik způsobů, jak problém vyřešit. Výběr nejlepší funkce někdy přesahuje samotný případ použití. Následující případy příchozího použití navrhují, jak pomocí App Service síťových funkcí vyřešit problémy s řízením provozu směřujícího do vaší aplikace:
Případ použití příchozích dat | Funkce |
---|---|
Podpora potřeb ssl na základě IP adres pro vaši aplikaci | Adresa přiřazená aplikací |
Podpora nesdílené vyhrazené příchozí adresy pro vaši aplikaci | Adresa přiřazená aplikací |
Omezení přístupu k aplikaci ze sady dobře definovaných adres | Omezení přístupu |
Omezení přístupu k aplikaci z prostředků ve virtuální síti | Koncové body služby – Interní Load Balancer (ILB) SLUŽBY ASE – privátní koncové body |
Zveřejnění aplikace na privátní IP adrese ve vaší virtuální síti | Privátní koncové body ase s interním nástrojem pro vyrovnávání zatížení Privátní IP adresa pro příchozí provoz v instanci Application Gateway s koncovými body služby |
Ochrana aplikace pomocí firewallu webových aplikací (WAF) | Application Gateway a služba ASE s interním nástrojem pro vyrovnávání zatížení Application Gateway s privátními koncovými body Application Gateway s koncovými body služby Azure Front Door s omezeními přístupu |
Vyrovnávání zatížení provozu do aplikací v různých oblastech | Azure Front Door s omezeními přístupu |
Vyrovnávání zatížení provozu ve stejné oblasti | Application Gateway s koncovými body služby |
Následující případy použití odchozích přenosů navrhují, jak pomocí App Service síťových funkcí vyřešit potřeby odchozího přístupu pro vaši aplikaci:
Případ použití odchozích přenosů | Funkce |
---|---|
Přístup k prostředkům ve virtuální síti Azure ve stejné oblasti | Služba ASE s integrací virtuální sítě |
Přístup k prostředkům ve virtuální síti Azure v jiné oblasti | Integrace virtuálních sítí a partnerský vztah virtuálních sítí – integrace virtuální sítě s využitím služby ASE a partnerského vztahu virtuálních sítí vyžadovaných bránou |
Přístup k prostředkům zabezpečeným pomocí koncových bodů služby | Integrace virtuální sítě ASE |
Přístup k prostředkům v privátní síti, která není připojená k Azure | Hybridní připojení |
Přístup k prostředkům napříč okruhy Azure ExpressRoute | Integrace virtuální sítě ASE |
Zabezpečení odchozích přenosů z webové aplikace | Integrace virtuální sítě a skupiny zabezpečení sítě ASE |
Směrování odchozího provozu z webové aplikace | Integrace virtuální sítě a směrovací tabulky ASE |
Výchozí chování sítě
Azure App Service jednotky škálování podporují v každém nasazení mnoho zákazníků. Plány SKU Free a Shared hostují úlohy zákazníků v pracovních prostředích s více tenanty. Plány Basic a vyšší hostují úlohy zákazníků, které jsou vyhrazené pouze pro jeden plán App Service. Pokud máte plán Standard App Service, budou všechny aplikace v daném plánu běžet ve stejném pracovním procesu. Pokud škálujete pracovní proces na více instancí, všechny aplikace v tomto App Service plánu se replikují do nového pracovního procesu pro každou instanci v plánu App Service.
Odchozí adresy
Pracovní virtuální počítače jsou z velké části rozdělené podle plánů App Service. Všechny plány Free, Shared, Basic, Standard a Premium používají stejný typ pracovního virtuálního počítače. Plán PremiumV2 používá jiný typ virtuálního počítače. PremiumV3 používá ještě jiný typ virtuálního počítače. Když změníte řadu virtuálních počítačů, získáte jinou sadu odchozích adres. Pokud škálujete ze standardu na PremiumV2, vaše odchozí adresy se změní. Pokud škálujete z PremiumV2 na PremiumV3, vaše odchozí adresy se změní. V některých starších jednotkách škálování se při škálování ze standardu na PremiumV2 změní příchozí i odchozí adresa.
Existuje mnoho adres, které se používají pro odchozí volání. Odchozí adresy používané vaší aplikací pro odchozí volání jsou uvedené ve vlastnostech vaší aplikace. Tyto adresy sdílí všechny aplikace spuštěné ve stejné řadě pracovních virtuálních počítačů v nasazení App Service. Pokud chcete zobrazit všechny adresy, které vaše aplikace může v jednotce škálování používat, zobrazí se jejich seznam vlastnost s názvem possibleOutboundAddresses
.
App Service má mnoho koncových bodů, které slouží ke správě služby. Tyto adresy jsou publikovány v samostatném dokumentu a jsou také ve AppServiceManagement
značce služby IP. Značka se AppServiceManagement
používá jenom v prostředích App Service, kde je potřeba takový provoz povolit. App Service příchozí adresy se sledují ve značce AppService
služby IP. Neexistuje žádná značka služby IP, která obsahuje odchozí adresy používané App Service.
Adresa přiřazená aplikací
Funkce adresy přiřazená aplikací je odsunutím funkce SSL na základě PROTOKOLU IP. Dostanete se k němu nastavením SSL ve vaší aplikaci. Tuto funkci můžete použít pro volání SSL na základě PROTOKOLU IP. Můžete ho také použít k tomu, abyste aplikaci zadali adresu, kterou má jenom ona.
Když použijete adresu přiřazenou aplikací, provoz stále prochází stejnými front-endovými rolemi, které zpracovávají veškerý příchozí provoz do jednotky škálování App Service. Ale adresu, která je přiřazená vaší aplikaci, používá jenom vaše aplikace. Případy použití pro tuto funkci:
- Podpora potřeb PROTOKOLU SSL na základě IP adres pro vaši aplikaci
- Nastavte pro aplikaci vyhrazenou adresu, která není sdílená.
Informace o nastavení adresy v aplikaci najdete v tématu Přidání certifikátu TLS/SSL v Azure App Service.
Omezení přístupu
Omezení přístupu umožňují filtrovat příchozí požadavky. Akce filtrování se provádí u front-endových rolí, které jsou nadřazené rolím pracovního procesu, ve kterých jsou aplikace spuštěné. Vzhledem k tomu, že front-endové role jsou nadřazené pracovníkům, můžete si omezení přístupu představit jako ochranu na úrovni sítě pro vaše aplikace. Další informace o omezeních přístupu najdete v tématu Přehled omezení přístupu.
Tato funkce umožňuje vytvořit seznam pravidel povolení a zamítnutí, která se vyhodnocují v pořadí podle priority. Podobá se funkci skupiny zabezpečení sítě (NSG) v sítích Azure. Tuto funkci můžete použít ve službě ASE nebo ve službě s více tenanty. Když ho použijete se službou ASE s interním nástrojem pro vyrovnávání zatížení, můžete omezit přístup z bloků privátních adres. Informace o tom, jak tuto funkci povolit, najdete v tématu Konfigurace omezení přístupu.
Poznámka
Pro každou aplikaci je možné nakonfigurovat až 512 pravidel omezení přístupu.
Privátní koncový bod
Privátní koncový bod je síťové rozhraní, které vás soukromě a bezpečně připojí k vaší webové aplikaci pomocí privátního propojení Azure. Privátní koncový bod používá privátní IP adresu z vaší virtuální sítě a efektivně přenese webovou aplikaci do vaší virtuální sítě. Tato funkce je určená jenom pro příchozí toky do webové aplikace. Další informace najdete v tématu Použití privátních koncových bodů pro webovou aplikaci Azure.
Některé případy použití pro tuto funkci:
- Omezte přístup k aplikaci z prostředků ve virtuální síti.
- Vystavte aplikaci na privátní IP adresu ve vaší virtuální síti.
- Chraňte svou aplikaci pomocí WAF.
Privátní koncové body brání exfiltraci dat, protože jediná věc, kterou můžete v rámci privátního koncového bodu získat, je aplikace, se kterou je nakonfigurovaná.
Hybridní připojení
App Service Hybridní připojení umožňují vašim aplikacím provádět odchozí volání do zadaných koncových bodů PROTOKOLU TCP. Koncový bod může být místní, ve virtuální síti nebo kdekoli, kde je možné odchozí provoz do Azure na portu 443. Abyste mohli tuto funkci používat, musíte na Windows Server 2012 nebo novějšího hostitele nainstalovat agenta přenosu s názvem Správce hybridního připojení. Správce hybridního připojení musí mít přístup ke službě Azure Relay na portu 443. Správce hybridního připojení si můžete stáhnout z uživatelského rozhraní App Service Hybrid Connections na portálu.
App Service Hybridní připojení jsou založená na funkci Hybridní připojení Služby Azure Relay. App Service používá specializovanou formu funkce, která podporuje pouze odchozí volání z vaší aplikace na hostitele a port TCP. Tento hostitel a port je potřeba vyřešit pouze na hostiteli, na kterém je nainstalovaný Správce hybridního připojení.
Když aplikace v App Service vyhledá DNS na hostiteli a portu definovaném ve vašem hybridním připojení, provoz se automaticky přesměruje na hybridní připojení a Správce hybridního připojení. Další informace najdete v tématu App Service hybridní připojení.
Tato funkce se běžně používá k:
- Přístup k prostředkům v privátních sítích, které nejsou připojené k Azure pomocí sítě VPN nebo ExpressRoute.
- Podpora migrace místních aplikací do App Service bez nutnosti přesunu podpůrných databází
- Zajištění přístupu s vylepšeným zabezpečením k jednomu hostiteli a portu na hybridní připojení Většina síťových funkcí otevírá přístup k síti. S hybridními připojeními se můžete spojit pouze s jedním hostitelem a portem.
- Pokryjte scénáře, které nejsou pokryté jinými metodami odchozího připojení.
- Provádějte vývoj v App Service způsobem, který aplikacím umožňuje snadno používat místní prostředky.
Vzhledem k tomu, že tato funkce umožňuje přístup k místním prostředkům bez vstupního otvoru brány firewall, je oblíbená u vývojářů. Ostatní odchozí App Service síťové funkce souvisejí s Azure Virtual Network. Hybridní připojení nezávisí na procházení virtuální sítě. Dá se použít pro širší škálu síťových potřeb.
App Service Hybridní připojení neví, co děláte. Můžete ho tedy použít pro přístup k databázi, webové službě nebo libovolnému soketu TCP v sálovém počítači. Tato funkce v podstatě tuneluje pakety TCP.
Hybridní připojení jsou oblíbená pro vývoj, ale používají se také v produkčních aplikacích. Je skvělý pro přístup k webové službě nebo databázi, ale není vhodný pro situace, kdy se vytváří velké množství připojení.
Integrace virtuální sítě
App Service integrace virtuální sítě umožňuje vaší aplikaci provádět odchozí požadavky do virtuální sítě Azure.
Funkce integrace virtuální sítě umožňuje umístit back-end aplikace do podsítě ve Resource Manager virtuální síti. Virtuální síť musí být ve stejné oblasti jako vaše aplikace. Tato funkce není dostupná v App Service Environment, která už je ve virtuální síti. Případy použití pro tuto funkci:
- Přístup k prostředkům ve Resource Manager virtuálních sítích ve stejné oblasti.
- Přístup k prostředkům v partnerských virtuálních sítích, včetně připojení mezi oblastmi.
- Přístup k prostředkům zabezpečeným pomocí koncových bodů služby
- Přístup k prostředkům, které jsou přístupné přes ExpressRoute nebo připojení VPN.
- Přístup k prostředkům v privátních sítích bez nutnosti a nákladů na bránu Virtual Network.
- Pomoc se zabezpečením veškerého odchozího provozu
- Vynuťte tunelování všech odchozích přenosů.
Další informace najdete v tématu integrace App Service virtuální sítě.
Integrace virtuální sítě vyžadované bránou
Integrace virtuální sítě vyžadovaná bránou byla první edicí integrace virtuální sítě v App Service. Funkce funguje tak, že připojí hostitele, na kterém je vaše aplikace spuštěná, k Virtual Network bráně ve virtuální síti pomocí sítě VPN typu point-to-site. Když tuto funkci nakonfigurujete, aplikace získá jednu z adres přiřazených mezi jednotlivými instancemi.
Požadovaná integrace brány umožňuje připojit se přímo k virtuální síti v jiné oblasti bez partnerského vztahu a připojit se ke klasické virtuální síti. Tato funkce je omezená na App Service plány Windows a nefunguje s virtuálními sítěmi připojenými k ExpressRoute. Doporučuje se použít integraci regionální virtuální sítě. Další informace o této funkci najdete v tématu integrace App Service virtuální sítě.
App Service Environment
App Service Environment (ASE) je nasazení Azure App Service s jedním tenantem, které běží ve vaší virtuální síti. V některých případech například pro tuto funkci:
- Přístup k prostředkům ve virtuální síti
- Přístup k prostředkům v ExpressRoute
- Zpřístupněte své aplikace pomocí privátní adresy ve vaší virtuální síti.
- Přístup k prostředkům napříč koncovými body služby
- Přístup k prostředkům napříč privátními koncovými body
Se službou ASE nemusíte používat integraci virtuální sítě, protože služba ASE už je ve vaší virtuální síti. Pokud chcete získat přístup k prostředkům, jako je SQL nebo Azure Storage, přes koncové body služby, povolte koncové body služby v podsíti ASE. Pokud chcete získat přístup k prostředkům ve virtuální síti nebo privátním koncovým bodům ve virtuální síti, nemusíte provádět žádnou další konfiguraci. Pokud chcete získat přístup k prostředkům přes ExpressRoute, už jste ve virtuální síti a nemusíte ve službě ASE ani v aplikacích v ní nic konfigurovat.
Vzhledem k tomu, že aplikace ve službě ASE s interním nástrojem pro vyrovnávání zatížení můžou být vystavené na privátní IP adrese, můžete snadno přidat zařízení WAF a zpřístupnit na internetu jenom aplikace, které chcete, a zajistit zabezpečení ostatních. Tato funkce může usnadnit vývoj vícevrstvých aplikací.
Některé věci nejsou v současné době možné z víceklientů, ale jsou možné z ASE. Tady je několik příkladů:
- Hostování aplikací ve službě s jedním tenantem
- Vertikálně navyšte kapacitu na mnohem více instancí, než je možné ve službě s více tenanty.
- Načtěte certifikáty klientů privátní certifikační autority, které budou vaše aplikace používat s koncovými body zabezpečenými privátní certifikační autoritou.
- Vynucujte protokol TLS 1.2 ve všech aplikacích hostovaných v systému, aniž byste ho mohli zakázat na úrovni aplikace.
Služba ASE nabízí nejlepší informace o izolovaném a vyhrazeném hostování aplikací, ale zahrnuje některé problémy se správou. Před použitím provozní služby ASE je potřeba zvážit několik věcí:
- Služba ASE běží ve vaší virtuální síti, ale má závislosti mimo virtuální síť. Tyto závislosti musí být povolené. Další informace najdete v tématu Důležité informace o sítích pro App Service Environment.
- Služba ASE se škáluje okamžitě jako služba s více tenanty. Je potřeba předpovědět potřeby škálování, nikoli reaktivně škálovat.
- Služba ASE má vyšší počáteční náklady. Pokud chcete využít službu ASE na maximum, měli byste si naplánovat, že do jedné služby ASE vložíte mnoho úloh, a nebudete ji používat pro malé úsilí.
- Aplikace ve službě ASE nemůžou selektivně omezit přístup k některým aplikacím ve službě ASE a k jiným ne.
- Služba ASE je v podsíti a veškerá síťová pravidla platí pro veškerý provoz do a z této služby ASE. Pokud chcete přiřadit pravidla příchozího provozu jenom pro jednu aplikaci, použijte omezení přístupu.
Kombinování funkcí
Funkce uvedené pro službu s více tenanty je možné použít společně k řešení složitějších případů použití. Tady jsou popsané dva z nejběžnějších případů použití, ale to jsou jenom příklady. Díky pochopení toho, co různé funkce dělají, můžete splnit téměř všechny požadavky na architekturu systému.
Umístění aplikace do virtuální sítě
Možná vás zajímá, jak umístit aplikaci do virtuální sítě. Pokud aplikaci umístíte do virtuální sítě, budou příchozí a odchozí koncové body aplikace ve virtuální síti. Nejlepší způsob, jak tento problém vyřešit, je služba ASE. Většinu svých potřeb v rámci služby s více tenanty ale můžete splnit kombinováním funkcí. Můžete například hostovat intranetové aplikace s privátními příchozími a odchozími adresami pomocí:
- Vytvoření služby Application Gateway s privátními příchozími a odchozími adresami
- Zabezpečení příchozího provozu do aplikace pomocí koncových bodů služby
- Pomocí funkce integrace virtuální sítě, aby byl back-end vaší aplikace ve vaší virtuální síti.
Tento styl nasazení vám nedá vyhrazenou adresu pro odchozí provoz do internetu ani možnost uzamknout veškerý odchozí provoz z vaší aplikace. Získáte tak velkou část toho, co byste jinak získali s ase.
Vytváření vícevrstvých aplikací
Vícevrstvé aplikace je aplikace, ve které je možné k back-endovým aplikacím rozhraní API přistupovat pouze z front-endové vrstvy. Existují dva způsoby, jak vytvořit vícevrstvé aplikace. Obě začínají pomocí integrace virtuální sítě pro připojení front-endové webové aplikace k podsíti ve virtuální síti. Tím umožníte vaší webové aplikaci volat do vaší virtuální sítě. Po připojení front-endové aplikace k virtuální síti se musíte rozhodnout, jak uzamknout přístup k aplikaci API. Můžete:
- Hostujte front-end i aplikaci API ve stejné službě ASE s interním nástrojem pro vyrovnávání zatížení a vystavte front-endovou aplikaci na internet pomocí aplikační brány.
- Hostujte front-end ve službě s více tenanty a back-end ve službě ASE s interním nástrojem pro vyrovnávání zatížení.
- Hostujte front-end i aplikaci API ve službě s více tenanty.
Pokud hostujete front-end i aplikaci API pro vícevrstvé aplikace, můžete:
Zveřejnění aplikace API pomocí privátních koncových bodů ve vaší virtuální síti:
Pomocí koncových bodů služby zajistíte, že příchozí provoz do aplikace API přichází jenom z podsítě používané vaší front-endovou webovou aplikací:
Tady je několik důležitých aspektů, které vám pomůžou při rozhodování, kterou metodu použít:
- Když používáte koncové body služby, potřebujete jenom zabezpečit provoz do aplikace API do podsítě integrace. Koncové body služby pomáhají zabezpečit aplikaci API, ale stále můžete mít exfiltraci dat z front-endové aplikace do jiných aplikací ve službě App Service.
- Když používáte privátní koncové body, máte ve hře dvě podsítě, což zvyšuje složitost. Privátní koncový bod je také prostředek nejvyšší úrovně a zvyšuje režii správy. Výhodou používání privátních koncových bodů je, že nemáte možnost exfiltrace dat.
Obě metody budou fungovat s více front-endy. V malém měřítku se koncové body služby snadněji používají, protože jednoduše povolíte koncové body služby pro aplikaci API v podsíti integrace front-endu. Při přidávání dalších front-endových aplikací je potřeba upravit každou aplikaci API tak, aby zahrnovala koncové body služby s podsítí integrace. Když používáte privátní koncové body, je to složitější, ale po nastavení privátního koncového bodu nemusíte v aplikacích API nic měnit.
Obchodní aplikace
Obchodní aplikace (LOB) jsou interní aplikace, které nejsou obvykle zpřístupněny pro přístup z internetu. Tyto aplikace se volají z podnikových sítí, kde je možné přístup přísně kontrolovat. Pokud používáte službu ASE s interním nástrojem pro vyrovnávání zatížení, je snadné hostovat obchodní aplikace. Pokud používáte službu s více tenanty, můžete buď použít privátní koncové body, nebo koncové body služby v kombinaci se službou Application Gateway. Existují dva důvody, proč používat službu Application Gateway s koncovými body služby místo privátních koncových bodů:
- U obchodních aplikací potřebujete ochranu WAF.
- Chcete vyrovnávat zatížení do více instancí obchodních aplikací.
Pokud ani jedno z těchto požadavků neplatí, budete raději používat privátní koncové body. S privátními koncovými body dostupnými v App Service můžete své aplikace vystavit na privátních adresách ve virtuální síti. Privátní koncový bod, který umístíte do virtuální sítě, je dostupný přes ExpressRoute a připojení VPN.
Konfigurace privátních koncových bodů zpřístupní vaše aplikace na privátní adrese, ale budete muset nakonfigurovat DNS tak, aby se k této adrese dostala z místního prostředí. Aby tato konfigurace fungovala, budete muset předat privátní zónu Azure DNS, která obsahuje vaše privátní koncové body, na místní servery DNS. Privátní zóny Azure DNS nepodporují přeposílání zón, ale můžete ho podporovat pomocí privátního překladače Azure DNS.
App Service porty
Pokud prohledáte App Service, najdete několik portů, které jsou vystavené pro příchozí připojení. Ve službě s více tenanty neexistuje žádný způsob, jak blokovat nebo řídit přístup k těmto portům. Tady je seznam vystavených portů:
Použití | Port nebo porty |
---|---|
HTTP/HTTPS | 80, 443 |
Správa | 454, 455 |
FTP/FTPS | 21, 990, 10001-10300 |
Vzdálené ladění sady Visual Studio | 4020, 4022, 4024 |
Služba Nasazení webu | 8172 |
Použití infrastruktury | 7654, 1221 |