Nastavení omezení Azure App Service přístupu

Nastavením omezení přístupu můžete definovat seznam povolení seřazený podle priority, který řídí síťový přístup k vaší aplikaci. Seznam může obsahovat IP adresy nebo podsítě Azure Virtual Network podsítě. Pokud existuje jedna nebo více položek, na konci seznamu existuje implicitní zamítnutí všech položek.

Funkce omezení přístupu funguje se všemi Azure App Service hostovaných úlohách. Mezi tyto úlohy patří webové aplikace, aplikace API, linuxové aplikace, aplikace typu kontejner pro Linux a služba Functions.

Při požadavku na vaši aplikaci se adresa FROM vyhodnotí podle pravidel v seznamu omezení přístupu. Pokud je adresa FROM v podsíti, která má nakonfigurované koncové body služby pro Microsoft.Web, 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ý kód HTTP 403.

Funkce omezení přístupu je implementovaná v App Service front-endových rolích, které jsou nadřazené hostitelům pracovních procesů, na kterých běží váš kód. Omezení přístupu jsou tedy efektivně seznamy řízení přístupu k síti (ACL).

Možnost omezit přístup k vaší webové aplikaci z virtuální sítě Azure je povolená koncovými body služby. Pomocí koncových bodů služby můžete omezit přístup k více tenantské službě z vybraných podsítí. Nefunguje omezení provozu na aplikace, které jsou hostované v App Service Environment. Pokud jste v aplikaci 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žby, najdete v Virtual Network koncových bodů služby.

Diagram toku omezení přístupu

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

Pokud chcete do aplikace přidat pravidlo omezení přístupu, proveďte následující:

  1. Přihlaste se k webu Azure Portal.

  2. V levém podokně vyberte Sítě.

  3. V podokně Sítě v části Omezení přístupu vyberte Konfigurovat omezení přístupu.

    Snímek obrazovky App Service možnosti sítě v Azure Portal

  4. Na stránce Omezení přístupu si prohlédněte seznam pravidel omezení přístupu definovaných pro vaši aplikaci.

    Snímek obrazovky se stránkou Omezení přístupu v Azure Portal zobrazující seznam pravidel omezení přístupu definovaných pro vybranou aplikaci

    V seznamu se zobrazí všechna aktuální omezení, která se na aplikaci aplikují. Pokud máte v aplikaci omezení virtuální sítě, tabulka ukazuje, jestli jsou koncové body služby povolené pro Microsoft.Web. Pokud ve vaší aplikaci nejsou definovaná žádná omezení, je aplikace přístupná odkudkoli.

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

Pokud chcete do aplikace přidat pravidlo omezení přístupu, v podokně Omezení přístupu vyberte Přidat pravidlo. Jakmile přidáte pravidlo, začne se okamžitě používat.

Pravidla se vynucuje v pořadí podle priority počínaje nejnižším číslem ve sloupci Priorita. Když přidáte i jedno pravidlo, projeví se implicitní odepření všech.

Když v podokně Přidat omezení přístupu vytvoříte pravidlo, proveďte následující kroky:

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

    Snímek obrazovky s podoknem Přidat omezení přístupu

  2. Volitelně zadejte 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.

Poznámka

  • Platí limit 512 pravidel omezení přístupu. Pokud požadujete více než 512 pravidel omezení přístupu, doporučujeme zvážit instalaci samostatného produktu zabezpečení, jako je Azure Front Door, Azure App 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 v rozevíracím seznamu Typ vyberte IPv4 nebo IPv6.

Blok IP adres zadejte v notaci 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. Notace CIDR IPv4 pro všechny adresy je 0.0.0.0/0. Další informace o notaci CIDR najdete v tématu Classless Inter-Domain Routing.

Nastavení pravidla na základě koncového bodu služby

  • Pro krok 4 v rozevíracím seznamu Typ vyberte Virtual Network.

    Snímek obrazovky s podoknem Přidat omezení a vybraným Virtual Network typem omezení

Zadejte rozevírací seznamy Předplatné, Virtual Network a Podsíť odpovídající tomu, k čemu chcete omezit přístup.

