Konfigurowanie ograniczeń dostępu usługi Azure App Service

Konfigurując ograniczenia dostępu, można zdefiniować uporządkowaną priorytetowo listę dozwolonych/zabronionych, która kontroluje dostęp sieciowy do aplikacji. Lista może zawierać adresy IP lub podsieci usługi Azure Virtual Network. Jeśli na końcu listy istnieje co najmniej jeden wpis, na końcu listy istnieje niejawne odmowę . Aby dowiedzieć się więcej na temat ograniczeń dostępu, przejdź do przeglądu ograniczeń dostępu.

Ta funkcja ograniczeń dostępu współdziała z wszystkimi obciążeniami hostowanymi w usłudze Azure App Service. Obciążenia te mogą obejmować aplikacje internetowe, aplikacje interfejsu API, aplikacje systemu Linux, niestandardowe kontenery systemu Linux i funkcje.

Po wysłaniu żądania do aplikacji adres FROM (źródłowy) jest oceniany względem reguł na liście ograniczeń dostępu. Jeśli adres FROM znajduje się w podsieci skonfigurowanej z punktami końcowymi usługi do Microsoft.Web, podsieć źródłowa jest porównywana z regułami sieci wirtualnej na liście ograniczeń dostępu. Jeśli adres nie jest dozwolony na podstawie reguł na liście, usługa odpowiada kodem stanu HTTP 403 .

Możliwość ograniczeń dostępu jest implementowana w rolach frontonu usługi App Service, które są nadrzędne hostów procesów roboczych, na których jest uruchamiany kod. W związku z tym ograniczenia dostępu są skutecznie listami kontroli dostępu do sieci (ACL).

Możliwość ograniczenia dostępu do aplikacji internetowej z sieci wirtualnej platformy Azure korzysta z punktów końcowych usługi. Używając punktów końcowych usługi, można ograniczyć dostęp z wybranych podsieci do usługi z wieloma dzierżawami. Nie umożliwia to ograniczania ruchu do aplikacji hostowanych w usłudze App Service Environment. Jeśli korzystasz z usługi App Service Environment, możesz kontrolować dostęp do aplikacji, stosując reguły adresów IP.

Uwaga

Punkty końcowe usługi muszą być włączone zarówno po stronie sieci, jak i dla usługi platformy Azure, z którą są włączone. Aby uzyskać listę usług platformy Azure, które obsługują punkty końcowe usługi, zobacz Punkty końcowe usługi dla sieci wirtualnej.

Diagram of the flow of access restrictions.

Zarządzanie regułami ograniczeń dostępu w portalu

Aby dodać regułę ograniczeń dostępu do aplikacji, wykonaj następujące kroki:

  1. Zaloguj się w witrynie Azure Portal.

  2. Wybierz aplikację, do której chcesz dodać ograniczenia dostępu.

  3. W menu po lewej stronie wybierz pozycję Sieć.

  4. Na stronie Sieć w obszarze Konfiguracja ruchu przychodzącego wybierz ustawienie Dostęp do sieci publicznej.

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

  5. Na stronie Ograniczenia dostępu przejrzyj listę reguł ograniczeń dostępu zdefiniowanych dla aplikacji.

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

    Na liście są wyświetlane wszystkie bieżące ograniczenia, które są stosowane do aplikacji. Jeśli masz ograniczenie dotyczące sieci wirtualnej w aplikacji, w tabeli przedstawiono, czy punkty końcowe usługi są włączone dla witryny Microsoft.Web. Jeśli w aplikacji nie zdefiniowano żadnych ograniczeń, a niezgodna reguła nie jest ustawiona na Odmów, aplikacja jest dostępna z dowolnego miejsca.

Uprawnienia

Następujące uprawnienia kontroli dostępu opartej na rolach w podsieci lub na wyższym poziomie są wymagane do skonfigurowania ograniczeń dostępu za pośrednictwem witryny Azure Portal, interfejsu wiersza polecenia lub podczas bezpośredniego ustawiania właściwości konfiguracji witryny:

Akcja opis
Microsoft.Web/sites/config/read Pobieranie ustawień konfiguracji aplikacji internetowej
Microsoft.Web/sites/config/write Aktualizowanie ustawień konfiguracji aplikacji internetowej
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action* Dołącza do podsieci zasób, taki jak konto magazynu lub baza danych SQL
Microsoft.Web/sites/write** Aktualizowanie ustawień aplikacji internetowej

