Aplikacja systemu Azure Service access restrictions (Ograniczenia dostępu do usługi aplikacja systemu Azure Service)

Ograniczenia dostępu w usłudze App Service są równoważne zaporze, która umożliwia blokowanie i filtrowanie ruchu. Ograniczenia dostępu dotyczą tylko dostępu przychodzącego . Większość warstw cenowych usługi App Service ma również możliwość dodawania prywatnych punktów końcowych do aplikacji, co jest kolejnym punktem wejścia do aplikacji. Ograniczenia dostępu nie mają zastosowania do ruchu przychodzącego za pośrednictwem prywatnego punktu końcowego. W przypadku wszystkich aplikacji hostowanych w usłudze App Service domyślny punkt wejścia jest publicznie dostępny. Jedynym wyjątkiem są aplikacje hostowane w środowisku App Service Environment wewnętrznego modułu równoważenia obciążenia, w którym domyślny punkt wejścia jest wewnętrzny dla sieci wirtualnej.

Jak to działa

Gdy ruch dociera do usługi App Service, najpierw ocenia, czy ruch pochodzi z prywatnego punktu końcowego lub przechodzi przez domyślny punkt końcowy. Jeśli ruch jest wysyłany za pośrednictwem prywatnego punktu końcowego, wysyła go bezpośrednio do lokacji bez żadnych ograniczeń. Ograniczenia dotyczące prywatnych punktów końcowych są konfigurowane przy użyciu sieciowych grup zabezpieczeń.

Jeśli wysyłasz ruch przez domyślny punkt końcowy (często publiczny punkt końcowy), ruch jest najpierw oceniany na poziomie dostępu do aplikacji. W tym miejscu możesz włączyć lub wyłączyć dostęp. Jeśli włączysz dostęp do aplikacji, ruch będzie oceniany na poziomie dostępu do lokacji. W przypadku dowolnej aplikacji masz zarówno witrynę główną, jak i witrynę zaawansowanych narzędzi (nazywaną również witryną scm lub kudu).

Istnieje możliwość skonfigurowania zestawu reguł ograniczeń dostępu dla każdej lokacji. Reguły ograniczeń dostępu są oceniane w kolejności priorytetów. Jeśli niektóre reguły mają taki sam priorytet, są oceniane w kolejności, w której są wyświetlane po powrocie z interfejsu API usługi Azure Resource Manager i w witrynie Azure Portal przed sortowaniem. Można również określić zachowanie, jeśli żadne reguły nie są zgodne. Poniższe sekcje zawierają szczegółowe informacje.

Diagram of access restrictions high-level flow.

Dostęp do aplikacji

Dostęp do aplikacji umożliwia skonfigurowanie, czy dostęp jest dostępny za pośrednictwem domyślnego (publicznego) punktu końcowego. To zachowanie należy skonfigurować na wartość Disabled lub Enabled. Po włączeniu dostępu można dodać reguły ograniczeń dostępu do lokacji, aby kontrolować dostęp z wybranych sieci wirtualnych i adresów IP. Jeśli ustawienie nie jest skonfigurowane, domyślne zachowanie polega na włączeniu dostępu, chyba że istnieje prywatny punkt końcowy, który zmienia zachowanie w celu wyłączenia dostępu.

Screenshot of app access option in Azure portal.

W interfejsie API usługi Azure Resource Manager dostęp do aplikacji nosi nazwę publicNetworkAccess. W przypadku środowiska App Service Environment wewnętrznego modułu równoważenia obciążenia domyślny punkt wejścia dla aplikacji jest zawsze wewnętrzny dla sieci wirtualnej. Włączenie dostępu do aplikacji (publicNetworkAccess) nie powoduje udzielenia bezpośredniego publicznego dostępu do aplikacji. Zamiast tego umożliwia dostęp z domyślnego punktu wejścia, który odpowiada wewnętrznemu adresowi IP środowiska App Service Environment. Jeśli wyłączysz dostęp aplikacji do środowiska App Service Environment z wewnętrznym modułem równoważenia obciążenia, możesz uzyskiwać dostęp tylko do aplikacji za pośrednictwem prywatnych punktów końcowych dodanych do poszczególnych aplikacji.

Dostęp do witryny

Ograniczenia dostępu do witryny umożliwiają filtrowanie żądań przychodzących. Ograniczenia dostępu do witryny umożliwiają utworzenie listy reguł zezwalania i odmowy, które są oceniane w kolejności priorytetów. Jest ona podobna do funkcji sieciowej grupy zabezpieczeń w sieci platformy Azure.

Screenshot of site access options in Azure portal.

Ograniczenie dostępu do witryny ma kilka typów reguł, które można zastosować:

Niedopasowana reguła

