Zabezpieczenia w usłudze Azure App Service

W tym artykule pokazano, jak usługa aplikacja systemu Azure pomaga zabezpieczyć aplikację internetową, zaplecze aplikacji mobilnej, aplikację interfejsu API i aplikację funkcji. Pokazuje również, jak można dodatkowo zabezpieczyć aplikację za pomocą wbudowanych funkcji usługi App Service.

Składniki platformy App Service, w tym maszyny wirtualne platformy Azure, magazyn, połączenia sieciowe, struktury internetowe oraz funkcje zarządzania i integracji, są aktywnie zabezpieczone i wzmocnione. Usługa App Service przeprowadza intensywne kontrole zgodności w sposób ciągły, aby upewnić się, że:

  • Zasoby aplikacji są zabezpieczone przed zasobami platformy Azure innych klientów.
  • Wystąpienia maszyn wirtualnych i oprogramowanie uruchomieniowe są regularnie aktualizowane w celu rozwiązania nowo wykrytych luk w zabezpieczeniach.
  • Komunikacja wpisów tajnych (takich jak parametry połączenia) między aplikacją a innymi zasobami platformy Azure (takimi jak usługa SQL Database) pozostaje na platformie Azure i nie przekracza żadnych granic sieci. Wpisy tajne są zawsze szyfrowane podczas przechowywania.
  • Cała komunikacja za pośrednictwem funkcji łączności usługi App Service, takich jak połączenie hybrydowe, jest szyfrowana.
  • Połączenie ions z narzędziami do zdalnego zarządzania, takimi jak program Azure PowerShell, interfejs wiersza polecenia platformy Azure, zestawy AZURE SDK, interfejsy API REST, są szyfrowane.
  • 24-godzinne zarządzanie zagrożeniami chroni infrastrukturę i platformę przed złośliwym oprogramowaniem, rozproszoną odmową usługi (DDoS), man-in-the-middle (MITM) i innymi zagrożeniami.

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

W poniższych sekcjach pokazano, jak dodatkowo chronić aplikację usługi App Service przed zagrożeniami.

Protokół HTTPS i certyfikaty

Usługa App Service umożliwia zabezpieczanie aplikacji przy użyciu protokołu HTTPS. Po utworzeniu aplikacji jej domyślna nazwa domeny (<app_name.azurewebsites.net>) jest już dostępna przy użyciu protokołu HTTPS. Jeśli skonfigurujesz domenę niestandardową dla aplikacji, należy ją również zabezpieczyć przy użyciu certyfikatu TLS/SSL, aby przeglądarki klienckie mogły zabezpieczyć połączenia HTTPS z domeną niestandardową. Istnieje kilka typów certyfikatów obsługiwanych przez usługę App Service:

  • Bezpłatny certyfikat zarządzany przez usługę 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 certyfikatu TLS/SSL w usłudze aplikacja systemu Azure.

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

Aby zabezpieczyć aplikację przed wszystkimi połączeniami niezaszyfrowanych (HTTP), usługa App Service zapewnia konfigurację jednym kliknięciem w celu wymuszenia protokołu HTTPS. Niezabezpieczone żądania są odwrócone, zanim jeszcze dotrą do kodu aplikacji. Aby uzyskać więcej informacji, zobacz Wymuszanie protokołu HTTPS.

Protokół TLS 1.0 nie jest już uważany za bezpieczny zgodnie ze standardami branżowymi, takimi jak PCI DSS. Usługa App Service umożliwia wyłączenie nieaktualnych protokołów przez wymuszanie protokołu TLS 1.1/1.2.

Usługa App Service obsługuje zarówno protokół FTP, jak i FTPS na potrzeby wdrażania plików. Jednak ftpS należy używać zamiast FTP, jeśli w ogóle jest to możliwe. Jeśli jeden lub oba te protokoły nie są używane, należy je wyłączyć.

Ograniczenia statycznych adresów IP

Domyślnie aplikacja usługi App Service akceptuje żądania ze wszystkich adresów IP z Internetu, ale można ograniczyć ten dostęp do małego 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 aplikacja systemu Azure Service Static IP Restrictions (Ograniczenia statycznych adresów IP usługi aplikacja systemu Azure Service).

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 (Dynamic IP Security <dynamicIpSecurity>).

Uwierzytelnianie i autoryzacja klienta

usługa aplikacja systemu Azure zapewnia uwierzytelnianie za pomocą klucza i autoryzację użytkowników lub aplikacji klienckich. Po włączeniu można logować użytkowników i aplikacje klienckie z niewielkim kodem aplikacji lub bez niego. Możesz zaimplementować własne rozwiązanie uwierzytelniania i autoryzacji lub zezwolić usłudze App Service na jej obsługę. Moduł uwierzytelniania i autoryzacji obsługuje żądania internetowe przed przekazaniem ich do kodu aplikacji i odrzuca nieautoryzowane żądania przed dotarciem do kodu.

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

Uwierzytelnianie między usługami

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

Połączenie ivity do zasobów zdalnych

Istnieją trzy typy zasobów zdalnych, do których aplikacja może potrzebować dostępu:

W każdym z tych przypadków usługa App Service umożliwia nawiązywanie bezpiecznych połączeń, ale nadal należy przestrzegać najlepszych rozwiązań w zakresie zabezpieczeń. Na przykład zawsze używaj szyfrowanych połączeń, nawet jeśli zasób zaplecza zezwala na niezaszyfrowane połączenia. Ponadto upewnij się, że usługa platformy Azure zaplecza zezwala na minimalny zestaw adresów IP. Adresy IP ruchu wychodzącego dla aplikacji można znaleźć na stronie Adresy IP dla ruchu przychodzącego i wychodzącego w usłudze aplikacja systemu Azure Service.

