Řízení příchozího provozu do služby App Service Environment

Důležité

Tento článek se týká služby App Service Environment v1. Služba App Service Environment v1 bude vyřazena 31. srpna 2024. Existuje nová verze služby App Service Environment, která se snadněji používá a běží na výkonnější infrastruktuře. Další informace o nové verzi najdete v úvodu do služby App Service Environment. Pokud aktuálně používáte App Service Environment v1, postupujte podle kroků v tomto článku a proveďte migraci na novou verzi.

Od 29. ledna 2024 už nemůžete vytvářet nové prostředky služby App Service Environment verze 1 pomocí žádné z dostupných metod, včetně šablon ARM/Bicep, webu Azure Portal, Azure CLI nebo rozhraní REST API. Před 31. srpnem 2024 musíte migrovat do služby App Service Environment v3 , abyste zabránili odstranění prostředků a ztrátě dat.

Přehled

Službu App Service Environment je možné vytvořit ve virtuální síti Azure Resource Manageru nebo v klasické virtuální síti modelu nasazení. V okamžiku vytvoření služby App Service Environment je možné definovat novou virtuální síť a novou podsíť. Místo toho je možné službu App Service Environment vytvořit v existující virtuální síti a před existující podsíti. Od června 2016 je možné ase nasadit také do virtuálních sítí, které používají rozsahy veřejných adres nebo RFC1918 adresních prostorů (privátní adresy). Další informace naleznete v tématu Vytvoření ASEv1 ze šablony.

Vždy vytvořte službu App Service Environment v rámci podsítě. Podsíť poskytuje hranici sítě, kterou lze použít k uzamčení příchozího provozu za upstreamovým zařízením a službami. Toto nastavení umožňuje přijímat provoz HTTP a HTTPS pouze konkrétní nadřazené IP adresy.

Příchozí a odchozí síťový provoz v podsíti se řídí pomocí skupiny zabezpečení sítě. Pokud chcete řídit příchozí provoz, vytvořte pravidla zabezpečení sítě ve skupině zabezpečení sítě. Pak přiřaďte skupinu zabezpečení sítě podsíť obsahující službu App Service Environment.

Po přiřazení skupiny zabezpečení sítě k podsíti je příchozí provoz do aplikací ve službě App Service Environment povolený nebo zablokovaný na základě pravidel povolení a zamítnutí, která jsou definovaná ve skupině zabezpečení sítě.

Poznámka:

I když se tento článek týká webových aplikací, platí také pro aplikace API a mobilní aplikace.

Síťové porty pro příchozí spojení používané ve funkci App Service Environment

Před uzamčením příchozího síťového provozu pomocí skupiny zabezpečení sítě poznáte sadu požadovaných a volitelných síťových portů používaných službou App Service Environment. Náhodné zavření provozu na některé porty může vést ke ztrátě funkčnosti ve službě App Service Environment.