Zachowanie można skonfigurować, gdy żadne reguły nie są zgodne (akcja domyślna). Jest to specjalna reguła, która zawsze jest wyświetlana jako ostatnia reguła kolekcji reguł. Jeśli ustawienie nie jest skonfigurowane, zachowanie niezgodnej reguły zależy od skonfigurowanych reguł. Jeśli nie ma żadnych reguł, niezgodne zachowanie reguły ma zezwalać na cały dostęp, ale jeśli istnieje co najmniej jedna reguła, niejawnie zmienia się w celu odmowy całego dostępu. To zachowanie można jawnie skonfigurować tak, aby zezwalać na dostęp lub odmawiać go niezależnie od zdefiniowanych reguł.

Reguły ograniczeń dostępu oparte na adresach IP

Funkcja ograniczeń dostępu opartych na adresach IP pomaga w ograniczeniu adresów IP, których można użyć do uzyskania dostępu do aplikacji. Obsługiwane są protokoły IPv4 i IPv6. Niektóre przypadki użycia tej funkcji:

  • Ogranicz dostęp do aplikacji z zestawu dobrze zdefiniowanych adresów.
  • Ogranicz dostęp do ruchu przechodzącego przez zewnętrzną usługę równoważenia obciążenia lub inne urządzenia sieciowe ze znanymi adresami IP ruchu wychodzącego.

Aby dowiedzieć się, jak włączyć tę funkcję, zobacz Konfigurowanie ograniczeń dostępu.

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.

Reguły ograniczeń dostępu oparte na punktach końcowych usługi

Punkty końcowe usługi umożliwiają zablokowanie dostępu przychodzącego do aplikacji, dzięki czemu adres źródłowy musi pochodzić z wybranego zestawu podsieci. Ta funkcja współpracuje z ograniczeniami dostępu do adresów IP. Punkty końcowe usługi nie są zgodne z debugowaniem zdalnym. Jeśli chcesz używać zdalnego debugowania z aplikacją, klient nie może znajdować się w podsieci z włączonymi punktami końcowymi usługi. Proces ustawiania punktów końcowych usługi jest podobny do procesu ustawiania ograniczeń dostępu do adresów IP. W sieciach wirtualnych można utworzyć listę reguł dostępu zezwalających/odmawiających dostępu, która zawiera adresy publiczne i podsieci.

Uwaga

Reguły ograniczeń dostępu oparte na punktach końcowych usługi nie są obsługiwane w aplikacjach ze skonfigurowanym prywatnym punktem końcowym lub aplikacjach korzystających z protokołu SSL opartego na protokole IP (adres przypisany do aplikacji).

Aby dowiedzieć się więcej na temat konfigurowania punktów końcowych usługi za pomocą aplikacji, zobacz aplikacja systemu Azure Ograniczenia dostępu do usługi.

Dowolne źródło punktu końcowego usługi

W przypadku testowania lub w określonych scenariuszach można zezwolić na ruch z dowolnej podsieci obsługującej punkt końcowy usługi. Można to zrobić, definiując regułę opartą na adresach IP z tekstem "AnyVnets" zamiast zakresu adresów IP. Nie można utworzyć tych reguł w portalu, ale możesz zmodyfikować istniejącą regułę opartą na adresie IP i zastąpić adres IP ciągiem "AnyVnets".

Reguły ograniczeń dostępu oparte na tagach usługi

Tagi usług platformy Azure to dobrze zdefiniowane zestawy adresów IP dla usług platformy Azure. Tagi usługi grupować zakresy adresów IP używane w różnych usługach platformy Azure i często są również bardziej ograniczone do określonych regionów. Ten typ reguły umożliwia filtrowanie ruchu przychodzącego z określonych usług platformy Azure.

Aby uzyskać pełną listę tagów i więcej informacji, odwiedź link tagu usługi.

Aby dowiedzieć się, jak włączyć tę funkcję, zobacz Konfigurowanie ograniczeń dostępu.

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. Jeśli masz więcej niż 512 zakresów adresów IP, możesz użyć reguł wieloźródłowych. Możesz również użyć reguł wieloźródłowych, jeśli chcesz utworzyć reguły logiczne, w których 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.

Nie można utworzyć tych reguł w portalu, ale możesz zmodyfikować istniejący tag usługi lub regułę opartą na adresach IP i dodać więcej źródeł do reguły.

Filtrowanie nagłówka HTTP dla reguł ograniczeń dostępu do witryny

