Nastavení omezení přístupu pro službu Azure 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.Webbody 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ě.

Diagram of the flow of access restrictions.

Správa pravidel omezení přístupu na portálu

Pokud chcete do aplikace přidat pravidlo omezení přístupu, postupujte takto:

  1. Přihlaste se k portálu Azure.

  2. Vyberte aplikaci, ke které chcete přidat omezení přístupu.

  3. V nabídce vlevo vyberte Sítě.

  4. Na stránce Sítě v části Konfigurace příchozího provozu vyberte nastavení přístupu k veřejné síti.

    Screenshot of the App Service networking options page in the Azure portal.

  5. Na stránce Omezení přístupu zkontrolujte seznam pravidel omezení přístupu, která jsou definovaná pro vaši aplikaci.

    Screenshot of the Access Restrictions page in the Azure portal, showing the list of access restriction rules defined for the selected app.

    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:

  1. V části Akce vyberte Možnost Povolit nebo Odepřít.

    Screenshot of the 'Add Access Restriction' pane.

  2. Volitelně můžete zadat název a popis pravidla.

  3. Do pole Priorita zadejte hodnotu priority.

  4. V rozevíracím seznamu Typ vyberte typ pravidla. Různé typy pravidel jsou popsány v následujících částech.

  5. 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íť.

    Screenshot of the 'Add Restriction' pane with the Virtual Network type selected.

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.

    Screenshot of the 'Add Restriction' pane with the Service Tag type selected.

Všechny 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.

Úprava pravidla

  1. Pokud chcete začít upravovat existující pravidlo omezení přístupu, vyberte na stránce Omezení přístupu pravidlo, které chcete upravit.

  2. V podokně Upravit omezení přístupu proveďte změny a pak vyberte Aktualizovat pravidlo.

  3. Změny uložíte tlačítkem Uložit.

    Screenshot of the 'Edit Access Restriction' pane in the Azure portal, showing the fields for an existing access restriction rule.

    Poznámka:

    Při úpravě pravidla nemůžete přepínat mezi typy pravidel.

Odstranění pravidla

  1. Pokud chcete pravidlo odstranit, na stránce Omezení přístupu zkontrolujte pravidlo nebo pravidla, která chcete odstranit, a pak vyberte Odstranit.

  2. Změny uložíte tlačítkem Uložit.

Screenshot of the 'Access Restrictions' page, showing the 'Remove' ellipsis next to the access restriction rule to be deleted.

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.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing a single blocked IP address.

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í.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing that no access restrictions are set for the SCM site or the app.

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á.

Screenshot of the 'Access Restrictions' page in the Azure portal, showing how to add Azure Front Door restriction.

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-restrictionté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-restrictionté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 resourcetéto stránce. Přijaté hodnoty jsou ipSecurityRestrictionsDefaultActionAllow 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 resourcetéto stránce. Přijaté hodnoty jsou scmIpSecurityRestrictionsDefaultActionAllow 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