Sdílet prostřednictvím


Implementace vrstvené architektury zabezpečení pomocí služby App Service Environment

Důležité

Tento článek se týká služby App Service Environment v1. App Service Environment verze 1 a v2 se od 31. srpna 2024 vyřadí z provozu. 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 31. srpna 2024 se kredity sla (Service Level Agreement) a Service Credits již nevztahují na úlohy služby App Service Environment verze 1 a v2, které jsou nadále v produkčním prostředí, protože jsou vyřazené produkty. Vyřazování hardwaru služby App Service Environment v1 a v2 začalo a to může mít vliv na dostupnost a výkon vašich aplikací a dat.

Migraci do služby App Service Environment v3 musíte dokončit okamžitě nebo se můžou odstranit vaše aplikace a prostředky. Pokusíme se automaticky migrovat všechny zbývající služby App Service Environment v1 a v2 s využitím funkce místní migrace, ale Microsoft po automatické migraci neposkytuje žádné nároky ani záruky týkající se dostupnosti aplikací. Možná budete muset provést ruční konfiguraci pro dokončení migrace a optimalizovat výběr skladové položky plánu služby App Service tak, aby vyhovovala vašim potřebám. Pokud automatická migrace není proveditelná, odstraní se vaše prostředky a přidružená data aplikací. Důrazně vás vyzýváme, abyste se vyhnuli některým z těchto extrémních scénářů.

Pokud potřebujete další čas, můžeme vám nabídnout jednorázovou 30denní lhůtu pro dokončení migrace. Pokud potřebujete další informace a požádat o toto období odkladu, projděte si přehled období odkladu a pak přejděte na web Azure Portal a přejděte do okna Migrace pro každou službu App Service Environment.

Nejaktuálnější informace o vyřazení služby App Service Environment v1/v2 najdete v aktualizaci vyřazení služby App Service Environment v1 a v2.

Vzhledem k tomu, že služba App Service Environment poskytuje izolované běhové prostředí nasazené do virtuální sítě, můžou vývojáři vytvořit vrstvenou architekturu zabezpečení poskytující různé úrovně síťového přístupu pro každou fyzickou aplikační vrstvu.

Běžnou tíhou je skrýt back-endy rozhraní API před obecným přístupem k internetu a povolit volání rozhraní API pouze upstreamovými webovými aplikacemi. Skupiny zabezpečení sítě (NSG) je možné použít v podsítích obsahujících službu App Service Environment k omezení veřejného přístupu k aplikacím API.

Následující diagram znázorňuje ukázkovou architekturu s aplikací založenou na webAPI nasazenou ve službě App Service Environment. Tři samostatné instance webových aplikací nasazené ve třech samostatných prostředích App Service Environment umožňují volání back-endu do stejné aplikace WebAPI.

Koncepční architektura

Zelené znaménko plus označuje, že skupina zabezpečení sítě v podsíti obsahující "apiase" umožňuje příchozí volání z upstreamových webových aplikací a také volání ze samotného. Stejná skupina zabezpečení sítě však explicitně odmítne přístup k obecnému příchozímu provozu z internetu.

Zbývající část tohoto článku vás provede kroky potřebnými ke konfiguraci skupiny zabezpečení sítě v podsíti obsahující "apiase".

Určení chování sítě

Abyste věděli, jaká pravidla zabezpečení sítě jsou potřeba, musíte určit, kteří síťová klienti budou mít povolený přístup ke službě App Service Environment obsahující aplikaci API a kteří klienti jsou blokovaní.

Vzhledem k tomu, že skupiny zabezpečení sítě (NSG) se použijí na podsítě a služba App Service Environment se nasadí do podsítí, pravidla obsažená ve skupině zabezpečení sítě se vztahují na všechny aplikace spuštěné ve službě App Service Environment. Když použijete ukázkovou architekturu pro tento článek, po použití skupiny zabezpečení sítě na podsíť obsahující "apiase" budou všechny aplikace spuštěné v prostředí App Service Environment "apiase" chráněny stejnou sadou pravidel zabezpečení.

  • Určení odchozí IP adresy upstreamových volajících: Jaká je IP adresa nebo adresy upstreamových volajících? Tyto adresy musí být explicitně povolené přístupy ve skupině zabezpečení sítě. Vzhledem k tomu, že volání mezi službami App Service Environment se považují za "internetová" volání, musí být odchozí IP adresa přiřazená ke každé ze tří nadřazených prostředí App Service Environment povolený přístup v NSG pro podsíť "apiase". Další informace o určení odchozí IP adresy pro aplikace spuštěné ve službě App Service Environment najdete v článku Přehled architektury sítě.
  • Bude se muset back-endová aplikace API volat sama sobě? Někdy je přehlédnutelný a jemný bod scénáře, kdy se back-endová aplikace musí volat sama. Pokud se back-endová aplikace rozhraní API ve službě App Service Environment musí volat sama sebe, považuje se také za volání "internet". V ukázkové architektuře to vyžaduje také povolení přístupu z odchozí IP adresy služby App Service Environment "apiase".