Zasoby platformy Azure

Gdy aplikacja łączy się z zasobami platformy Azure, takimi jak usługi SQL Database i Azure Storage, połączenie pozostaje na platformie Azure i nie przekracza żadnych granic sieci. Jednak połączenie przechodzi przez sieć udostępnioną na platformie Azure, więc zawsze upewnij się, że połączenie jest szyfrowane.

Jeśli aplikacja jest hostowana w środowisku usługi App Service, 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 usłudze Azure Virtual Network

Aplikacja może uzyskiwać dostęp do zasobów w usłudze Azure Virtual Network za pośrednictwem integracji z siecią wirtualną. Integracja jest ustanawiana z siecią wirtualną 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. Jednak 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 usługi App Service. Ponieważ środowisko usługi App Service jest zawsze wdrażane w dedykowanej sieci wirtualnej, łączność między aplikacją i zasobami w sieci wirtualnej jest w pełni izolowana. Aby zapoznać się z innymi aspektami zabezpieczeń sieci w środowisku usługi App Service, zobacz Izolacja sieci.

Zasoby lokalne

Możesz bezpiecznie uzyskać dostęp do zasobów lokalnych, takich jak bazy danych, na trzy sposoby:

  • Połączenia hybrydowe — ustanawia połączenie typu punkt-punkt z zasobem zdalnym za pośrednictwem tunelu TCP. Tunel TCP jest ustanawiany przy użyciu protokołu TLS 1.2 z kluczami sygnatury dostępu współdzielonego (SAS).
  • Integracja sieci wirtualnej z siecią VPN typu lokacja-lokacja — zgodnie z opisem w artykule Zasoby wewnątrz sieci wirtualnej platformy Azure, ale sieć wirtualna może być połączona z siecią lokalną za pośrednictwem sieci VPN typu lokacja-lokacja. W tej topologii sieci aplikacja może łączyć się z zasobami lokalnymi, takimi jak inne zasoby w sieci wirtualnej.
  • Środowisko usługi App Service z siecią VPN typu lokacja-lokacja — zgodnie z opisem w artykule Zasoby wewnątrz sieci wirtualnej platformy Azure, ale sieć wirtualna może być połączona z siecią lokalną za pośrednictwem sieci VPN typu lokacja-lokacja. W tej topologii sieci aplikacja może łączyć się z zasobami lokalnymi, takimi jak inne zasoby w sieci wirtualnej.

Wpisy tajne aplikacji

Nie przechowuj wpisów tajnych aplikacji, takich jak poświadczenia bazy danych, tokeny interfejsu API i klucze prywatne w kodzie lub plikach konfiguracji. Powszechnie akceptowane podejście polega na uzyskiwaniu dostępu do nich jako zmiennych środowiskowych przy użyciu standardowego wzorca w wybranym języku. W usłudze App Service sposób definiowania zmiennych środowiskowych odbywa się za pomocą ustawień aplikacji (a zwłaszcza w przypadku aplikacji platformy .NET, parametry połączenia s). Ustawienia aplikacji i parametry połączenia są przechowywane zaszyfrowane na platformie Azure i są odszyfrowywane dopiero przed wstrzyknięciem 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 na potrzeby zaawansowanego zarządzania wpisami tajnymi. Aby uzyskać dostęp do usługi Key Vault przy użyciu tożsamości zarządzanej, aplikacja usługi App Service może bezpiecznie uzyskać dostęp do potrzebnych wpisów tajnych.

Izolacja sieciowa

Z wyjątkiem warstwy cenowej Izolowana wszystkie warstwy uruchamiają aplikacje w udostępnionej infrastrukturze sieciowej w usłudze App Service. Na przykład publiczne adresy IP i moduły równoważenia obciążenia frontonu są współużytkowane z innymi dzierżawami. Warstwa Izolowana zapewnia pełną izolację sieci, uruchamiając aplikacje w dedykowanym środowisku usługi App Service. Środowisko usługi App Service działa we własnym wystąpieniu usługi Azure Virtual Network. Umożliwia to wykonywanie następujących operacji:

  • Udostępnianie aplikacji za pośrednictwem dedykowanego publicznego punktu końcowego z dedykowanymi frontonami.
  • Obsługa aplikacji wewnętrznej przy użyciu wewnętrznego modułu równoważenia obciążenia (ILB), który umożliwia dostęp tylko z poziomu sieci wirtualnej platformy Azure. Wewnętrzny moduł równoważenia obciążenia ma adres IP z podsieci prywatnej, która zapewnia całkowitą izolację aplikacji z Internetu.
  • Użyj modułu równoważenia obciążenia za zaporą aplikacji internetowej (WAF). Zapora aplikacji internetowej oferuje ochronę na poziomie przedsiębiorstwa w aplikacjach publicznych, takich jak ochrona przed atakami DDoS, filtrowanie identyfikatorów URI i zapobieganie wstrzyknięciu kodu SQL.

Ochrona przed atakami DDoS

W przypadku obciążeń internetowych zdecydowanie zalecamy korzystanie z ochrony przed atakami DDoS platformy Azure i zapory aplikacji internetowej w celu ochrony przed pojawiającymi się atakami DDoS. Inną opcją jest wdrożenie usługi Azure Front Door wraz z zaporą aplikacji internetowej. Usługa Azure Front Door oferuje ochronę na poziomie platformy przed atakami DDoS na poziomie sieci.

Aby uzyskać więcej informacji, zobacz Wprowadzenie do środowiska usługi aplikacja systemu Azure.