Udostępnij za pośrednictwem


Zagadnienia dotyczące zabezpieczeń akceleratora strefy docelowej usługi Azure Spring Apps

W tym artykule opisano zagadnienia dotyczące zabezpieczeń i zalecenia dotyczące obciążenia hostowanego w usłudze Azure Spring Apps. Te wskazówki ułatwiają tworzenie obciążenia, które umożliwia wykrywanie, zapobieganie lukom w zabezpieczeniach i reagowanie na nie.

Zabezpieczona aplikacja nie może zagwarantować bezpieczeństwa całego obciążenia. Jako właściciel obciążenia oceń błędy ludzkie i oceń powierzchnię ataków, na przykład aplikację i usługi infrastruktury, z którymi współdziała aplikacja.

Platforma Azure zapewnia mechanizmy kontroli zabezpieczeń dla sieci, tożsamości i danych w celu zapewnienia obsługi strategii ochrony w głębi systemu. Wiele kontrolek jest wbudowanych w usługę Azure Spring Apps. Te wskazówki są oparte na punkcie odniesienia zabezpieczeń platformy Azure dla usługi Azure Spring Apps pochodzącej z testu porównawczego zabezpieczeń platformy Azure w wersji 2.0. Test porównawczy zawiera zalecenia dotyczące zabezpieczania obciążenia uruchomionego w chmurze usługi Azure Spring Apps.

Scentralizowane zespoły zapewniają mechanizmy kontroli sieci i tożsamości w ramach platformy. Zapewniają one zabezpieczenia w celu utrzymania kontroli nad platformami, aplikacjami i zasobami na platformie Azure. Subskrypcja strefy docelowej aplikacji udostępniona dla obciążenia jest wstępnie aprowizowana za pomocą zasad, które są dziedziczone z grupy zarządzania.

Podczas projektowania obciążenia upewnij się, że mechanizmy kontroli zabezpieczeń, które jesteś właścicielem, są dostosowane do centralnych kontrolek. Projekt podlega okresowym przeglądom przeprowadzonym przez scentralizowany zespół ds. zabezpieczeń. Regularnie przeglądaj mechanizmy kontroli zabezpieczeń i zasady platformy z centralnymi zespołami, aby upewnić się, że wymagania dotyczące obciążeń zostały spełnione.

Aby uzyskać informacje o projekcie platformy, zobacz:

Uwagi dotyczące projektowania

  • Ruch wewnętrzny. Ogranicz lub zezwalaj na ruch między zasobami wewnętrznymi, aby postępować zgodnie z zasadą segmentacji przedsiębiorstwa zgodną z ryzykiem biznesowym. W razie potrzeby utwórz granice izolacji za pośrednictwem sieci wirtualnych i podsieci. Zaimplementuj reguły, aby ograniczyć przepływy ruchu między sieciami.

  • Ruch zewnętrzny. Użyj zasobów natywnych dla platformy Azure, aby chronić zasoby obciążenia przed atakami z sieci zewnętrznych, w tym:

    • Ataki typu "rozproszona odmowa usługi" (DDoS).
    • Ataki specyficzne dla aplikacji.
    • Niepożądany i potencjalnie złośliwy ruch internetowy.
  • Zarządzanie tożsamością. Użyj funkcji firmy Microsoft Entra, takich jak tożsamości zarządzane, logowanie jednokrotne, silne uwierzytelnianie, tożsamości zarządzane i dostęp warunkowy, aby zapewnić uwierzytelnianie i autoryzację za pośrednictwem identyfikatora Entra firmy Microsoft.

  • Monitorowanie zabezpieczeń. System powinien mieć narzędzia do monitorowania w celu wykrywania zagrożeń i mierzenia zgodności przy użyciu celów organizacji i mechanizmów kontroli testu porównawczego zabezpieczeń platformy Azure. Te narzędzia powinny być zintegrowane z centralnymi systemami zarządzania informacjami i zdarzeniami zabezpieczeń (SIEM), aby uzyskać całościowy wgląd w stan zabezpieczeń.

  • Dane przesyłane. Dane przesyłane między składnikami, lokalizacjami lub wywołaniami interfejsu API muszą być szyfrowane.

  • Dane magazynowane. Wszystkie utrwalone dane, w tym konfiguracja, muszą być szyfrowane.

  • Zasady ładu. Należy wykryć odchylenia od standardów zgodności, które są ustawiane przez organizację. Usługa Azure Policy udostępnia wbudowane definicje, które powinny być stosowane do wykrywania odchyleń. Zastosowanie zasad nie zapewnia pełnej zgodności ze wszystkimi wymaganiami kontrolki. Mogą istnieć zgodne standardy, które nie zostały uwzględnione we wbudowanych definicjach.

  • Ujawnienie poświadczeń. Można wdrażać i uruchamiać kod, konfiguracje i utrwalane dane przy użyciu tożsamości lub wpisów tajnych. Upewnij się, że poświadczenia są badane podczas uzyskiwania dostępu do zasobów.

  • Zarządzanie certyfikatami. Certyfikaty muszą być ładowane na podstawie zasady Zero Trust nigdy nie ufać, zawsze weryfikować i muszą być wolne od poświadczeń. Ufaj tylko certyfikatom udostępnionym, weryfikując tożsamość przed udzieleniem dostępu do certyfikatów.

  • Spójne wdrożenia. Użyj infrastruktury jako kodu (IaC), aby zautomatyzować aprowizację i konfigurację wszystkich zasobów platformy Azure i zwiększyć poziom zabezpieczeń.

