Udostępnij za pośrednictwem


Zabezpieczenia w usłudze Azure App Service

W tym artykule opisano, jak usługa Azure App Service pomaga zabezpieczyć aplikację internetową, zaplecze aplikacji mobilnej, aplikację interfejsu API lub aplikację funkcji. W tym artykule opisano również, jak można dodatkowo zabezpieczyć aplikację przy użyciu wbudowanych funkcji usługi App Service.

Usługa Azure App Service aktywnie zabezpiecza i wzmacnia jej składniki platformy, w tym maszyny wirtualne platformy Azure, magazyn, połączenia sieciowe, struktury internetowe oraz funkcje zarządzania i integracji. Usługa App Service przechodzi ciągłe, rygorystyczne kontrole zgodności w celu zapewnienia, że:

Aby uzyskać więcej informacji na temat zabezpieczeń infrastruktury i platformy na platformie Azure, zobacz Centrum zaufania Platformy Azure.

W poniższych sekcjach opisano więcej sposobów ochrony aplikacji usługi App Service przed zagrożeniami.

Protokół HTTPS i certyfikaty

Usługa App Service umożliwia zabezpieczanie aplikacji za pośrednictwem protokołu HTTPS. Po utworzeniu aplikacji domyślna nazwa <app_name>.azurewebsites.net domeny jest już dostępna za pośrednictwem protokołu HTTPS. Jeśli skonfigurujesz domenę niestandardową dla aplikacji, zabezpiecz ją przy użyciu certyfikatu TLS/SSL , aby przeglądarki klienckie mogły zabezpieczyć połączenia HTTPS z domeną niestandardową.

Usługa App Service obsługuje następujące typy certyfikatów:

  • Bezpłatny certyfikat zarządzany usługi App Service
  • Certyfikat usługi App Service
  • Certyfikat innej firmy
  • Certyfikat zaimportowany z usługi Azure Key Vault

Aby uzyskać więcej informacji, zobacz Dodawanie certyfikatów TLS/SSL i zarządzanie nimi w usłudze Azure App Service.

Niezabezpieczone protokoły (HTTP, TLS 1.0, FTP)

Domyślnie usługa App Service wymusza przekierowanie z żądań HTTP do protokołu HTTPS. Niezabezpieczone żądania są przekierowywane przed dotarciem do kodu aplikacji. Aby zmienić to zachowanie, zobacz Konfigurowanie ustawień ogólnych.

Usługa Azure App Service obsługuje następujące wersje protokołu Transport Layer Security (TLS) dla żądań przychodzących do aplikacji internetowej:

  • TLS 1.3: najnowsza i najbezpieczniejsza wersja.
  • TLS 1.2: domyślna minimalna wersja protokołu TLS dla nowych aplikacji internetowych.
  • TLS 1.1 i TLS 1.0: wersje obsługiwane w celu zapewnienia zgodności z poprzednimi wersjami, ale nie są uznawane za bezpieczne przez standardy branżowe, takie jak Payment Card Industry Data Security Standard (PCI DSS).

Minimalną wersję protokołu TLS można skonfigurować dla żądań przychodzących do aplikacji internetowej i witryny Menedżera kontroli źródła (SCM). Domyślnie wartość minimalna jest ustawiona na tls 1.2. Aby zezwolić na różne wersje protokołu TLS, zobacz Konfigurowanie ustawień ogólnych.

Usługa App Service obsługuje zarówno protokół FTP, jak i FTPS na potrzeby wdrażania plików aplikacji. Nowe aplikacje są domyślnie akceptowane tylko za pomocą protokołu FTPS. Aby zwiększyć bezpieczeństwo, użyj protokołu FTPS zamiast protokołu FTP, jeśli to możliwe. Jeśli nie używasz protokołu FTP/S, należy go wyłączyć. Aby uzyskać więcej informacji, zobacz Wdrażanie aplikacji w usłudze Azure App Service przy użyciu protokołu FTP/S.

Ograniczenia statycznych adresów IP

