Nastavení omezení přístupu pro službu Azure App Service
Poznámka:
Od 1. června 2024 budou mít všechny nově vytvořené aplikace App Service možnost vygenerovat jedinečný výchozí název hostitele pomocí zásad <app-name>-<random-hash>.<region>.azurewebsites.net
vytváření názvů . Stávající názvy aplikací zůstanou beze změny.
Příklad: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Další podrobnosti najdete v tématu Jedinečný výchozí název hostitele pro prostředek služby App Service.
Nastavením omezení přístupu můžete definovat seznam povolených a zakázaných položek seřazený podle priority, který řídí síťový přístup k vaší aplikaci. Tento seznam může obsahovat IP adresy nebo podsítě Azure Virtual Network. Pokud existuje jedna nebo více položek, na konci seznamu existuje implicitní odepření . Další informace o omezeních přístupu najdete v přehledu omezení přístupu.
Funkce omezení přístupu funguje se všemi úlohami hostovanými ve službě Azure App Service. Úlohy mohou zahrnovat webové aplikace, aplikace API, linuxové aplikace, linuxové vlastní kontejnery a funkce.
Při zadání požadavku na vaši aplikaci se adresa odesilatele vyhodnotí na základě pravidel v seznamu omezení přístupu. Pokud je adresa FROM v podsíti nakonfigurované s koncovými Microsoft.Web
body služby, porovná se zdrojová podsíť s pravidly virtuální sítě v seznamu omezení přístupu. Pokud adresa nemá povolený přístup na základě pravidel v seznamu, služba odpoví stavovým kódem HTTP 403 .
Funkce omezení přístupu se implementuje v front-endových rolích služby App Service, které jsou nadřazené hostitelům pracovních procesů, na kterých běží váš kód. Omezení přístupu jsou proto v podstatě seznamy řízení přístupu k síti (ACL).
Možnost omezit přístup k webové aplikaci z virtuální sítě Azure používá koncové body služby. Pomocí koncových bodů služby můžete omezit přístup k víceklientské službě z vybraných podsítí. Omezení provozu na aplikace, které jsou hostované ve službě App Service Environment, nefunguje. Ve službě App Service Environment můžete řídit přístup k aplikaci pomocí pravidel IP adres.
Poznámka:
Koncové body služby musí být povolené na straně sítě i pro službu Azure, se kterou jsou povolené. Seznam služeb Azure, které podporují koncové body služeb, najdete v tématu Koncové body služby virtuální sítě.
Správa pravidel omezení přístupu na portálu
Pokud chcete do aplikace přidat pravidlo omezení přístupu, postupujte takto:
Přihlaste se k portálu Azure.
Vyberte aplikaci, ke které chcete přidat omezení přístupu.
V nabídce vlevo vyberte Sítě.
Na stránce Sítě v části Konfigurace příchozího provozu vyberte nastavení přístupu k veřejné síti.
Na stránce Omezení přístupu zkontrolujte seznam pravidel omezení přístupu, která jsou definovaná pro vaši aplikaci.
V seznamu se zobrazí všechna aktuální omezení použitá pro aplikaci. Pokud máte ve své aplikaci omezení virtuální sítě, zobrazí se v tabulce, jestli jsou pro Microsoft.Web povolené koncové body služby. Pokud ve vaší aplikaci nejsou definovaná žádná omezení a vaše nedotknuté pravidlo není nastavené na Odepřít, bude aplikace přístupná odkudkoli.
Oprávnění
Následující oprávnění řízení přístupu na základě role v podsíti nebo na vyšší úrovni jsou nutná ke konfiguraci omezení přístupu prostřednictvím webu Azure Portal, rozhraní příkazového řádku nebo při přímém nastavení vlastností konfigurace lokality:
Akce | Popis |
---|---|
Microsoft.Web/sites/config/read | Získání nastavení konfigurace webové aplikace |
Microsoft.Web/sites/config/write | Aktualizace nastavení konfigurace webové aplikace |
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action* | Připojí prostředek, jako je účet úložiště nebo databáze SQL, k podsíti. |
Microsoft.Web/sites/write** | Aktualizace nastavení webové aplikace |
*Vyžaduje se pouze při přidávání pravidla virtuální sítě (koncového bodu služby).
**Vyžaduje se pouze v případě, že aktualizujete omezení přístupu prostřednictvím webu Azure Portal.
Pokud přidáváte pravidlo založené na koncovém bodu služby a virtuální síť je v jiném předplatném než aplikace, musíte zajistit, aby předplatné s virtuální sítí bylo zaregistrované pro Microsoft.Web
poskytovatele prostředků. Poskytovatele můžete explicitně zaregistrovat podle této dokumentace, ale při vytváření první webové aplikace v předplatném se také automaticky zaregistruje.
Přidání pravidla omezení přístupu
Pokud chcete do aplikace přidat pravidlo omezení přístupu, vyberte na stránce Omezení přístupu možnost Přidat. Pravidlo je účinné pouze po uložení.
Pravidla se vynucují v pořadí priority počínaje nejnižším číslem ve sloupci Priorita . Pokud nenakonfigurujete nepřiřazené pravidlo, platí implicitní odepření, když přidáte i jedno pravidlo.
Při vytváření pravidla v podokně Přidat omezení přístupu postupujte takto:
V části Akce vyberte Možnost Povolit nebo Odepřít.
Volitelně můžete zadat název a popis pravidla.
Do pole Priorita zadejte hodnotu priority.
V rozevíracím seznamu Typ vyberte typ pravidla. Různé typy pravidel jsou popsány v následujících částech.
Po zadání konkrétního vstupu pravidla vyberte Přidat pravidlo , které pravidlo přidá do seznamu.
Nakonec na stránce Omezení přístupu vyberte Uložit zpět.
Poznámka:
- Existuje limit 512 pravidel omezení přístupu. Pokud potřebujete více než 512 pravidel omezení přístupu, doporučujeme zvážit instalaci samostatného produktu zabezpečení, jako je Azure Front Door, Aplikace Azure Gateway nebo alternativní WAF.
Nastavení pravidla založeného na IP adrese
Postupujte podle postupu popsaného v předchozí části, ale s následujícím přidáním:
- V kroku 4 vyberte v rozevíracím seznamu Typ protokol IPv4 nebo IPv6.
Zadejte blok IP adresy v zápisu CIDR (Classless Inter-Domain Routing) pro adresy IPv4 i IPv6. Pokud chcete zadat adresu, můžete použít něco jako 1.2.3.4/32, kde první čtyři oktety představují vaši IP adresu a /32 je maska. Zápis CIDR IPv4 pro všechny adresy je 0.0.0.0/0. Další informace o zápisu CIDR najdete v tématu Směrování mezi doménou bez tříd.
Poznámka:
Pravidla omezení přístupu na základě IP adresy zpracovávají jenom rozsahy adres virtuální sítě, když je vaše aplikace ve službě App Service Environment. Pokud je vaše aplikace ve službě s více tenanty, musíte pomocí koncových bodů služby omezit provoz na výběr podsítí ve virtuální síti.
Nastavení pravidla založeného na koncovém bodu služby
V kroku 4 vyberte v rozevíracím seznamu Typ virtuální síť.
Zadejte rozevírací seznamy předplatného, virtuální sítě a podsítě odpovídající tomu, k čemu chcete omezit přístup.
Pomocí koncových bodů služby můžete omezit přístup k vybraným podsítím virtuální sítě Azure. Pokud pro vybranou podsíť ještě nejsou povolené Microsoft.Web
koncové body služby, jsou automaticky povolené, pokud nezaškrtnete políčko Ignorovat chybějící Microsoft.Web
koncové body služby. Scénář, ve kterém můžete chtít povolit koncové body služby v aplikaci, ale ne podsíť, závisí hlavně na tom, jestli máte oprávnění k jejich povolení v podsíti.
Pokud potřebujete, aby koncový bod služby v podsíti povolil někdo jiný, zaškrtněte políčko Ignorovat chybějící koncové body služby Microsoft.Web. Vaše aplikace je nakonfigurovaná pro koncové body služby v očekávání, že je později v podsíti povolíte.
Koncové body služby nemůžete použít k omezení přístupu k aplikacím, které běží ve službě App Service Environment. Když je vaše aplikace ve službě App Service Environment, můžete k ní přistupovat pomocí pravidel přístupu IP adres.
Pomocí koncových bodů služby můžete aplikaci nakonfigurovat pomocí aplikačních bran nebo jiných zařízení firewallu webových aplikací (WAF). Můžete také nakonfigurovat vícevrstvé aplikace se zabezpečenými back-endy. Další informace najdete v tématu Síťové funkce a integrace služby App Service a Application Gateway s koncovými body služby.
Poznámka:
- Koncové body služby nejsou podporované pro webové aplikace, které používají vazby TLS/SSL založené na PROTOKOLU IP s virtuální IP adresou (VIP).
Nastavení pravidla založeného na značkách služby
V kroku 4 vyberte v rozevíracím seznamu Typ značku služby.
Všechny veřejně dostupné značky služeb jsou podporovány v pravidlech omezení přístupu. Každá značka služby představuje seznam rozsahů IP adres ze služeb Azure. Seznam těchto služeb a odkazy na konkrétní rozsahy najdete v dokumentaci ke značkám služby. Pomocí šablon Azure Resource Manageru nebo skriptování můžete nakonfigurovat pokročilejší pravidla, jako jsou místní pravidla s vymezeným oborem.
Poznámka:
Při vytváření pravidel založených na značkách služeb prostřednictvím webu Azure Portal nebo Azure CLI budete potřebovat přístup pro čtení na úrovni předplatného, abyste získali úplný seznam značek služeb pro výběr/ověření. Kromě toho Microsoft.Network
musí být poskytovatel prostředků zaregistrovaný v předplatném.
Úprava pravidla
Pokud chcete začít upravovat existující pravidlo omezení přístupu, vyberte na stránce Omezení přístupu pravidlo, které chcete upravit.
V podokně Upravit omezení přístupu proveďte změny a pak vyberte Aktualizovat pravidlo.
Změny uložíte tlačítkem Uložit.
Poznámka:
Při úpravě pravidla nemůžete přepínat mezi typy pravidel.
Odstranění pravidla
Pokud chcete pravidlo odstranit, na stránce Omezení přístupu zkontrolujte pravidlo nebo pravidla, která chcete odstranit, a pak vyberte Odstranit.
Změny uložíte tlačítkem Uložit.
Pokročilé scénáře omezení přístupu
Následující části popisují některé pokročilé scénáře s využitím omezení přístupu.
Filtrování podle hlavičky HTTP
Jako součást libovolného pravidla můžete přidat filtry hlaviček HTTP. Podporují se následující názvy hlaviček HTTP:
- X-forwarded-for
- X-forwarded-host
- X-Azure-FDID
- X-FD-HealthProbe
Pro každý název záhlaví můžete přidat až osm hodnot oddělených čárkou. Filtry hlaviček HTTP se vyhodnocují za samotným pravidlem a obě podmínky musí platit, aby pravidlo platilo.
Pravidla s více zdroji
Pravidla s více zdroji umožňují kombinovat až osm rozsahů IP adres nebo osm značek služby v jednom pravidle. Pravidla s více zdroji se používají, pokud máte více než 512 rozsahů IP adres nebo chcete vytvořit logická pravidla. Logická pravidla můžou být v kombinaci s několika rozsahy IP adres s jedním filtrem hlaviček HTTP.
Pravidla s více zdroji jsou definována stejným způsobem, jakým definujete pravidla s jedním zdrojem, ale s každou oblastí oddělenou čárkou.
Příklad PowerShellu:
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
-Name "Multi-source rule" -IpAddress "192.168.1.0/24,192.168.10.0/24,192.168.100.0/24" `
-Priority 100 -Action Allow
Blokování jedné IP adresy
Ve scénáři, ve kterém chcete explicitně blokovat jednu IP adresu nebo blok IP adres, ale povolit přístup ke všemu jinému, přidejte pravidlo odepřít pro konkrétní IP adresu a nakonfigurujte akci pravidla nedoručeného pravidla tak, aby povolovala.
Omezení přístupu k lokalitě SCM
Kromě toho, že budete moct řídit přístup k aplikaci, můžete omezit přístup k webu SCM (Rozšířený nástroj), který vaše aplikace používá. Web SCM je koncový bod nasazení webu i konzola Kudu. Omezení přístupu můžete přiřadit webu SCM z aplikace samostatně nebo použít stejnou sadu omezení pro aplikaci i web SCM. Když zaškrtnete políčko Použít pravidla hlavního webu, seznam pravidel je skrytý a používá pravidla z hlavního webu. Pokud zaškrtnutí tohoto políčka zrušíte, nastavení webu SCM se znovu zobrazí.
Omezení přístupu ke konkrétní instanci služby Azure Front Door
Provoz z Azure Front Dooru do vaší aplikace pochází z dobře známé sady rozsahů IP adres definovaných ve AzureFrontDoor.Backend
značce služby. Pomocí pravidla omezení značek služeb můžete omezit provoz jenom na to, aby pocházel pouze ze služby Azure Front Door. Pokud chcete zajistit, aby provoz pochází jenom z vaší konkrétní instance, musíte příchozí požadavky dále filtrovat na základě jedinečné hlavičky HTTP, kterou Azure Front Door odesílá.
Příklad PowerShellu:
$afd = Get-AzFrontDoor -Name "MyFrontDoorInstanceName"
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
-Name "Front Door example rule" -Priority 100 -Action Allow -ServiceTag AzureFrontDoor.Backend `
-HttpHeader @{'x-azure-fdid' = $afd.FrontDoorId}
Správa omezení přístupu prostřednictvím kódu programu
Omezení přístupu můžete spravovat prostřednictvím kódu programu. Níže najdete příklady, jak přidat pravidla pro omezení přístupu a jak změnit akci pravidla bez shody pro hlavní web i web nástrojů Advanced.
Přidání pravidel omezení přístupu pro hlavní web
Pravidla omezení přístupu pro hlavní web můžete přidat programově tak, že zvolíte jednu z následujících možností:
V Cloud Shellu můžete spustit následující příkaz. Další informace o příkazu najdete na az webapp config access-restriction
této stránce.
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name "Azure Front Door example" --action Allow --priority 200 --service-tag AzureFrontDoor.Backend \
--http-header x-azure-fdid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Přidání pravidel omezení přístupu pro web rozšířených nástrojů
Pravidla omezení přístupu pro web rozšířených nástrojů můžete přidat programově tak, že zvolíte jednu z následujících možností:
V Cloud Shellu můžete spustit následující příkaz. Další informace o příkazu najdete na az webapp config access-restriction
této stránce.
az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
--rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100 --scm-site true
Změna akce pravidla bez neshody pro hlavní web
Akci pravidla bez chybějících položek pro hlavní web můžete změnit programově tak, že zvolíte jednu z následujících možností:
V Cloud Shellu můžete spustit následující příkaz. Další informace o příkazu najdete na az resource
této stránce. Přijaté hodnoty jsou ipSecurityRestrictionsDefaultAction
Allow
nebo Deny
.
az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
--set properties.siteConfig.ipSecurityRestrictionsDefaultAction=Allow
Změna akce pravidla bez neshody pro web rozšířených nástrojů
Akciou akci pro web rozšířených nástrojů můžete programově změnit tak, že zvolíte jednu z následujících možností:
V Cloud Shellu můžete spustit následující příkaz. Další informace o příkazu najdete na az resource
této stránce. Přijaté hodnoty jsou scmIpSecurityRestrictionsDefaultAction
Allow
nebo Deny
.
az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
--set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow
Nastavení omezení přístupu ke službě Azure Functions
Omezení přístupu jsou dostupná také pro aplikace funkcí se stejnými funkcemi jako plány služby App Service. Když povolíte omezení přístupu, zakážete editor kódu webu Azure Portal také pro všechny nepovolené IP adresy.
Další kroky
Omezení přístupu pro Azure Functions
Integrace služby Application Gateway s koncovými body služby
Pokročilé scénáře omezení přístupu ve službě Aplikace Azure Service – blogový příspěvek