Zalecenia dotyczące projektowania

Sieć jako obwód

Te mechanizmy kontroli sieci tworzą granice izolacji i ograniczają przepływy w aplikacji i poza nie.

Segmentacja sieci

Utwórz istniejącą sieć wirtualną lub użyj jej podczas wdrażania zasobów usługi Azure Spring Cloud.

Utwórz izolację w sieci wirtualnej za pośrednictwem podsieci. Ogranicz lub zezwalaj na ruch między zasobami wewnętrznymi przy użyciu reguł sieciowej grupy zabezpieczeń. Użyj funkcji adaptacyjnego wzmacniania zabezpieczeń sieci Microsoft Defender dla Chmury, aby jeszcze bardziej wzmocnić konfiguracje sieciowej grupy zabezpieczeń, które ograniczają porty i źródłowe adresy IP. Podstawowe konfiguracje w regułach ruchu sieciowego zewnętrznego.

Podczas tworzenia reguł zabezpieczeń użyj tagów usługi platformy Azure, aby zdefiniować mechanizmy kontroli dostępu do sieci zamiast określonych adresów IP. Po określeniu nazwy tagu usługi w polu źródłowym lub docelowym odpowiedniej reguły zezwalaj lub odmawiaj ruchu dla odpowiedniej usługi. Firma Microsoft zarządza prefiksami adresów, które są objęte tagiem usługi. Automatycznie aktualizuje tag usługi w miarę zmiany adresów.

Użyj tagu AzureSpringCloud usługi w sieciowych grupach zabezpieczeń lub usłudze Azure Firewall, aby zezwolić na ruch do aplikacji w usłudze Azure Spring Apps.

Aby uzyskać więcej informacji, zobacz Obowiązki klienta dotyczące uruchamiania usługi Azure Spring Cloud w sieci wirtualnej.

Połączenie ion z sieciami prywatnymi

W środowisku kolokowanym użyj usługi Azure ExpressRoute lub wirtualnej sieci prywatnej platformy Azure (VPN), aby utworzyć prywatne połączenia między centrami danych platformy Azure i infrastrukturą lokalną. Połączenia usługi ExpressRoute nie przechodzą przez publiczny Internet z niezawodnością, szybszymi szybkościami i niższymi opóźnieniami.

W przypadku sieci VPN typu punkt-lokacja i sieci VPN typu lokacja-lokacja połącz urządzenia lokalne lub sieci z siecią wirtualną. Użyj dowolnej kombinacji tych opcji sieci VPN i usługi Azure ExpressRoute.

Aby połączyć co najmniej dwie sieci wirtualne na platformie Azure, użyj komunikacji równorzędnej sieci wirtualnych. Ruch sieciowy między wirtualnymi sieciami równorzędnymi jest prywatny. Ten typ ruchu jest przechowywany w sieci szkieletowej platformy Azure.

Ataki z sieci zewnętrznych

Umieść kontrolki na ruchu przychodzącym i blokuj ataki warstwy aplikacji za pomocą usługi aplikacja systemu Azure Gateway ze zintegrowaną zaporą aplikacji internetowej (WAF).

Użyj usługi Azure Firewall , aby ograniczyć ruch wychodzący z aplikacji. Za pomocą usługi Azure Firewall można chronić aplikacje i usługi przed potencjalnie złośliwym ruchem z Internetu i innych lokalizacji zewnętrznych.