*wymagane tylko podczas dodawania reguły sieci wirtualnej (punktu końcowego usługi).

**wymagane tylko w przypadku aktualizowania ograniczeń dostępu za pośrednictwem witryny Azure Portal.

Jeśli dodasz regułę opartą na punkcie końcowym usługi, a sieć wirtualna znajduje się w innej subskrypcji niż aplikacja, upewnij się, że subskrypcja z siecią wirtualną jest zarejestrowana dla Microsoft.Web dostawcy zasobów. Możesz jawnie zarejestrować dostawcę , postępując zgodnie z tą dokumentacją, ale także automatycznie zarejestrowaną podczas tworzenia pierwszej aplikacji internetowej w ramach subskrypcji.

Dodawanie reguły ograniczeń dostępu

Aby dodać regułę ograniczeń dostępu do aplikacji, na stronie Ograniczenia dostępu wybierz pozycję Dodaj. Reguła jest skuteczna tylko po zapisaniu.

Reguły są wymuszane w kolejności priorytetu, począwszy od najniższej liczby w kolumnie Priorytet . Jeśli nie skonfigurujesz niezgodnej reguły, niejawne odmów wszystkie zostaną zastosowane po dodaniu nawet jednej reguły.

W okienku Dodawanie ograniczeń dostępu podczas tworzenia reguły wykonaj następujące czynności:

  1. W obszarze Akcja wybierz pozycję Zezwalaj lub Odmów.

    Screenshot of the 'Add Access Restriction' pane.

  2. Opcjonalnie wprowadź nazwę i opis reguły.

  3. W polu Priorytet wprowadź wartość priorytetu.

  4. Z listy rozwijanej Typ wybierz typ reguły. Różne typy reguł opisano w poniższych sekcjach.

  5. Wybierz pozycję Dodaj regułę po wpisaniu w danych wejściowych specyficznych dla reguły, aby dodać regułę do listy.

Na koniec wybierz pozycję Zapisz z powrotem na stronie Ograniczenia dostępu.

Uwaga

  • Istnieje limit 512 reguł ograniczeń dostępu. Jeśli potrzebujesz więcej niż 512 reguł ograniczeń dostępu, zalecamy zainstalowanie autonomicznego produktu zabezpieczeń, takiego jak azure Front Door, aplikacja systemu Azure Gateway lub alternatywna zapora aplikacji internetowej.

Ustawianie reguły opartej na adresach IP

Postępuj zgodnie z procedurą opisaną w poprzedniej sekcji, ale z następującym dodatkiem:

  • W kroku 4 na liście rozwijanej Typ wybierz pozycję IPv4 lub IPv6.

Określ blok adresów IP w notacji CIDR (Classless Inter-Domain Routing) dla adresów IPv4 i IPv6. Aby określić adres, można użyć wartości podobnej do 1.2.3.4/32, gdzie pierwsze cztery oktety reprezentują twój adres IP i /32 jest maską. Notacja CIDR IPv4 dla wszystkich adresów to 0.0.0.0/0. Aby dowiedzieć się więcej na temat notacji CIDR, zobacz Routing międzydomenowy bez klas.

Uwaga

Reguły ograniczeń dostępu oparte na adresach IP obsługują tylko zakresy adresów sieci wirtualnej, gdy aplikacja znajduje się w środowisku App Service Environment. Jeśli aplikacja znajduje się w usłudze wielodostępnej, musisz użyć punktów końcowych usługi, aby ograniczyć ruch do wybierania podsieci w sieci wirtualnej.

Ustawianie reguły opartej na punkcie końcowym usługi

  • W kroku 4 z listy rozwijanej Typ wybierz pozycję Sieć wirtualna.

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

Określ listę rozwijaną Subskrypcja, Sieć wirtualna i Podsieć, pasując do tego, do czego chcesz ograniczyć dostęp.

Za pomocą punktów końcowych usługi można ograniczyć dostęp do wybranych podsieci sieci wirtualnej platformy Azure. Jeśli punkty końcowe usługi nie są jeszcze włączone Microsoft.Web dla wybranej podsieci, są one automatycznie włączone, chyba że zaznaczysz pole wyboru Ignoruj brakujące Microsoft.Web punkty końcowe usługi. Scenariusz, w którym można włączyć punkty końcowe usługi w aplikacji, ale nie podsieć, zależy głównie od tego, czy masz uprawnienia do włączania ich w podsieci.