Nastavení skupiny zabezpečení sítě

Jakmile je známa sada odchozích IP adres, dalším krokem je vytvoření skupiny zabezpečení sítě. Skupiny zabezpečení sítě je možné vytvořit pro virtuální sítě založené na Resource Manageru i pro klasické virtuální sítě. Následující příklady ukazují vytvoření a konfiguraci skupiny zabezpečení sítě v klasické virtuální síti pomocí PowerShellu.

Pro ukázkovou architekturu se prostředí nacházejí v oblasti USA – středojiž, takže se v této oblasti vytvoří prázdná skupina zabezpečení sítě:

New-AzureNetworkSecurityGroup -Name "RestrictBackendApi" -Location "South Central US" 
-Label "Only allow web frontend and loopback traffic"

Nejprve se přidá explicitní pravidlo povolení pro infrastrukturu pro správu Azure, jak je uvedeno v článku o příchozím provozu ve službě App Service Environment.

#Open ports for access by Azure management infrastructure
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW AzureMngmt" 
-Type Inbound -Priority 100 -Action Allow -SourceAddressPrefix 'INTERNET' -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '454-455' -Protocol TCP

Dále se přidají dvě pravidla, která povolí volání HTTP a HTTPS z prvního upstreamového služby App Service Environment ("fe1ase").

#Grant access to requests from the first upstream web front-end
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW HTTP fe1ase" 
-Type Inbound -Priority 200 -Action Allow -SourceAddressPrefix '65.52.xx.xyz'  -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '80' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW HTTPS fe1ase" 
-Type Inbound -Priority 300 -Action Allow -SourceAddressPrefix '65.52.xx.xyz'  -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '443' -Protocol TCP

Proplachujte a opakujte pro druhou a třetí upstreamovou službu App Service Environment ("fe2ase" a "fe3ase").

#Grant access to requests from the second upstream web front-end
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW HTTP fe2ase" 
-Type Inbound -Priority 400 -Action Allow -SourceAddressPrefix '191.238.xyz.abc'  -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '80' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW HTTPS fe2ase" 
-Type Inbound -Priority 500 -Action Allow -SourceAddressPrefix '191.238.xyz.abc'  -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '443' -Protocol TCP

#Grant access to requests from the third upstream web front-end
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW HTTP fe3ase" 
-Type Inbound -Priority 600 -Action Allow -SourceAddressPrefix '23.98.abc.xyz'  -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '80' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW HTTPS fe3ase" 
-Type Inbound -Priority 700 -Action Allow -SourceAddressPrefix '23.98.abc.xyz'  -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '443' -Protocol TCP

Nakonec udělte přístup k odchozí IP adrese služby App Service Environment back-endového rozhraní API, aby mohl volat zpět do sebe.

#Allow apps on the apiase environment to call back into itself
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW HTTP apiase" 
-Type Inbound -Priority 800 -Action Allow -SourceAddressPrefix '70.37.xyz.abc'  -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '80' -Protocol TCP
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityRule -Name "ALLOW HTTPS apiase" 
-Type Inbound -Priority 900 -Action Allow -SourceAddressPrefix '70.37.xyz.abc'  -SourcePortRange '*' 
-DestinationAddressPrefix '*' -DestinationPortRange '443' -Protocol TCP

Nejsou vyžadována žádná další pravidla zabezpečení sítě, protože každá skupina zabezpečení sítě má ve výchozím nastavení sadu výchozích pravidel, která blokují příchozí přístup z internetu.

Zobrazí se úplný seznam pravidel ve skupině zabezpečení sítě. Všimněte si, že poslední pravidlo, které je zvýrazněné, blokuje příchozí přístup ze všech volajících, kromě volajících, kteří mají explicitně udělený přístup.

Konfigurace NSG

Posledním krokem je použití skupiny zabezpečení sítě na podsíť, která obsahuje službu App Service Environment "apiase".

#Apply the NSG to the backend API subnet
Get-AzureNetworkSecurityGroup -Name "RestrictBackendApi" | Set-AzureNetworkSecurityGroupToSubnet 
-VirtualNetworkName 'yourvnetnamehere' -SubnetName 'API-ASE-Subnet'

Když je skupina zabezpečení sítě použitá pro podsíť, můžou se do prostředí apiase volat pouze tři upstreamová prostředí App Service Environment a služba App Service Environment obsahující back-end rozhraní API.

Informace o skupinách zabezpečení sítě

Vysvětlení odchozích IP adres a prostředí App Service Environment

Síťové porty používané službou 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.