Filtrowanie oparte na analizie zagrożeń usługi Azure Firewall może wysyłać alert lub blokować ruch do i ze znanych złośliwych adresów IP i domen. Adresy IP i domeny pochodzą z kanału informacyjnego analizy zagrożeń firmy Microsoft. W razie potrzeby inspekcji ładunku w witrynie Azure Marketplace należy wdrożyć system wykrywania/włamań/zapobiegania włamaniom intruzów (IDS/IPS) z witryny Azure Marketplace z funkcjami inspekcji ładunku. Alternatywnie można użyć opartego na hoście rozwiązania IDS/IPS lub rozwiązania wykrywania i reagowania (EDR) opartego na hoście lub zamiast opartego na sieci identyfikatorów/adresów IPS.

Aby chronić zasoby obciążenia przed atakami DDoS, włącz standardową ochronę przed atakami DDoS w sieciach wirtualnych platformy Azure. Użyj Microsoft Defender dla Chmury do wykrywania zagrożeń związanych z błędną konfiguracją zasobów związanych z siecią.

Ochrona usługi nazw domen (DNS)

Hostowanie domen DNS przy użyciu usługi Azure DNS. Ochrona stref i rekordów DNS przed złymi aktorami. W tym celu zaleca się kontrolę dostępu opartą na rolach (RBAC) platformy Azure i blokady zasobów. Aby uzyskać więcej informacji, zobacz Zapobieganie zwisaniu wpisów DNS i unikanie przejęcia poddomeny.

Tożsamość jako obwód

Platforma Azure udostępnia mechanizmy kontroli tożsamości za pośrednictwem identyfikatora Entra firmy Microsoft. Aplikacja ma wiele funkcji, takich jak logowanie jednokrotne, silne uwierzytelnianie, tożsamości zarządzane i dostęp warunkowy. Aby uzyskać informacje o wyborach projektowych dla architektury, zobacz Zagadnienia dotyczące tożsamości dla akceleratora strefy docelowej usługi Azure Spring Apps.

W poniższej sekcji opisano aspekty zabezpieczeń tych opcji.

Integracja ze scentralizowanym systemem tożsamości

Strefy docelowe platformy Azure używają identyfikatora Entra firmy Microsoft jako domyślnej usługi zarządzania tożsamościami i dostępem. Aby zarządzać usługami obciążeń, zaleca się scentralizowany identyfikator entra firmy Microsoft. Scentralizowany identyfikator entra firmy Microsoft obejmuje dostęp do zasobów sieciowych organizacji, usługi Azure Storage, usługi Key Vault i innych usług, od których zależy aplikacja.

Jeśli chcesz udzielić dostępu do płaszczyzny danych usługi Azure Spring Apps, użyj wbudowanej roli Czytelnik danych usługi Azure Spring Cloud. Ta rola zapewnia uprawnienia tylko do odczytu.