Domyślnie aplikacja usługi App Service akceptuje żądania ze wszystkich internetowych adresów IP, ale można ograniczyć dostęp do podzestawu adresów IP. Usługa App Service w systemie Windows umożliwia zdefiniowanie listy adresów IP, które mogą uzyskiwać dostęp do aplikacji. Lista dozwolonych może zawierać poszczególne adresy IP lub zakres adresów IP zdefiniowanych przez maskę podsieci. Aby uzyskać więcej informacji, zobacz Konfigurowanie ograniczeń dostępu do usługi aplikacja systemu Azure.

W przypadku usługi App Service w systemie Windows można również dynamicznie ograniczać adresy IP, konfigurując plik web.config . Aby uzyskać więcej informacji, zobacz Dynamic IP Security <dynamicIpSecurity>.

Uwierzytelnianie i autoryzacja klienta

Usługa App Service zapewnia wbudowane uwierzytelnianie i autoryzację użytkowników lub aplikacji klienckich. Możesz zaimplementować własne rozwiązanie uwierzytelniania i autoryzacji lub zezwolić usłudze App Service na jej obsługę.

Po włączeniu wbudowane uwierzytelnianie i autoryzację mogą logować użytkowników i aplikacje klienckie przy bardzo małym użyciu kodu aplikacji. Moduł uwierzytelniania i autoryzacji obsługuje żądania internetowe przed przekazaniem ich do kodu aplikacji i odrzuca nieautoryzowane żądania.

Uwierzytelnianie i autoryzacja usługi App Service obsługują wielu dostawców uwierzytelniania, w tym Microsoft Entra ID, konta Microsoft, Facebook, Google i X. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie i autoryzacja w Azure App Service.

Uwierzytelnianie między usługami

Podczas uwierzytelniania w usłudze zaplecza usługa App Service udostępnia dwa mechanizmy w zależności od potrzeb:

Łączność z zasobami zdalnymi

Aplikacja może wymagać dostępu do zasobów platformy Azure, zasobów lokalnych lub zasobów w sieci wirtualnej platformy Azure. Usługa App Service udostępnia bezpieczną metodę połączenia dla każdego z tych scenariuszy. Należy również obserwować najlepsze rozwiązania w zakresie zabezpieczeń, takie jak zawsze używanie szyfrowanych połączeń, nawet jeśli zasób zaplecza zezwala na niezaszyfrowane połączenia.

Upewnij się również, że usługa zaplecza Azure zezwala na najmniejszy możliwy zestaw adresów IP. Aby znaleźć adresy IP ruchu wychodzącego dla aplikacji, zobacz Znajdowanie wychodzących adresów IP.

Zasoby platformy Azure

Gdy aplikacja łączy się z zasobami platformy Azure, takimi jak Azure SQL Database i Azure Storage, połączenie pozostaje na platformie Azure i nie przekracza żadnych granic sieci. Połączenie korzysta z sieci udostępnionej na platformie Azure, dlatego upewnij się, że jest ona zaszyfrowana.

Jeśli aplikacja jest hostowana w środowisku App Service Environment, należy nawiązać połączenie z obsługiwanymi usługami platformy Azure przy użyciu punktów końcowych usługi sieci wirtualnej.

Zasoby w sieci wirtualnej platformy Azure

Aplikacja może uzyskiwać dostęp do zasobów w sieci wirtualnej platformy Azure za pośrednictwem integracji sieci wirtualnej przy użyciu sieci VPN typu punkt-lokacja. Aplikacja może następnie uzyskać dostęp do zasobów w sieci wirtualnej przy użyciu prywatnych adresów IP. Połączenie typu punkt-lokacja nadal przechodzi przez udostępnione sieci na platformie Azure.

Aby całkowicie odizolować łączność zasobów z sieci udostępnionych na platformie Azure, utwórz aplikację w środowisku App Service Environment. Ponieważ środowisko App Service Environment jest zawsze wdrażane w dedykowanej sieci wirtualnej, łączność między aplikacją a innymi zasobami w sieci wirtualnej jest w pełni izolowana. Aby uzyskać więcej informacji na temat zabezpieczeń sieci w środowisku App Service Environment, zobacz Izolacja sieci.

