Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule pokazano, jak ograniczyć ruch wychodzący z aplikacji usługi App Service do zasobów zaplecza Azure lub innych zasobów sieciowych za pomocą usługi Azure Firewall. Ta konfiguracja pomaga zapobiegać eksfiltracji danych lub ryzyku wszczepienia złośliwego programu.
Domyślnie aplikacja usługi App Service może wysyłać żądania wychodzące do publicznego Internetu (na przykład podczas instalowania wymaganych pakietów Node.js z NPM.org). Jeśli aplikacja jest zintegrowana z siecią wirtualną platformy Azure, możesz kontrolować ruch wychodzący z sieciowymi grupami zabezpieczeń w ograniczonym zakresie, takim jak docelowy adres IP, port i protokół. Usługa Azure Firewall umożliwia kontrolowanie ruchu wychodzącego na znacznie bardziej szczegółowym poziomie i filtrowanie ruchu na podstawie analizy zagrożeń w czasie rzeczywistym z poziomu usługi Microsoft Cyber Security. Możesz centralnie tworzyć, wymuszać i rejestrować zasady łączności aplikacji i sieci w subskrypcjach i sieciach wirtualnych (zobacz Funkcje usługi Azure Firewall).
Aby zapoznać się ze szczegółowymi pojęciami dotyczącymi sieci i ulepszeniami zabezpieczeń w usłudze App Service, zobacz Funkcje sieciowe i Od zera do bohatera z App Service, część 6: Zabezpieczenie twojej aplikacji webowej.
Wymagania wstępne
- Włącz regionalną integrację sieci wirtualnej dla aplikacji.
- Sprawdź, czy opcja Route All jest włączona. To ustawienie jest domyślnie włączone, co informuje usługę App Service o kierowaniu całego ruchu wychodzącego przez zintegrowaną sieć wirtualną. Jeśli go wyłączysz, ruch tylko do prywatnych adresów IP będzie kierowany przez sieć wirtualną.
- Jeśli chcesz również kierować dostęp do usług zaplecza platformy Azure za pośrednictwem usługi Azure Firewall, wyłącz wszystkie punkty końcowe usługi w podsieci usługi App Service w zintegrowanej sieci wirtualnej. Po skonfigurowaniu usługi Azure Firewall ruch wychodzący do usług platformy Azure będzie kierowany przez zaporę zamiast punktów końcowych usługi.
1. Utwórz wymaganą podsieć zapory sieciowej
Aby wdrożyć zaporę w zintegrowanej sieci wirtualnej, potrzebna jest podsieć o nazwie AzureFirewallSubnet.
- W witrynie Azure Portal przejdź do sieci wirtualnej zintegrowanej z aplikacją.
- W obszarze nawigacji po lewej stronie wybierz Podsieci>+ Podsieć.
- W polu Nazwa wpisz AzureFirewallSubnet.
- Zakres adresów podsieci, zaakceptuj domyślny lub określ zakres o rozmiarze co najmniej /26.
- Wybierz pozycję Zapisz.
2. Wdróż zaporę i uzyskaj jej adres IP
W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Utwórz zasób.
Wpisz firewall w polu wyszukiwania i naciśnij Enter.
Wybierz pozycję Zapora, a następnie wybierz pozycję Utwórz.
Na stronie Tworzenie zapory skonfiguruj zaporę, jak pokazano w poniższej tabeli:
Ustawienie Wartość Grupa zasobów: Ta sama grupa zasobów co zintegrowana sieć wirtualna. Nazwa/nazwisko Wybrana nazwa Region Ten sam region co zintegrowana sieć wirtualna. Zasady zapory Utwórz go, wybierając pozycję Dodaj nową. Sieć wirtualna Wybierz zintegrowaną sieć wirtualną. Publiczny adres IP Wybierz istniejący adres lub utwórz go, wybierając pozycję Dodaj nowy. Kliknij pozycję Przejrzyj i utwórz.
Wybierz ponownie pozycję Utwórz .
Wdrożenie potrwa klika minut.
Po zakończeniu wdrażania przejdź do grupy zasobów i wybierz zaporę.
Na stronie Przegląd zapory skopiuj prywatny adres IP. Prywatny adres IP będzie używany jako adres następnego przeskoku w regule routingu dla sieci wirtualnej.
3. Przekieruj cały ruch do zapory
Podczas tworzenia sieci wirtualnej platforma Azure automatycznie tworzy domyślną tabelę tras dla każdej z jej podsieci i dodaje domyślne trasy systemowe do tabeli. W tym kroku utworzysz tabelę tras zdefiniowaną przez użytkownika, która kieruje cały ruch do zapory, a następnie skojarzysz ją z podsiecią usługi App Service w zintegrowanej sieci wirtualnej.
W menu witryny Azure Portal wybierz pozycję Wszystkie usługi lub wyszukaj i wybierz pozycję Wszystkie usługi na dowolnej stronie.
W obszarze Sieć wybierz pozycję Tabele tras.
Wybierz Dodaj.
Skonfiguruj tabelę tras, tak jak w poniższym przykładzie:
Upewnij się, że wybrano ten sam region co utworzona zapora.
Wybierz pozycję Przejrzyj i utwórz.
Wybierz pozycję Utwórz.
Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.
W obszarze nawigacji po lewej stronie wybierz pozycję Trasy>Dodaj.
Skonfiguruj nową trasę, jak pokazano w poniższej tabeli:
Ustawienie Wartość Prefiks adresu 0.0.0.0/0 Typ następnego skoku Urządzenie wirtualne Adres następnego skoku Prywatny adres IP dla zapory, który skopiowałeś w 2. Wdróż zaporę i uzyskaj jej adres IP. W obszarze nawigacji po lewej stronie wybierz pozycję Kojarzenie podsieci>
W obszarze Sieć wirtualna wybierz zintegrowaną sieć wirtualną.
W obszarze Podsieć wybierz podsieć usługi App Service.
Wybierz przycisk OK.
4. Konfigurowanie zasad zapory
Ruch wychodzący z aplikacji jest teraz kierowany przez zintegrowaną sieć wirtualną do zapory. Aby kontrolować ruch wychodzący usługi App Service, dodaj regułę aplikacji do zasad zapory.
Przejdź do strony podsumowania zapory i wybierz jej politykę.
Na stronie zasad zapory, w obszarze nawigacji po lewej stronie, wybierz Reguły aplikacji>Dodaj kolekcję reguł.
W obszarze Reguły dodaj regułę sieciową z podsiecią usługi App Service jako adresem źródłowym i określ docelowy adres FQDN. Na poniższym zrzucie ekranu docelowa nazwa FQDN jest ustawiona na
contoso.com
.Uwaga
Zamiast określać podsieć usługi App Service jako adres źródłowy, możesz również bezpośrednio użyć prywatnego adresu IP aplikacji w podsieci. Prywatny adres IP aplikacji można znaleźć w podsieci przy użyciu zmiennej środowiskowej
WEBSITE_PRIVATE_IP
.Wybierz Dodaj.
5. Sprawdź ruch wychodzący
Łatwym sposobem sprawdzenia konfiguracji jest użycie curl
polecenia z konsoli debugowania SCM aplikacji w celu zweryfikowania połączenia wychodzącego.
W przeglądarce przejdź do
https://<app-name>.scm.azurewebsites.net/DebugConsole
.W konsoli programu uruchom polecenie
curl -s <protocol>://<fqdn-address>
z adresem URL zgodnym ze skonfigurowaną regułą aplikacji. Poniższy zrzut ekranu przedstawia przykład witryny internetowej, która pokazuje pomyślną odpowiedź z interfejsu API przedstawiającą adres IP.Uruchom ponownie polecenie
curl -s <protocol>://<fqdn-address>
przy użyciu adresu URL, który nie jest zgodny ze skonfigurowaną regułą aplikacji. Na poniższym zrzucie ekranu nie otrzymujesz odpowiedzi, co oznacza, że zapora zablokowała żądanie wychodzące z aplikacji.
Napiwek
Ponieważ te żądania wychodzące przechodzą przez zaporę, można je przechwycić w dziennikach zapory, włączając rejestrowanie diagnostyczne zapory (włącz usługę AzureFirewallApplicationRule).
Jeśli uruchomisz polecenia curl
z włączonymi dziennikami diagnostycznymi, możesz je znaleźć w dziennikach zapory.
W portalu Azure przejdź do zapory.
W obszarze nawigacji po lewej stronie wybierz pozycję Dzienniki.
Zamknij wiadomość powitalną, wybierając pozycję X.
W obszarze Wszystkie zapytania wybierz Dzienniki zapory>Dane dziennika reguł aplikacji.
Kliknij Uruchom. Te dwa dzienniki dostępu są widoczne w wynikach zapytania.