W przypadku dowolnej reguły, niezależnie od typu, można dodać filtrowanie nagłówka HTTP. Filtry nagłówków HTTP umożliwiają dalszą inspekcję przychodzącego żądania i filtrowanie na podstawie określonych wartości nagłówka http. Każdy nagłówek może mieć maksymalnie osiem wartości na regułę. Poniżej wymieniono obsługiwane nagłówki http:

  • X-Forwarded-for. Nagłówek standardowy do identyfikowania źródłowego adresu IP klienta łączącego się za pośrednictwem serwera proxy. Akceptuje prawidłowe wartości CIDR.
  • X-Forwarded-Host. Nagłówek standardowy do identyfikowania oryginalnego hosta żądanego przez klienta. Akceptuje dowolny ciąg o długości do 64 znaków.
  • X-Azure-FDID. Nagłówek niestandardowy identyfikujący wystąpienie zwrotnego serwera proxy. Usługa Azure Front Door wysyła identyfikator GUID identyfikujący wystąpienie, ale może być również używana dla serwerów proxy innych niż Microsoft w celu zidentyfikowania określonego wystąpienia. Akceptuje dowolny ciąg o długości do 64 znaków.
  • X-FD-HealthProbe. Nagłówek niestandardowy identyfikujący sondę kondycji zwrotnego serwera proxy. Usługa Azure Front Door wysyła wartość "1", aby jednoznacznie zidentyfikować żądanie sondy kondycji. Nagłówek może być również używany dla serwerów proxy innych niż Microsoft do identyfikowania sond kondycji. Akceptuje dowolny ciąg o długości do 64 znaków.

Niektóre przypadki użycia filtrowania nagłówków http to:

  • Ograniczanie dostępu do ruchu z serwerów proxy przekazujących nazwę hosta
  • Ograniczanie dostępu do określonego wystąpienia usługi Azure Front Door przy użyciu reguły tagu usługi i ograniczenia nagłówka X-Azure-FDID

Rejestrowanie diagnostyczne

Usługa App Service może wysyłać różne kategorie rejestrowania do usługi Azure Monitor. Jedna z tych kategorii jest wywoływana IPSecurity Audit logs i reprezentuje działania w ograniczeniach dostępu. Wszystkie żądania zgodne z regułą (z wyjątkiem niedopasowanej reguły), zarówno zezwalają, jak i odrzucają, są rejestrowane i mogą służyć do weryfikowania konfiguracji ograniczeń dostępu. Funkcja rejestrowania jest również zaawansowanym narzędziem podczas rozwiązywania problemów z konfiguracją reguł.

Zaawansowane przypadki użycia

Połączenie powyższych funkcji pozwala rozwiązać niektóre konkretne przypadki użycia opisane w poniższych sekcjach.

Blokowanie pojedynczego adresu IP

Jeśli chcesz odmówić/zablokować co najmniej jeden konkretny adres IP, możesz dodać adresy IP jako reguły odmowy i skonfigurować niezgodną regułę, aby zezwolić na cały niezgodny ruch.

Ograniczanie dostępu do witryny narzędzi zaawansowanych

Witryna narzędzi zaawansowanych, nazywana również narzędziami scm lub kudu, ma indywidualną kolekcję reguł, którą można skonfigurować. Możesz również skonfigurować niedopasowaną regułę dla tej witryny. Ustawienie umożliwia używanie reguł skonfigurowanych dla lokacji głównej. Nie można selektywnie zezwalać na dostęp do niektórych zaawansowanych funkcji witryny narzędzi. Na przykład nie można selektywnie zezwalać na dostęp tylko do konsoli zarządzania zadaniami WebJobs w witrynie zaawansowanych narzędzi.

Wdrażanie za pośrednictwem prywatnego punktu końcowego

Być może masz lokację, która jest publicznie dostępna, ale system wdrażania znajduje się w sieci wirtualnej. Ruch wdrożeniowy można zachować jako prywatny, dodając prywatny punkt końcowy. Następnie należy upewnić się, że dostęp do publicznej aplikacji jest włączony. Na koniec należy ustawić niezgodną regułę dla witryny zaawansowanych narzędzi, która blokuje cały ruch publiczny do tego punktu końcowego.

Zezwalanie partnerom zewnętrznym na dostęp do prywatnej lokacji chronionej przez punkt końcowy

W tym scenariuszu uzyskujesz dostęp do witryny za pośrednictwem prywatnego punktu końcowego i wdrażasz za pośrednictwem prywatnego punktu końcowego. Możesz tymczasowo zaprosić zewnętrznego partnera do przetestowania witryny. Można to zrobić, włączając dostęp do publicznej aplikacji. Dodaj regułę (opartą na adresach IP), aby zidentyfikować klienta partnera. Skonfiguruj niepasowaną akcję reguł w celu odmowy zarówno dla witryny narzędzi głównych, jak i zaawansowanych.

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 o nazwie X-Azure-FDID. Identyfikator usługi Front Door można znaleźć w portalu.

Następne kroki

Uwaga

Reguły ograniczeń dostępu blokujące publiczny dostęp do witryny mogą również blokować usługi, takie jak przesyłanie strumieniowe dzienników. Jeśli są one wymagane, musisz zezwolić na adres IP usługi App Service w swoich ograniczeniach.