Zalecane są następujące funkcje firmy Microsoft Entra:

  • Tożsamości aplikacji. Aplikacja może wymagać dostępu do innych usług platformy Azure. Jeśli na przykład chce pobrać wpisy tajne z usługi Azure Key Vault.

    Użyj tożsamości zarządzanych z usługą Azure Spring Apps, aby aplikacja mogła uwierzytelniać się w innych usługach przy użyciu identyfikatora Microsoft Entra. W tym celu unikaj używania jednostek usługi. Proces uwierzytelniania tożsamości zarządzanych nie używa poświadczeń zakodowanych w kodzie źródłowym lub plikach konfiguracji.

    Jeśli musisz używać jednostek usługi z poświadczeniami certyfikatu i wracać do wpisów tajnych klienta, zaleca się użycie identyfikatora Entra firmy Microsoft do utworzenia jednostki usługi z ograniczonymi uprawnieniami na poziomie zasobu.

    W obu przypadkach usługa Key Vault może być używana z tożsamościami zarządzanymi przez platformę Azure. Składnik środowiska uruchomieniowego, taki jak funkcja platformy Azure, może służyć do pobierania wpisów tajnych z usługi Key Vault. Aby uzyskać więcej informacji, zobacz Authentication in Azure Key Vault (Uwierzytelnianie w usłudze Azure Key Vault).

  • Microsoft Entra single sign-on (SSO). Firma Microsoft Entra SSO zaleca się uwierzytelnianie dostępu do aplikacji z innych aplikacji lub urządzeń uruchomionych w chmurze lub lokalnie. Logowanie jednokrotne zapewnia zarządzanie tożsamościami użytkownikom wewnętrznym i zewnętrznym, takim jak partnerzy lub dostawcy.

  • Silne mechanizmy uwierzytelniania. Usługa Microsoft Entra ID obsługuje silne mechanizmy uwierzytelniania za pomocą uwierzytelniania wieloskładnikowego (MFA) i silnych metod bez hasła. W przypadku administratorów i uprzywilejowanych użytkowników należy użyć najwyższego poziomu metody silnego uwierzytelniania, aby zmniejszyć promień wybuchu, jeśli wystąpi naruszenie. Następnie należy wdrożyć odpowiednie zasady silnego uwierzytelniania dla innych użytkowników. Aby uzyskać więcej informacji, zobacz Enable MFA in Azure and Passwordless authentication options for Microsoft Entra ID (Włączanie uwierzytelniania wieloskładnikowego na platformie Azure) i Passwordless authentication options for Microsoft Entra ID (Włączanie uwierzytelniania wieloskładnikowego na platformie Azure) i Passwordless authentication options for Microsoft En

  • Dostęp warunkowy do zasobów. Usługa Azure Spring Apps obsługuje dostęp warunkowy firmy Microsoft Entra w celu uzyskania bardziej szczegółowej kontroli dostępu opartej na warunkach zdefiniowanych przez użytkownika. Możesz ustawić warunki dołączania logowań użytkowników z określonych zakresów adresów IP, które muszą się zalogować przy użyciu uwierzytelniania wieloskładnikowego. Te zasady dostępu warunkowego mają zastosowanie tylko do kont użytkowników uwierzytelnionych w usłudze Microsoft Entra ID w celu uzyskiwania dostępu do aplikacji i zarządzania nimi. Te zasady nie mają zastosowania do jednostek usługi, kluczy ani tokenów używanych do łączenia się z zasobami obciążenia.

  • Dostęp uprzywilejowany. Zaimplementuj usługę Microsoft Entra Privileged Identity Management , aby zapewnić dostęp do najniższych uprawnień i głębokie raportowanie w całym środowisku platformy Azure. Zespoły powinny rozpocząć cykliczne przeglądy dostępu, aby upewnić się, że odpowiednie osoby i zasady obsługi mają bieżące i poprawne poziomy autoryzacji.

Kontrolki danych

Mechanizmy kontroli sieci i tożsamości ograniczają dostęp do aplikacji, ale dane muszą być chronione. Szyfrowanie zapewnia integralność danych i jest kluczową funkcją zabezpieczeń, która musi być stosowana w celu ograniczenia zagrożeń.

Dane przesyłane

Transferowane dane są podatne na ataki poza pasmem, takie jak przechwytywanie ruchu. Użyj szyfrowania, aby upewnić się, że osoby atakujące nie mogą łatwo odczytać ani zmodyfikować tych danych. Platforma Azure zapewnia szyfrowanie danych przesyłanych między centrami danych platformy Azure.

Usługa Azure Spring Apps obsługuje szyfrowanie przy użyciu protokołu Transport Layer Security (TLS) w wersji 1.2 lub nowszej. Protokół TLS zapewnia bezpieczną komunikację za pośrednictwem tożsamości i zaufania oraz szyfruje komunikację wszystkich typów. Możesz użyć dowolnego typu certyfikatu TLS. Na przykład certyfikaty wystawione przez urząd certyfikacji, certyfikaty rozszerzonej weryfikacji, certyfikaty wieloznaczne z obsługą dowolnej liczby domen podrzędnych lub certyfikaty z podpisem własnym dla środowisk deweloperskich i testowych.

Szyfrowanie ma kluczowe znaczenie dla ruchu w sieciach zewnętrznych i publicznych. Wszystkie publiczne punkty końcowe muszą domyślnie używać protokołu HTTPS dla ruchu przychodzącego. Wywołania zarządzania w celu skonfigurowania usługi Azure Spring Apps za pośrednictwem wywołań interfejsu API usługi Azure Resource Manager muszą być za pośrednictwem protokołu HTTPS.

W przypadku ruchu HTTP upewnij się, że klienci, którzy łączą się z zasobami platformy Azure, mogą negocjować protokół TLS w wersji 1.2 lub nowszej. Nie używaj przestarzałych wersji ani protokołów. Wyłącz słabe szyfry.

W przypadku zdalnego zarządzania, zamiast używać niezaszyfrowanego protokołu, użyj protokołu Secure Shell (SSH) dla systemu Linux lub protokołu RDP (Remote Desktop Protocol) i TLS dla systemu Windows.