Jeśli potrzebujesz innej osoby do włączenia punktów końcowych usługi w podsieci, zaznacz pole wyboru Ignoruj brakujące punkty końcowe usługi Microsoft.Web. Aplikacja jest skonfigurowana dla punktów końcowych usługi w oczekiwaniu na ich włączenie w dalszej części podsieci.

Nie można używać punktów końcowych usługi do ograniczania dostępu do aplikacji uruchamianych w środowisku App Service Environment. Gdy aplikacja znajduje się w środowisku App Service Environment, możesz kontrolować dostęp do niej, stosując reguły dostępu do adresów IP.

Za pomocą punktów końcowych usługi można skonfigurować aplikację za pomocą bram aplikacji lub innych urządzeń zapory aplikacji internetowej . Można również skonfigurować aplikacje wielowarstwowe z bezpiecznymi zapleczami. Aby uzyskać więcej informacji, zobacz Funkcje sieciowe oraz integracja usługi App Service i Application Gateway z punktami końcowymi usługi.

Uwaga

  • Punkty końcowe usługi nie są obsługiwane w przypadku aplikacji internetowych korzystających z powiązań TLS/SSL opartych na protokole IP z wirtualnym adresem IP (VIP).

Ustawianie reguły opartej na tagach usługi

  • W kroku 4 z listy rozwijanej Typ wybierz pozycję Tag usługi.

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

Wszystkie dostępne tagi usługi są obsługiwane w regułach ograniczeń dostępu. Każdy tag usługi reprezentuje listę zakresów adresów IP z usług platformy Azure. Listę tych usług i linki do określonych zakresów można znaleźć w dokumentacji tagów usługi. Użyj szablonów usługi Azure Resource Manager lub skryptów, aby skonfigurować bardziej zaawansowane reguły, takie jak regionalne reguły o określonym zakresie.

Edytowanie reguły

  1. Aby rozpocząć edytowanie istniejącej reguły ograniczeń dostępu, na stronie Ograniczenia dostępu wybierz regułę, którą chcesz edytować.

  2. W okienku Edytowanie ograniczeń dostępu wprowadź zmiany, a następnie wybierz pozycję Aktualizuj regułę.

  3. Wybierz Zapisz, aby zapisać zmiany.

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

    Uwaga

    Podczas edytowania reguły nie można przełączać się między typami reguł.

Usuń regułę

  1. Aby usunąć regułę, na stronie Ograniczenia dostępu sprawdź regułę lub reguły, które chcesz usunąć, a następnie wybierz pozycję Usuń.

  2. Wybierz Zapisz, aby zapisać zmiany.

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

Zaawansowane scenariusze ograniczeń dostępu

W poniższych sekcjach opisano niektóre zaawansowane scenariusze korzystające z ograniczeń dostępu.

Filtruj według nagłówka http

W ramach dowolnej reguły można dodawać filtry nagłówka http. Obsługiwane są następujące nazwy nagłówków http:

  • X-Forwarded-for
  • Host przesłany dalej X
  • Identyfikator X-Azure-FDID
  • X-FD-HealthProbe

Dla każdej nazwy nagłówka można dodać maksymalnie osiem wartości rozdzielonych przecinkami. Filtry nagłówka http są oceniane po samej regule, a oba warunki muszą mieć wartość true, aby reguła miała zastosowanie.

Reguły wieloźródłowe

Reguły wielu źródeł umożliwiają łączenie maksymalnie ośmiu zakresów adresów IP lub ośmiu tagów usługi w ramach jednej reguły. Reguły wieloźródłowe są używane, jeśli masz więcej niż 512 zakresów adresów IP lub chcesz utworzyć reguły logiczne. Reguły logiczne mogą być miejscem, w którym wiele zakresów adresów IP jest połączonych z jednym filtrem nagłówka HTTP.

Reguły wieloźródłowe są definiowane w taki sam sposób, jak definiowanie reguł pojedynczego źródła, ale z każdym zakresem rozdzielanym przecinkami.

Przykład programu PowerShell:

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

Blokowanie pojedynczego adresu IP

W przypadku scenariusza, w którym chcesz jawnie zablokować pojedynczy adres IP lub blok adresów IP, ale zezwolić na dostęp do wszystkich innych elementów, dodaj regułę Odmów dla określonego adresu IP i skonfiguruj niedopasowaną akcję reguły zezwalaj.

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