Pomocí koncových bodů služby můžete omezit přístup na vybrané podsítě virtuální sítě Azure. Pokud pro vybranou podsíť ještě nejsou povolené koncové body služby Microsoft.Web, budou automaticky povoleny, pokud nezaškrtnete políčko Ignorovat chybějící koncové body služby Microsoft.Web. Scénář, ve kterém můžete chtít povolit koncové body služby v aplikaci, ale ne v podsíti, závisí hlavně na tom, jestli máte oprávnění je povolit v podsíti.

Pokud potřebujete, aby koncové body služby v podsíti povoloval někdo jiný, zaškrtněte políčko Ignorovat chybějící koncové body služby Microsoft.Web. Vaše aplikace bude nakonfigurovaná pro koncové body služby s očekáváním, že je povolíte později v podsíti.

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

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-endsy. Další informace najdete v tématu Síťové funkce a App Service a Application Gateway s koncovými body služby.

Poznámka

  • Koncové body služby nejsou aktuálně 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čce služby

  • Pro krok 4 v rozevíracím seznamu Typ vyberte Značka služby.

    Snímek obrazovky s podoknem Přidat omezení a vybraným typem značky služby

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čce služeb.

Všechny dostupné značky služeb jsou podporované v pravidlech omezení přístupu. Pro zjednodušení je k dispozici pouze seznam nejběžnějších značek prostřednictvím Azure Portal. Pomocí Azure Resource Manager nebo skriptování můžete nakonfigurovat pokročilejší pravidla, jako jsou pravidla s regionálním oborem. Tyto značky jsou k dispozici prostřednictvím Azure Portal:

  • Skupina akcí
  • ApplicationInsightsAvailability
  • AzureCloud
  • AzureCognitiveSearch
  • AzureEventGrid
  • AzureFrontDoor.Backend
  • AzureMachineLearning
  • AzureTrafficManager
  • LogicApps

Ú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. Úpravy jsou účinné okamžitě, včetně změn pořadí priorit.

    Snímek obrazovky s podoknem Upravit omezení přístupu v Azure Portal zobrazující pole pro existující pravidlo omezení přístupu

    Poznámka

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

Odstranění pravidla

Pokud chcete pravidlo odstranit, vyberte na stránce Omezení přístupu tři tečky (...) vedle pravidla, které chcete odstranit, a pak vyberte Odebrat.

Snímek obrazovky se stránkou Omezení přístupu zobrazující tři tečky Odebrat vedle pravidla omezení přístupu, které se má odstranit

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

Následující části popisují některé pokročilé scénáře použití omezení přístupu.

Filtrovat podle hlavičky HTTP

Jako součást libovolného pravidla můžete přidat další filtry hlaviček HTTP. Podporují se následující názvy hlaviček HTTP:

  • Přeposílání X pro
  • X-Forwarded-Host
  • X-Azure-FDID
  • X-FD-HealthProbe

Pro každý název hlavičky můžete přidat až osm hodnot oddělených čárkou. Filtry hlaviček HTTP se vyhodnocují po samotném pravidle a obě podmínky musí být pravdivé, aby pravidlo bylo možné použít.

Pravidla pro více zdrojů

Pravidla pro více zdrojů umožňují zkombinovat v jednom pravidle až osm rozsahů IP adres nebo osm značek služeb. Tuto možnost můžete použít, pokud máte více než 512 rozsahů IP adres nebo chcete vytvořit logická pravidla, ve kterých se několik rozsahů IP adres zkombinuje s jedním filtrem hlaviček HTTP.

Pravidla pro více zdrojů jsou definována stejným způsobem jako pravidla s jedním zdrojem, ale s každým rozsahem odděleným čá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

Když přidáte první pravidlo omezení přístupu, služba přidá explicitní pravidlo Odepřít vše s prioritou 2147483647. Explicitní pravidlo Odepřít vše je v praxi finální pravidlo, které se má spustit, a blokuje přístup ke všem IP adresě, které pravidlo Povolit explicitně nepovoluje.

V případě scénáře, kdy chcete explicitně blokovat jednu IP adresu nebo blok IP adres, ale povolit přístup ke všemu ostatnímu, přidejte explicitní pravidlo Povolit vše.