Následující seznam obsahuje porty používané službou App Service Environment. Všechny porty jsou TCP, pokud není jasně uvedeno:

  • 454: Požadovaný port používaný infrastrukturou Azure pro správu a údržbu služby App Service Environment přes protokol TLS. Neblokujte provoz na tento port. Tento port je vždy vázán na veřejnou VIRTUÁLNÍ IP adresu služby ASE.
  • 455: Požadovaný port používaný infrastrukturou Azure pro správu a údržbu služby App Service Environment přes protokol TLS. Neblokujte provoz na tento port. Tento port je vždy vázán na veřejnou VIRTUÁLNÍ IP adresu služby ASE.
  • 80: Výchozí port pro příchozí provoz HTTP do aplikací spuštěných v plánech služby App Service v app Service Environment. U služby ASE s povoleným interním nástrojem pro vyrovnávání zatížení je tento port svázán s adresou interního nástroje pro vyrovnávání zatížení služby ASE.
  • 443: Výchozí port pro příchozí provoz TLS do aplikací, které běží v plánech služby App Service v app Service Environment. U služby ASE s povoleným interním nástrojem pro vyrovnávání zatížení je tento port svázán s adresou interního nástroje pro vyrovnávání zatížení služby ASE.
  • 21: Řídicí kanál pro FTP. Tento port je možné bezpečně zablokovat, pokud se nepoužívá protokol FTP. U služby ASE s povoleným interním nástrojem pro vyrovnávání zatížení může být tento port svázán s adresou interního nástroje pro vyrovnávání zatížení služby ASE.
  • 990: Řídicí kanál pro FTPS. Tento port je možné bezpečně zablokovat, pokud se nepoužívá FTPS. U služby ASE s povoleným interním nástrojem pro vyrovnávání zatížení může být tento port svázán s adresou interního nástroje pro vyrovnávání zatížení služby ASE.
  • 10001-10020: Datové kanály pro FTP. Stejně jako u řídicího kanálu je možné tyto porty bezpečně blokovat, pokud se nepoužívá FTP. U služby ASE s povoleným interním nástrojem pro vyrovnávání zatížení může být tento port svázán s adresou interního nástroje pro vyrovnávání zatížení služby ASE.
  • 4016: Používá se pro vzdálené ladění pomocí sady Visual Studio 2012. Pokud se tato funkce nepoužívá, můžete tento port bezpečně zablokovat. U služby ASE s povoleným interním nástrojem pro vyrovnávání zatížení je tento port svázán s adresou interního nástroje pro vyrovnávání zatížení služby ASE.
  • 4018: Používá se pro vzdálené ladění pomocí sady Visual Studio 2013. Pokud se tato funkce nepoužívá, můžete tento port bezpečně zablokovat. U služby ASE s povoleným interním nástrojem pro vyrovnávání zatížení je tento port svázán s adresou interního nástroje pro vyrovnávání zatížení služby ASE.
  • 4020: Používá se pro vzdálené ladění v sadě Visual Studio 2015. Pokud se tato funkce nepoužívá, můžete tento port bezpečně zablokovat. U služby ASE s povoleným interním nástrojem pro vyrovnávání zatížení je tento port svázán s adresou interního nástroje pro vyrovnávání zatížení služby ASE.
  • 4022: Používá se pro vzdálené ladění v sadě Visual Studio 2017. Pokud se tato funkce nepoužívá, můžete tento port bezpečně zablokovat. U služby ASE s povoleným interním nástrojem pro vyrovnávání zatížení je tento port svázán s adresou interního nástroje pro vyrovnávání zatížení služby ASE.
  • 4024 Používá se pro vzdálené ladění pomocí sady Visual Studio 2019. Pokud se tato funkce nepoužívá, můžete tento port bezpečně zablokovat. U služby ASE s povoleným interním nástrojem pro vyrovnávání zatížení je tento port svázán s adresou interního nástroje pro vyrovnávání zatížení služby ASE.
  • 4026: Používá se pro vzdálené ladění pomocí sady Visual Studio 2022. Pokud se tato funkce nepoužívá, můžete tento port bezpečně zablokovat. U služby ASE s povoleným interním nástrojem pro vyrovnávání zatížení je tento port svázán s adresou interního nástroje pro vyrovnávání zatížení služby ASE.

Odchozí připojení a požadavky na DNS

Aby služba App Service Environment fungovala správně, vyžaduje také odchozí přístup k různým koncovým bodům. Úplný seznam externích koncových bodů používaných službou ASE najdete v části Požadovaná síťová Připojení ivity v článku Konfigurace sítě pro ExpressRoute.

Služba App Service Environment vyžaduje platnou infrastrukturu DNS nakonfigurovanou pro virtuální síť. Pokud se konfigurace DNS po vytvoření služby App Service Environment změní, můžou vývojáři vynutit, aby služba App Service Environment vyzvedá novou konfiguraci DNS. Pokud aktivujete restartování průběžného prostředí pomocí ikony Restartovat , prostředí převezme novou konfiguraci DNS. (Ikona restartování se nachází v horní části okna správy služby App Service Environment na webu Azure Portal.)

Před vytvořením služby App Service Environment se také doporučuje nastavit všechny vlastní servery DNS ve virtuální síti předem. Pokud se během vytváření služby App Service Environment změní konfigurace DNS virtuální sítě, proces vytvoření služby App Service Environment selže. Podobně platí, že pokud je na druhém konci brány VPN nedostupný vlastní server DNS, proces vytváření služby App Service Environment také selže.

Vytvoření skupiny zabezpečení sítě