Ograniczanie dostępu do witryny SCM

Oprócz możliwości kontrolowania dostępu do aplikacji możesz ograniczyć dostęp do witryny SCM (narzędzia zaawansowanego) używanej przez aplikację. Witryna SCM to zarówno internetowy punkt końcowy wdrażania, jak i konsola Kudu. Ograniczenia dostępu można przypisać do witryny SCM oddzielnie lub użyć tego samego zestawu ograniczeń zarówno dla aplikacji, jak i witryny SCM. Po wybraniu pola wyboru Użyj reguł witryny głównej lista reguł jest ukryta i używa reguł z witryny głównej. Jeśli wyczyścisz to pole wyboru, ustawienia witryny SCM pojawią się ponownie.

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

Ograniczanie dostępu do określonego wystąpienia usługi Azure Front Door

Ruch z usługi Azure Front Door do aplikacji pochodzi z dobrze znanego zestawu zakresów adresów IP zdefiniowanych w tagu AzureFrontDoor.Backend usługi. Korzystając z reguły ograniczeń tagu usługi, można ograniczyć ruch tylko z usługi Azure Front Door. Aby zapewnić, że ruch pochodzi tylko z określonego wystąpienia, należy dodatkowo filtrować żądania przychodzące na podstawie unikatowego nagłówka http wysyłanego przez usługę Azure Front Door.

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

Przykład programu PowerShell:

$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}

Programowe zarządzanie ograniczeniem dostępu

Możesz programowo zarządzać ograniczeniem dostępu. Poniżej znajdziesz przykłady dodawania reguł w celu ograniczenia dostępu oraz sposób zmiany akcji niepasowanej reguły zarówno dla witryny głównej, jak i witryny narzędzia zaawansowanego.

Dodawanie reguł ograniczeń dostępu dla witryny głównej

Reguły ograniczeń dostępu dla witryny głównej można dodać programowo, wybierając jedną z następujących opcji:

Następujące polecenie można uruchomić w usłudze Cloud Shell. Aby uzyskać więcej informacji na temat az webapp config access-restriction polecenia, odwiedź tę stronę.

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

Dodawanie reguł ograniczeń dostępu dla zaawansowanej witryny narzędzi

Reguły ograniczeń dostępu dla witryny narzędzia Zaawansowane można dodać programowo, wybierając jedną z następujących opcji:

Następujące polecenie można uruchomić w usłudze Cloud Shell. Aby uzyskać więcej informacji na temat az webapp config access-restriction polecenia, odwiedź tę stronę.

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

Zmienianie niedopasowanej akcji reguły dla witryny głównej

Akcjęreguły niedopasowanej dla witryny Główne można zmienić programowo, wybierając jedną z następujących opcji:

Następujące polecenie można uruchomić w usłudze Cloud Shell. Aby uzyskać więcej informacji na temat az resource polecenia, odwiedź tę stronę. Zaakceptowane wartości dla ipSecurityRestrictionsDefaultAction elementu to Allow lub Deny.

az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
  --set properties.siteConfig.ipSecurityRestrictionsDefaultAction=Allow

Zmienianie niedopasowanej akcji reguły dla witryny zaawansowanych narzędzi

Akcjęniezapasowanej reguły dla witryny narzędzia zaawansowane można zmienić programowo, wybierając jedną z następujących opcji:

Następujące polecenie można uruchomić w usłudze Cloud Shell. Aby uzyskać więcej informacji na temat az resource polecenia, odwiedź tę stronę. Zaakceptowane wartości dla scmIpSecurityRestrictionsDefaultAction elementu to Allow lub Deny.

az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
  --set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow

Konfigurowanie ograniczeń dostępu do usługi Azure Functions

Ograniczenia dostępu są również dostępne dla aplikacji funkcji z taką samą funkcjonalnością jak plany usługi App Service. Po włączeniu ograniczeń dostępu można również wyłączyć edytor kodu witryny Azure Portal dla wszystkich niedozwolonych adresów IP.

Następne kroki

Ograniczenia dostępu dla usługi Azure Functions
Integracja usługi Application Gateway z punktami końcowymi usługi
Zaawansowane scenariusze ograniczeń dostępu w usłudze aplikacja systemu Azure — wpis w blogu