Snímek obrazovky se stránkou Omezení přístupu v Azure Portal zobrazující jednu blokovanou IP adresu

Omezení přístupu k webu SCM

Kromě toho, že budete moct řídit přístup k vaší aplikaci, můžete omezit přístup k webu SCM, který vaše aplikace používá. Web SCM je koncový bod nasazení webu i konzola Kudu. K webu SCM můžete přiřadit omezení přístupu z aplikace samostatně nebo použít stejnou sadu omezení pro aplikaci i web SCM. Když zaškrtnete <app name> políčko Stejná omezení jako, je vše prázdné. Pokud zaškrtnutí tohoto políčka zrušte, nastavení webu SCM se znovu použijte.

Snímek obrazovky se stránkou Omezení přístupu v Azure Portal, která ukazuje, že pro web SCM nebo aplikaci nejsou nastavená žádná omezení přístupu

Omezení přístupu ke konkrétní instanci Azure Front Door instance

Provoz z Azure Front Door do vaší aplikace pochází ze známé sady rozsahů IP adres definovaných ve značce služby AzureFrontDoor.Backend. Pomocí pravidla omezení značek služeb můžete omezit provoz tak, aby pocházel pouze z Azure Front Door. Pokud chcete zajistit, aby provoz pocházel pouze z konkrétní instance, budete muset příchozí požadavky dále filtrovat na základě jedinečné hlavičky protokolu HTTP, kterou Azure Front Door odešle.

Snímek obrazovky se stránkou Omezení přístupu v Azure Portal, který znázorňuje, jak Azure Front Door omezení

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}

Programová správa pravidel omezení přístupu

Omezení přístupu můžete přidat programově pomocí jednoho z následujících způsobů:

  • Použijte Azure CLI. Příklad:

    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
    

    Poznámka

    Práce se značkami služeb, hlavičkami HTTP nebo pravidly pro více zdrojů v Azure CLI vyžaduje minimálně verzi 2.23.0. Verzi nainstalovaného modulu můžete ověřit pomocí: az version

  • Použijte Azure PowerShell. Příklad:

    Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName"
        -Name "Ip example rule" -Priority 100 -Action Allow -IpAddress 122.133.144.0/24
    

    Poznámka

    Práce se značkami služeb, hlavičkami HTTP nebo pravidly pro více zdrojů v Azure PowerShell vyžaduje minimálně verzi 5.7.0. Verzi nainstalovaného modulu můžete ověřit pomocí: Get-InstalledModule -Name Az

Hodnoty můžete také nastavit ručně pomocí jedné z následujících akcí:

  • V konfiguraci aplikace v REST API použijte operaci PUT služby Azure Azure Resource Manager. Umístění pro tyto informace v Azure Resource Manager je:

    management.azure.com/subscriptions/předplatného/resourceGroups/skupiny prostředků /providers/Microsoft.Web/sites/název webové aplikace /config/web?api-version=2020-06-01

  • Použijte Resource Manager šablony. Můžete například použít tento blok resources.azure.com upravit blok ipSecurityRestrictions a přidat požadovaný JSON.

    Syntaxe JSON pro předchozí příklad je:

    {
      "properties": {
        "ipSecurityRestrictions": [
          {
            "ipAddress": "122.133.144.0/24",
            "action": "Allow",
            "priority": 100,
            "name": "IP example rule"
          }
        ]
      }
    }
    

    Syntaxe JSON pro pokročilý příklad použití značky služby a omezení hlavičky HTTP je následující:

    {
      "properties": {
        "ipSecurityRestrictions": [
          {
            "ipAddress": "AzureFrontDoor.Backend",
            "tag": "ServiceTag",
            "action": "Allow",
            "priority": 100,
            "name": "Azure Front Door example",
            "headers": {
              "x-azure-fdid": [
                "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
              ]
            }
          }
        ]
      }
    }
    

Nastavení omezení Azure Functions přístupu

Omezení přístupu jsou dostupná také pro aplikace funkcí se stejnými funkcemi jako App Service plány. Když povolíte omezení přístupu, zakážete také editor Azure Portal všech zakázaných IP adres.

Další kroky

Omezení přístupu pro Azure Functions
Application Gateway integrace s koncovými body služby