Úplné podrobnosti o tom, jak skupiny zabezpečení sítě fungují, najdete v následujících informacích. Níže uvedený příklad správy služeb Azure se týká zvýraznění skupin zabezpečení sítě. Příklad nakonfiguruje a použije skupinu zabezpečení sítě pro podsíť, která obsahuje službu App Service Environment.

Poznámka: Skupiny zabezpečení sítě je možné nakonfigurovat graficky pomocí webu Azure Portal nebo prostřednictvím Azure PowerShellu.

Skupiny zabezpečení sítě se nejprve vytvoří jako samostatná entita přidružená k předplatnému. Vzhledem k tomu, že skupiny zabezpečení sítě se vytvářejí v oblasti Azure, vytvořte skupinu zabezpečení sítě ve stejné oblasti jako App Service Environment.

Následující příkaz ukazuje vytvoření skupiny zabezpečení sítě:

New-AzureNetworkSecurityGroup -Name "testNSGexample" -Location "South Central US" -Label "Example network security group for an app service environment"

Po vytvoření skupiny zabezpečení sítě se do ní přidá jedno nebo více pravidel zabezpečení sítě. Vzhledem k tomu, že se sada pravidel může v průběhu času měnit, měli byste vystavovat schéma číslování používané pro priority pravidel. Tento postup usnadňuje vkládání dalších pravidel v průběhu času.

V následujícím příkladu pravidlo explicitně uděluje přístup k portům pro správu potřebným infrastrukturou Azure ke správě a údržbě služby App Service Environment. Veškerý provoz správy prochází přes protokol TLS a je zabezpečený klientskými certifikáty. I když jsou porty otevřené, jsou nepřístupné jinou entitou než infrastrukturou pro správu Azure.

Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "ALLOW AzureMngmt" -Type Inbound -Priority 100 -Action Allow -SourceAddressPrefix 'INTERNET'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '454-455' -Protocol TCP

Když uzamknete přístup k portu 80 a 443 a "skryjete" službu App Service Environment za upstreamová zařízení nebo služby, zapamatujte si upstreamovou IP adresu. Pokud například používáte firewall webových aplikací (WAF), bude mít WAF svou vlastní IP adresu nebo adresy. WAF je používá při proxy přenosu do podřízeného app Service Environment. Tuto IP adresu budete muset použít v parametru SourceAddressPrefix pravidla zabezpečení sítě.

V následujícím příkladu je příchozí provoz z konkrétní nadřazené IP adresy explicitně povolený. Adresa 1.2.3.4 se používá jako zástupný symbol pro IP adresu upstreamového WAF. Změňte hodnotu tak, aby odpovídala adrese používané nadřazeným zařízením nebo službou.

Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT HTTP" -Type Inbound -Priority 200 -Action Allow -SourceAddressPrefix '1.2.3.4/32'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '80' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT HTTPS" -Type Inbound -Priority 300 -Action Allow -SourceAddressPrefix '1.2.3.4/32'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '443' -Protocol TCP

Pokud chcete podporu FTP, použijte následující pravidla jako šablonu pro udělení přístupu k portu ovládacího prvku FTP a portům datového kanálu. Vzhledem k tomu, že ftp je stavový protokol, možná nebudete moct směrovat provoz FTP přes tradiční bránu firewall HTTP/HTTPS nebo proxy zařízení. V tomto případě budete muset nastavit SourceAddressPrefix na jinou hodnotu, například rozsah IP adres vývojářských nebo nasazovacích počítačů, na kterých jsou klienti FTP spuštěni.

Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT FTPCtrl" -Type Inbound -Priority 400 -Action Allow -SourceAddressPrefix '1.2.3.4/32'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '21' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT FTPDataRange" -Type Inbound -Priority 500 -Action Allow -SourceAddressPrefix '1.2.3.4/32'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '10001-10020' -Protocol TCP

(Poznámka: Rozsah portů datového kanálu se může během období Preview změnit.)

