Sdílet prostřednictvím


Nastavení omezení přístupu pro službu Azure App Service

Když nastavíte omezení přístupu, můžete definovat seznam povolených/zamítnutých, uspořádaný podle priority, který kontroluje přístup sítě 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 implicitně existuje odepření všeho. Další informace najdete v tématu Omezení přístupu ke službě Azure App Service.

Funkce omezení přístupu funguje se všemi úlohami hostovanými ve službě Azure App Service. Pracovní zátěže mohou zahrnovat webové aplikace, API aplikace, Linuxové aplikace, zakázkové kontejnery Linux a aplikace Azure Functions.

Když někdo podá žádost vaší aplikaci, adresa FROM je vyhodnocena podle pravidel ve vašem seznamu omezení přístupu. Pokud je adresa FROM v podsíti konfigurované se servisními koncovými body na Microsoft.Web, je zdrojová podsíť porovnána s pravidly virtuální sítě v seznamu vašich omezení přístupu. Pokud adresa není povolena k přístupu 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.

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 aktivovány jak na straně síťové infrastruktury, tak i pro službu Azure, s níž jsou aktivovány. Seznam služeb Azure, které podporují koncové body služeb, najdete v tématu Koncové body služby virtuální sítě.

Diagram, který ukazuje tok omezení přístupu.

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

Přidání pravidla omezení přístupu do aplikace:

  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 Nastavení>Sítě.

  4. Na panelu Síť, v části Konfigurace příchozího provozu, vyberte nastavení Veřejný přístup k síti.

    Snímek obrazovky panelu možností sítě App Service v Azure portálu.

  5. Na panelu Omezení přístupů si překontrolujte seznam pravidel omezení přístupu, které jsou definovány pro vaši aplikaci.

    Snímek obrazovky z podokna

    Seznam zobrazuje omezení, která jsou aktuálně aplikována na aplikaci. Pokud má vaše aplikace omezení virtuální sítě, tabulka ukazuje, zda jsou koncové body služby pro Microsoft.Web povoleny. 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í

Musíte mít následující oprávnění pro řízení přístupu založené na rolích na podsíti nebo na vyšší úrovni, abyste mohli konfigurovat omezení přístupu prostřednictvím Azure portálu, CLI nebo když nastavíte přímo vlastnosti site config.

Akce Popis
Microsoft.Web/sites/config/read Získá nastavení konfigurace webové aplikace.
Microsoft.Web/sites/config/write Aktualizuje nastavení konfigurace webové aplikace.
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action* Připojuje prostředky, jako je úložiště nebo databáze SQL, k podsíti.
Microsoft.Web/sites/write** Aktualizuje nastavení webové aplikace.

*Vyžadováno pouze při přidání pravidla virtuální sítě (koncový bod služby)

**Povinné pouze v případě, že aktualizujete omezení přístupu prostřednictvím portálu Azure

Pokud přidáte pravidlo založené na koncovém bodu služby a virtuální síť je v jiné předplatné než aplikace, ujistěte se, že předplatné s virtuální sítí je zaregistrováno pro poskytovatele prostředků Microsoft.Web. Můžete explicitně zaregistrovat poskytovatele, ale také je automaticky zaregistrován při vytvoření první webové aplikace v rámci předplatného. Pro více informací viz Zaregistrovat poskytovatele prostředků.

Přidání pravidla omezení přístupu

Chcete-li přidat pravidlo pro omezení přístupu do vaší aplikace, na panelu Omezení přístupu vyberte Přidat. Pravidlo je účinné až potom, co ho uložíte.

Pravidla se vynucují v pořadí priority od nejnižšího čísla ve sloupci Priorita . Pokud nekonfigurujete nepřiřazené pravidlo, implicitní 'deny all' je v platnosti, když přidáte 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.
  2. Zadejte název a popis pravidla (volitelné).
  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. Zadejte vstup specifický pro pravidlo. Vyberte Add rule a přidejte pravidlo do seznamu.
  6. Vyberte Save na panelu Access Restrictions.

Poznámka:

Existuje limit 512 pravidel omezení přístupu. Pokud potřebujete více než 512 pravidel omezení přístupu, doporučujeme zvážit samostatný produkt zabezpečení. Zvažte Azure Front Door, Azure Application Gateway nebo jiný firewall pro webové aplikace (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:

  • Ve čtvrtém kroku v rozevíracím seznamu Typ vyberte IPv4 nebo IPv6.

Zadejte blok IP adres ve formátu beztřídového směrování mezi doménami (CIDR) pro obě adresy IPv4 a IPv6. Pro zadání adresy 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. Notace IPv4 CIDR pro všechny adresy je 0.0.0.0/0.

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 v multitenantní službě, musíte použít koncové body služby k omezení provozu na vybrané podsítě ve vaší 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íť.

    Snímek obrazovky panelu Přidat omezení s vybraným typem virtuální sítě.

Určete rozevírací seznamy předplatného, virtuální sítě a podsítě, které odpovídají 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 koncové body služby již nejsou povolené s Microsoft.Web pro podsíť, kterou zvolíte, budou automaticky povoleny, pokud nevyberete možnost Ignorovat chybějící koncové body služby Microsoft.Web. Zda chcete povolit koncové body služby v aplikaci, ale ne v podsíti, závisí na tom, zda máte oprávnění je povolit v podsíti.

Pokud potřebujete, aby koncový bod služby v podsíti povolil někdo jiný, vyberte Ignorovat chybějící koncové body služby Microsoft.Web. Vaše aplikace je nakonfigurována pro koncové body služby. Později mohou být povoleny v podsíti.

Koncové body služby nemůžete použít k omezení přístupu k aplikacím, které běží ve službě App Service Environment. Když se vaše aplikace nachází v prostředí služby App Service, můžete řídit přístup pomocí IP pravidel přístupu.

Pomocí koncových bodů služby můžete konfigurovat svou aplikaci pomocí aplikačních brán nebo jiných zařízení pro webový aplikační firewall (WAF). Můžete také nakonfigurovat vícevrstvé aplikace se zabezpečenými back-endy. Další informace najdete v tématu Síťové funkce služby App Service a integrace služby Application Gateway.

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.

Nastavení pravidla založeného na značkách služby

  • Ve 4. kroku vyberte v rozevíracím seznamu TypService Tag.

    Screenshot panelu Přidat omezení se vybraným typem Service Tag.

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žby prostřednictvím Azure portálu nebo Azure CLI potřebujete přístup ke čtení na úrovni předplatného, abyste mohli získat úplný seznam značek služby pro výběr/ověření. Kromě toho musí být poskytovatel prostředků Microsoft.Network zaregistrovaný v rámci předplatného.

Úprava pravidla

  1. Chcete-li upravit existující pravidlo omezení přístupu, přejděte na panel Omezení přístupu a vyberte 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.

    Poznámka:

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

Odstranění pravidla

  1. Chcete-li odstranit pravidlo, na panelu Omezení přístupu vyberte pravidlo nebo pravidla, která chcete odstranit, a poté vyberte Odstranit.

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

Snímek obrazovky panelu Omezení přístupu, ukazující tři tečky pro odebrání vedle pravidla omezení přístupu, které má být smazáno.

Pokročilé scénáře omezení přístupu

Následující části popisují použití omezení přístupu ve složitějších scénářích.

Filtrovat podle hlavičky HTTP

Můžete přidat filtry HTTP záhlaví k libovolnému pravidlu. Jsou podporována následující jména záhlaví 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 čárkami. Filtry HTTP hlavičky jsou vyhodnocovány po samotném pravidle a obě podmínky musí být splněny, aby se pravidlo použilo.

Pravidla s více zdroji

Pravidla pro více zdrojů vám umožňují kombinovat až osm rozsahů IP adres nebo osm značek služeb v jediném pravidlu. Používejte pravidla pro více zdrojů, pokud máte více než 512 IP rozsahů nebo pokud chcete vytvořit logická pravidla. Například: logické pravidlo by mohlo zahrnovat více rozsahů IP adres kombinovaných s jediným filtrem HTTP hlavičky.

Pravidla pro více zdrojů jsou definována stejným způsobem jako pravidla pro jeden zdroj, ale jednotlivé rozsahy jsou odděleny čá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

Pokud chcete explicitně blokovat jednu IP adresu nebo blok adres IP, ale povolit přístup ke všemu ostatnímu, můžete přidat pravidlo Deny pro konkrétní IP adresu. Pak nastavte akci pro pravidla, která nejsou přiřazena, na Povolit.

Snímek obrazovky panelu omezení přístupu v portálu Azure, který zobrazuje jednu zablokovanou IP adresu.

Omezení přístupu k lokalitě SCM

Kromě možnosti řídit přístup k vaší aplikaci můžete také omezit přístup k pokročilé nástrojařské stránce správy zdrojového kódu (SCM), kterou využívá vaše aplikace. Webové stránky SCM slouží jako koncový bod pro nasazení webu a zároveň jako 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ž vyberete Možnost Použít pravidla hlavního webu, bude seznam pravidel skrytý. Web SCM používá pravidla z hlavního webu. Pokud zaškrtnutí tohoto políčka zrušíte, nastavení webu SCM se znovu zobrazí.

Snímek obrazovky podokna Omezení přístupu v Azure portálu, který ukazuje, že pro web SCM ani aplikaci nejsou nastavena žádná omezení přístupu.

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. Použitím pravidla pro omezení pomocí značky služby můžete omezit provoz tak, aby pocházel pouze z Azure Front Door. Aby bylo zajištěno, že provoz pochází pouze z vaší konkrétní instance, musíte dále filtrovat příchozí požadavky na základě unikátního HTTP hlavičky, kterou posílá Azure Front Door.

Snímek obrazovky panelu Omezení přístupu v portálu Azure, který ukazuje, jak přidat omezení Azure Front Door.

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

Přístupová omezení můžete spravovat také programově. Následující příklady ukazují, jak přidat pravidla pro omezení přístupu a jak změnit možnost akce nesplněného pravidla pro Hlavní stránku i pro stránku pokročilého nástroje.

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

Můžete spustit následující příkaz v Azure Cloud Shell. Pro více informací o příkazu se podívejte na az webapp config access-restriction.

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ů

Můžete programově přidávat pravidla omezení přístupu pro web Advanced tool site. Zvolte jednu z následujících možností:

Můžete spustit následující příkaz v Cloud Shell. Pro více informací o příkazu se podívejte na az webapp config access-restriction.

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 neodpovídajícího pravidla pro hlavní web

Akci nezvolená akce pravidla pro hlavní web můžete změnit programově, tak že zvolíte jednu z následujících možností:

Můžete spustit následující příkaz v Cloud Shell. Pro více informací o příkazu se podívejte na az resource. 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ěňte akci pravidla pro nepřiřazené podmínky na webu pokročilých nástrojů

Akci Nezadaná akce pravidla pro web rozšířených nástrojů můžete programově změnit, když zvolíte jednu z následujících možností:

Můžete spustit následující příkaz v Cloud Shell. Pro více informací o příkazu se podívejte na az resource. 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.