Zasoby lokalne

Możesz bezpiecznie uzyskać dostęp do zasobów lokalnych, takich jak bazy danych, w następujący sposób:

  • Połączenie hybrydowe ustanawia połączenie punkt-punkt z zasobem zdalnym za pośrednictwem tunelu protokołu TCP (Transmission Control Protocol), który używa protokołu TLS 1.2 z kluczami sygnatur dostępu współdzielonego.

  • Integracja sieci wirtualnej z siecią VPN typu lokacja-lokacja lub środowiskiem App Service Environment z siecią VPN typu lokacja-lokacja. Te metody łączą sieć wirtualną aplikacji z siecią lokalną zgodnie z opisem w temacie Zasoby wewnątrz sieci wirtualnej platformy Azure, ale sieć wirtualna łączy się z siecią lokalną za pośrednictwem sieci VPN typu lokacja-lokacja. W tych topologiach sieci aplikacja może łączyć się z zasobami lokalnymi w taki sam sposób, jak łączy się z innymi zasobami w sieci wirtualnej.

Sekrety aplikacji

Nie przechowuj sekretów aplikacji, takich jak poświadczenia bazy danych, tokeny interfejsu API i klucze prywatne w kodzie lub plikach konfiguracyjnych. Uzyskaj dostęp do nich jako zmienne środowiskowe przy użyciu standardowego wzorca języka kodu. W usłudze App Service definiujesz zmienne środowiskowe za pomocą ustawień aplikacji , a zwłaszcza w przypadku aplikacji .NET za pomocą parametrów połączenia.

Ustawienia aplikacji i parametry połączenia są przechowywane zaszyfrowane na platformie Azure i są odszyfrowywane tuż przed wstrzyknięciem ich do pamięci procesu aplikacji po uruchomieniu aplikacji. Klucze szyfrowania są regularnie obracane.

Alternatywnie, możesz zintegrować aplikację usługi App Service z usługą Azure Key Vault w celu zaawansowanego zarządzania tajemnicami. Aplikacja usługi App Service może bezpiecznie dostać dostęp do magazynu kluczy przy użyciu tożsamości zarządzanej, aby uzyskać potrzebne tajne informacje.

Izolacja sieciowa

Wszystkie warstwy cenowe usługi App Service uruchamiają aplikacje w udostępnionej infrastrukturze sieciowej platformy Azure z wyjątkiem warstwy cenowej Izolowana. Na przykład publiczne adresy IP i równoważniki obciążenia front-end są współużytkowane z innymi najemcami.

Warstwa Izolowana zapewnia pełną izolację sieci, uruchamiając aplikacje w dedykowanym App Service Environment we własnej instancji Azure Virtual Network. Przy użyciu izolacji sieciowej można wykonywać następujące czynności:

  • Udostępnianie aplikacji za pośrednictwem dedykowanego publicznego punktu końcowego z dedykowanymi frontonami.
  • Obsługa aplikacji wewnętrznych przy użyciu wewnętrznego modułu równoważenia obciążenia (ILB), który umożliwia dostęp tylko z sieci wirtualnej platformy Azure. ILB (wewnętrzny moduł równoważenia obciążenia) ma adres IP z prywatnej podsieci, co zapewnia całkowitą izolację Twoich aplikacji od Internetu.
  • Użyj wewnętrznego modułu równoważenia obciążenia (ILB) za zaporą aplikacji internetowej (WAF). Zapora aplikacji internetowej oferuje filtrowanie URI klasy korporacyjnej, ochronę przed rozproszonymi atakami typu "odmowa usługi" (DDoS) oraz zapobieganie wstrzyknięciu kodu SQL dla publicznie dostępnych aplikacji.

ochrona przed atakami DDoS

W przypadku obciążeń internetowych użyj WAF i Azure DDoS Protection, aby chronić przed pojawiającymi się atakami DDoS. Inną opcją jest wdrożenie usługi Azure Front Door z zaporą aplikacji internetowej na potrzeby ochrony na poziomie platformy przed atakami DDoS na poziomie sieci.