Dane magazynowane

Obciążenie wymaga stanu magazynu dla źródła i artefaktów, ustawień serwera konfiguracji, ustawień aplikacji i magazynu. Dane magazynowane po stronie serwera są chronione przez szyfrowanie usługi Azure Storage. Usługa Storage automatycznie szyfruje zawartość przy użyciu kluczy zarządzanych przez firmę Microsoft.

Pamięć podręczna serwera konfiguracji, pliki binarne środowiska uruchomieniowego utworzone z przekazanych źródeł i dzienniki aplikacji w okresie istnienia aplikacji są zapisywane na dysku zarządzanym platformy Azure. Te dane są automatycznie szyfrowane. Obrazy kontenerów utworzone na podstawie przekazanego przez użytkownika źródła są szyfrowane i zapisywane w usłudze Azure Container Registry.

W przypadku scenariuszy pomocy technicznej, gdy firma Microsoft potrzebuje dostępu do odpowiednich danych klientów, użyj skrytki klienta dla platformy Microsoft Azure , ponieważ twój zespół lub organizacja musi zatwierdzić dostęp.

Monitorowanie anomalii kont i wyświetlanie alertów

Microsoft Defender dla Chmury zaleca się otrzymywanie alertów dotyczących podejrzanych działań, takich jak nadmierna liczba nieudanych prób uwierzytelniania lub przestarzałych kont w subskrypcji.

Usługa Azure Spring Apps jest zintegrowana z identyfikatorem Entra firmy Microsoft, który może śledzić działania logowania, w tym ryzykowne logowania. Dzienniki inspekcji umożliwiają wykrywanie zmian wprowadzonych w dowolnych zasobach w ramach identyfikatora Entra firmy Microsoft. Dane są zintegrowane z usługą Azure Monitor i można je eksportować do usługi Azure Sentinel.

Aby uzyskać więcej informacji, zobacz:

Zasady ładu

Wbudowana definicja platformy Azure o nazwie Azure Spring Cloud powinna używać iniekcji sieci umożliwia wymuszanie kontroli sieci.

  1. Wykrywanie implementacji granic izolacji dla aplikacji z Internetu.
  2. Włącz usługę Azure Spring Apps, aby komunikować się z sieciami prywatnymi w lokalnych centrach danych lub usłudze platformy Azure w innych sieciach wirtualnych.
  3. Kontrolowanie przychodzącej i wychodzącej komunikacji sieciowej dla sieci wirtualnej usługi Azure Spring Apps.

Zarządzanie certyfikatami

Aplikacja może potrzebować publicznych certyfikatów TLS podczas komunikacji z usługami zaplecza lub systemami lokalnymi. Certyfikaty można przekazać w usłudze Key Vault.

Aby bezpiecznie załadować certyfikaty z usługi Key Vault, aplikacje Spring Boot używają tożsamości zarządzanych i kontroli dostępu opartej na rolach (RBAC) platformy Azure. Usługa Azure Spring Apps używa jednostki usługi dostawcy i kontroli dostępu opartej na rolach platformy Azure. To bezpieczne ładowanie jest obsługiwane przy użyciu dostawcy JCA (Java Cryptography Architecture) usługi Azure Key Vault. Aby uzyskać więcej informacji, zobacz Biblioteka klienta JCA usługi Azure Key Vault dla języka Java.

Jeśli kod Spring, kod Java lub biblioteki open source, takie jak OpenSSL, polegają na domyślnym łańcuchu JCA JVM, aby niejawnie ładować certyfikaty do magazynu zaufania JVM, możesz zaimportować certyfikaty TLS z usługi Key Vault do usługi Azure Spring Apps. Użyj tych certyfikatów w aplikacji. Aby uzyskać więcej informacji, zobacz Używanie certyfikatów TLS/SSL w aplikacji w usłudze Azure Spring Apps.

Skanowanie poświadczeń

Zaimplementuj skaner poświadczeń, aby zidentyfikować poświadczenia, które uzyskują dostęp do kodu, konfiguracji i utrwalanych danych. Skaner poświadczeń zachęca do przenoszenia odnalezionych poświadczeń do bezpieczniejszych lokalizacji, takich jak usługa Key Vault.

W przypadku usługi GitHub możesz użyć natywnej funkcji skanowania wpisów tajnych do identyfikowania poświadczeń lub innych form wpisów tajnych w kodzie.

Aby uzyskać więcej informacji, zobacz:

Następne kroki

Operacje monitorowania