Pokud se používá vzdálené ladění pomocí sady Visual Studio, následující pravidla ukazují, jak udělit přístup. Pro každou podporovanou verzi sady Visual Studio existuje samostatné pravidlo, protože každá verze používá pro vzdálené ladění jiný port. Stejně jako u přístupu FTP nemusí vzdálený provoz ladění správně přetékat přes tradiční WAF nebo proxy zařízení. SourceAddressPrefix je místo toho možné nastavit na rozsah IP adres počítačů vývojářů se sadou Visual Studio.

Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT RemoteDebuggingVS2012" -Type Inbound -Priority 600 -Action Allow -SourceAddressPrefix '1.2.3.4/32'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '4016' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT RemoteDebuggingVS2013" -Type Inbound -Priority 700 -Action Allow -SourceAddressPrefix '1.2.3.4/32'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '4018' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityRule -Name "RESTRICT RemoteDebuggingVS2015" -Type Inbound -Priority 800 -Action Allow -SourceAddressPrefix '1.2.3.4/32'  -SourcePortRange '*' -DestinationAddressPrefix '*' -DestinationPortRange '4020' -Protocol TCP

Přiřazení skupiny zabezpečení sítě k podsíti

Skupina zabezpečení sítě má výchozí pravidlo zabezpečení, které zakazuje přístup ke všem externím přenosům. Když toto pravidlo zkombinujete s výše uvedenými pravidly zabezpečení sítě, budou moct odesílat provoz do aplikací, které běží ve službě App Service Environment, jenom přenosy ze zdrojových rozsahů adres přidružených k akci Povolit .

Po naplnění skupiny zabezpečení sítě pravidly zabezpečení ji přiřaďte podsíti obsahující službu App Service Environment. Příkaz přiřazení odkazuje na dva názvy: název virtuální sítě, ve které je služba App Service Environment, a název podsítě, ve které byla vytvořena služba App Service Environment.

Následující příklad ukazuje skupinu zabezpečení sítě přiřazenou k podsíti a virtuální síti:

Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Set-AzureNetworkSecurityGroupToSubnet -VirtualNetworkName 'testVNet' -SubnetName 'Subnet-test'

Přiřazení je dlouhotrvající operace a dokončení může trvat několik minut. Jakmile bude přiřazení skupiny zabezpečení sítě úspěšné, budou se do aplikací ve službě App Service Environment úspěšně dostat jenom příchozí provoz, který odpovídá pravidlům Povolit .

Pro úplnost následující příklad ukazuje, jak odebrat a zrušit přidružení skupiny zabezpečení sítě z podsítě:

Get-AzureNetworkSecurityGroup -Name "testNSGexample" | Remove-AzureNetworkSecurityGroupFromSubnet -VirtualNetworkName 'testVNet' -SubnetName 'Subnet-test'

Zvláštní aspekty explicitního protokolu IP-SSL

Pokud je aplikace nakonfigurovaná s explicitní IP adresou SSL (platí jenom pro ases, které mají veřejnou VIRTUÁLNÍ IP adresu), místo použití výchozí IP adresy služby App Service Environment se provoz HTTP i HTTPS točí do podsítě přes jiné porty než porty 80 a 443.

Pokud chcete najít jednotlivé dvojice portů používaných každou adresou IP-SSL, přejděte na portál a prohlédněte si okno uživatelského prostředí s podrobnostmi služby App Service Environment. Vyberte Všechny IP adresy nastavení>. V okně IP adresy se zobrazí tabulka všech explicitně nakonfigurovaných IP-SSL adres pro službu App Service Environment. V okně se také zobrazuje speciální dvojice portů, která se používá ke směrování provozu HTTP a HTTPS přidruženého ke každé adrese IP-SSL. Tuto dvojici portů použijte pro parametry DestinationPortRange při konfiguraci pravidel ve skupině zabezpečení sítě.

Když je aplikace ve službě ASE nakonfigurovaná tak, aby používala PROTOKOL IP-SSL, externí zákazníci neuvidí nebo si nemusí dělat starosti se speciálním mapováním párů portů. Provoz do aplikací bude normálně přetékat na nakonfigurovanou IP-SSL adresu. Překlad na speciální dvojici portů se automaticky provede interně během konečného přenosu směrování do podsítě, která obsahuje službu ASE.

Začínáme

Pokud chcete začít pracovat se službou App Service Environment, přečtěte si téma Úvod do služby App Service Environment.

Další informace najdete v tématu Bezpečné připojení k back-endovým prostředkům ze služby App Service Environment.

Poznámka:

Pokud chcete začít používat službu Azure App Service před registrací k účtu Azure, přejděte k možnosti Vyzkoušet službu App Service, kde můžete okamžitě vytvořit krátkodobou úvodní webovou aplikaci. Není vyžadována platební karta a nevzniká žádný závazek.