Najlepsze rozwiązania dotyczące zabezpieczeń usługi Azure Service Fabric

Aby uzyskać więcej informacji, zobacz listę kontrolną zabezpieczeń usługi Service Fabric.

Wdrażanie aplikacji na platformie Azure jest szybkie, łatwe i ekonomiczne. Zanim wdrożysz swoją aplikację chmurową do produkcji, zapoznaj się z tą listą niezbędnych i zalecanych najlepszych praktyk wdrażania bezpiecznych klastrów w swojej aplikacji.

Usługa Azure Service Fabric to platforma systemów rozproszonych ułatwiająca pakowanie i wdrażanie skalowalnych i niezawodnych mikrousług oraz zarządzanie nimi. Ponadto usługa Service Fabric pozwala sprostać istotnym wyzwaniom związanym z opracowywaniem aplikacji w chmurze i zarządzaniem nimi. Deweloperzy i administratorzy mogą uniknąć złożonych problemów związanych z infrastrukturą i skoncentrować się na implementowaniu wymagających obciążeń o znaczeniu strategicznym, które są skalowalne, niezawodne i łatwe w zarządzaniu.

W przypadku każdego najlepszego rozwiązania w tym artykule wyjaśniono:

  • Jakie jest najlepsze rozwiązanie.
  • Dlaczego wdrażać najlepsze praktyki.
  • Co może się zdarzyć, jeśli nie zaimplementujesz najlepszych rozwiązań.
  • Jak nauczyć się implementować najlepsze rozwiązanie.

Stosuj następujące najlepsze praktyki bezpieczeństwa Azure Service Fabric:

  • Użyj szablonów usługi Azure Resource Manager i modułu Programu PowerShell usługi Service Fabric, aby utworzyć bezpieczne klastry.
  • Użyj certyfikatów X.509.
  • Konfigurowanie zasad zabezpieczeń.
  • Zaimplementuj konfigurację zabezpieczeń usługi Reliable Actors.
  • Konfigurowanie protokołu TLS dla usługi Azure Service Fabric.
  • Używaj izolacji sieci i zabezpieczeń w usłudze Azure Service Fabric.
  • Konfigurowanie usługi Azure Key Vault pod kątem zabezpieczeń.
  • Przypisz użytkowników do ról.
  • Hostuj nieufne aplikacje w klastrze Service Fabric.

Najlepsze rozwiązania dotyczące zabezpieczania klastrów

Zawsze używaj bezpiecznego klastra:

  • Implementowanie zabezpieczeń klastra przy użyciu certyfikatów.
  • Udostępnij dostęp użytkownika (administrator i tylko do odczytu) za pomocą Microsoft Entra ID.

Użyj wdrożeń automatycznych:

  • Użyj skryptów do generowania, wdrażania i przerzucania wpisów tajnych.
  • Zapisz tajemnice w usłudze Azure Key Vault i użyj Microsoft Entra ID do wszystkich innych dostępów klientów.
  • Wymagaj uwierzytelniania dostępu człowieka do tajemnic.

Rozważ także następujące opcje konfiguracyjne:

  • Utwórz sieci obwodowe (nazywane również strefami zdemilitaryzowanymi, strefami DMZ i podsieciami ekranowanymi) przy użyciu sieciowych grup zabezpieczeń platformy Azure.
  • Uzyskaj dostęp do maszyn wirtualnych klastra lub zarządzaj klastrem przy użyciu serwerów przesiadkowych z połączeniem pulpitu zdalnego.

Zabezpiecz swoje klastry, aby zapobiec nieautoryzowanym użytkownikom łączenia się, zwłaszcza gdy klaster działa w produkcji. Chociaż istnieje możliwość utworzenia niezabezpieczonego klastra, użytkownicy anonimowi mogą łączyć się z klastrem, jeśli klaster uwidacznia punkty końcowe zarządzania z publicznym Internetem.

Istnieją trzy scenariusze implementowania zabezpieczeń klastra przy użyciu różnych technologii:

  • Zabezpieczenia między węzłami: ten scenariusz zabezpiecza komunikację między maszynami wirtualnymi a komputerami w klastrze. Ta forma zabezpieczeń zapewnia, że tylko komputery upoważnione do dołączenia do klastra mogą hostować aplikacje i usługi w klastrze. W tym scenariuszu klastry działające na platformie Azure lub klastry autonomiczne działające w systemie Windows mogą używać zabezpieczeń certyfikatów lub zabezpieczeń systemu Windows dla maszyn z systemem Windows Server.
  • Zabezpieczenia między klientem a węzłem: ten scenariusz zabezpiecza komunikację między klientem usługi Service Fabric a poszczególnymi węzłami w klastrze.
  • Kontrola dostępu oparta na rolach usługi Service Fabric (RBAC usługi Service Fabric): w tym scenariuszu są używane oddzielne tożsamości (certyfikaty, identyfikator firmy Microsoft Entra itd.) dla każdej roli administratora i klienta użytkownika, która uzyskuje dostęp do klastra. Tożsamości ról należy określić podczas tworzenia klastra.

Uwaga

Zalecenie dotyczące zabezpieczeń klastrów platformy Azure: użyj zabezpieczeń firmy Microsoft Entra do uwierzytelniania klientów i certyfikatów na potrzeby zabezpieczeń typu node-to-node.

Aby skonfigurować autonomiczny klaster systemu Windows, zobacz Konfigurowanie ustawień autonomicznego klastra systemu Windows.

Użyj szablonów usługi Azure Resource Manager i modułu Programu PowerShell usługi Service Fabric, aby utworzyć bezpieczny klaster. Aby uzyskać instrukcje krok po kroku dotyczące tworzenia bezpiecznego klastra Service Fabric z szablonami Azure Resource Manager, zobacz Create a Service Fabric cluster.

Użyj szablonu usługi Azure Resource Manager:

  • Dostosuj klaster przy użyciu szablonu, aby skonfigurować magazyn zarządzany dla wirtualnych dysków twardych maszyn wirtualnych (VHD).
  • Wprowadzaj zmiany w grupie zasobów przy użyciu szablonu w celu łatwego zarządzania konfiguracją i audytowania.

Traktuj konfigurację klastra jako kod:

  • Należy dokładnie sprawdzić konfiguracje wdrożenia.
  • Nie używaj ukrytych poleceń do bezpośredniej modyfikacji zasobów.

Możesz zautomatyzować wiele aspektów cyklu życia aplikacji Service Fabric. Moduł Programu PowerShell usługi Service Fabric automatyzuje typowe zadania wdrażania, uaktualniania, usuwania i testowania aplikacji usługi Azure Service Fabric. Dostępne są również zarządzalne API i API HTTP do zarządzania aplikacjami.

Używanie certyfikatów X.509

Najlepsze rozwiązanie: Zawsze zabezpieczaj klastry przy użyciu certyfikatów X.509 lub zabezpieczeń systemu Windows. Szczegóły: Zabezpieczenia można konfigurować tylko podczas tworzenia klastra. Nie możesz włączyć zabezpieczeń po utworzeniu klastra.

Aby określić certyfikat klastra, ustaw wartość właściwości ClusterCredentialType na X509. Aby określić certyfikat serwera dla połączeń zewnętrznych, ustaw właściwość ServerCredentialType na X509.

Ponadto należy postępować zgodnie z następującymi rozwiązaniami:

  • Utwórz certyfikaty dla klastrów produkcyjnych przy użyciu poprawnie skonfigurowanej usługi certyfikatów systemu Windows Server. Możesz również uzyskać certyfikaty od zatwierdzonego urzędu certyfikacji.
  • Nigdy nie używaj tymczasowego lub testowego certyfikatu dla klastrów produkcyjnych, jeśli stworzyłeś certyfikat za pomocą MakeCert.exe lub podobnego narzędzia.
  • Użyj certyfikatu z podpisem własnym dla klastrów testowych, ale nie dla klastrów produkcyjnych.

Jeśli klaster nie jest bezpieczny, każdy może połączyć się z nim anonimowo i wykonywać operacje zarządzania. Z tego powodu zawsze zabezpieczaj klastry produkcyjne przy użyciu certyfikatów X.509 lub zabezpieczeń systemu Windows.

Aby dowiedzieć się więcej na temat używania certyfikatów X.509, zobacz Dodawanie lub usuwanie certyfikatów dla klastra usługi Service Fabric.

Konfigurowanie zasad zabezpieczeń

Service Fabric zabezpiecza również zasoby wykorzystywane przez aplikacje. Service Fabric przechowuje zasoby takie jak pliki, katalogi i certyfikaty pod kontami użytkowników podczas wdrażania aplikacji. Ta funkcja sprawia, że uruchamianie aplikacji jest bardziej bezpieczne względem siebie, nawet w środowisku współdzielonym.

  • Użyj grupy domenowej usługi Active Directory lub użytkownika: uruchom usługę przy użyciu poświadczeń konta użytkownika lub grupy Active Directory. Pamiętaj, aby użyć lokalnej usługi Active Directory w domenie, a nie identyfikatora Entra firmy Microsoft. Dostęp do innych zasobów w domenie za pomocą uprawnień przyznanych użytkownikowi lub grupie domeny. Na przykład zasoby, takie jak udostępnienia plików.

  • Przypisz politykę dostępu bezpieczeństwa dla punktów końcowych HTTP i HTTPS: określ właściwość SecurityAccessPolicy, aby zastosować politykę RunAs do usługi, gdy manifest usługi deklaruje zasoby końcowe z użyciem protokołu HTTP. Porty przydzielone do punktów końcowych HTTP są prawidłowo kontrolowanymi listami dostępu dla konta użytkownika RunAs, którego używa usługa. Jeśli polityka nie jest ustawiona, http.sys nie ma dostępu do usługi i może dojść do błędów podczas wywołań klienta.

Aby dowiedzieć się, jak używać zasad zabezpieczeń w klastrze usługi Service Fabric, zobacz Konfigurowanie zasad zabezpieczeń dla aplikacji.

Implementowanie konfiguracji zabezpieczeń usługi Reliable Actors

Usługa Service Fabric Reliable Actors to implementacja wzorca projektowego aktora. Podobnie jak w przypadku dowolnego wzorca projektowania oprogramowania, decyzja o użyciu określonego wzorca zależy od tego, czy problem z oprogramowaniem pasuje do wzorca.

Ogólnie rzecz biorąc, użyj wzorca projektowego aktora, aby ułatwić modelowanie rozwiązań dla następujących problemów z oprogramowaniem lub scenariuszy zabezpieczeń:

  • Obszar problemu obejmuje dużą liczbę (tysiące lub więcej) małych, niezależnych i izolowanych jednostek stanu i logiki.
  • Pracujesz z obiektami jednowątkowymi, które nie wymagają znacznej interakcji z zewnętrznymi komponentami, w tym z kwerendowaniem stanu w obrębie grupy aktorów.
  • Wystąpienia aktora nie blokują obiektów wywołujących z nieprzewidywalnymi opóźnieniami, wydając operacje we/wy.

W usłudze Service Fabric struktura aplikacji Reliable Actors implementuje aktorów. Ta struktura oparta jest na wzorcu aktora i zbudowana na usługach Service Fabric Reliable Services. Każda niezawodna usługa aktorów, którą napiszesz, działa jako partycjonowana, stanowa niezawodna usługa.

Każdy aktor jest instancją typu aktora, identyczną tak, jak obiekt .NET jest instancją typu .NET. Na przykład typ aktora , który implementuje funkcjonalność kalkulatora, może mieć wiele aktorów tego typu rozproszonych na różnych węzłach w klastrze. Identyfikator aktora unikalnie charakteryzuje każdego rozproszonego aktora.

Używaj konfiguracji zabezpieczeń replikatora , aby zabezpieczyć kanał komunikacyjny, z którego korzysta replikacja. Ta konfiguracja uniemożliwia usługom wyświetlanie ruchu replikacji nawzajem i zapewnia bezpieczeństwo danych o wysokiej dostępności. Domyślnie pusta sekcja konfiguracji zabezpieczeń uniemożliwia zabezpieczenia replikacji.

Konfiguracja replikatora określa ustawienia replikatora odpowiedzialnego za zapewnienie wysokiej niezawodności stanu dostawcy stanu aktora (Actor State Provider).

Konfigurowanie protokołu TLS dla usługi Azure Service Fabric

Proces uwierzytelniania serwera potwierdza autentyczność punktów końcowych zarządzania klastrem dla klienta zarządzającego. Następnie klient zarządzania rozpoznaje, że rozmawia z rzeczywistym klastrem. Ten certyfikat zapewnia również TLS dla interfejsu API zarządzania HTTPS oraz dla narzędzia Service Fabric Explorer dostępnego przez HTTPS. Musisz uzyskać niestandardową nazwę domeny dla klastra. Gdy zażądasz certyfikatu od urzędu certyfikacji, nazwa podmiotu certyfikatu musi być zgodna z niestandardową nazwą domeny, którą używasz dla swojego klastra.

Aby skonfigurować TLS dla aplikacji, najpierw uzyskaj certyfikat SSL/TLS, który podpisuje CA. Urząd certyfikacji jest zaufaną stroną trzecią, która wystawia certyfikaty na potrzeby zabezpieczeń protokołu TLS. Jeśli nie masz jeszcze certyfikatu SSL/TLS, zdobądź go od firmy sprzedającej certyfikaty SSL/TLS.

Certyfikat musi spełniać następujące wymagania dotyczące certyfikatów SSL/TLS na platformie Azure:

  • Certyfikat musi zawierać klucz prywatny.

  • Stwórz certyfikat do wymiany kluczy i udostępnij go eksportowi do pliku wymiany danych osobowych (.pfx).

  • Nazwa podmiotu certyfikatu musi odpowiadać nazwie domeny używanej do korzystania z usługi chmurowej.

    • Uzyskaj niestandardową nazwę domeny, która będzie używana do uzyskiwania dostępu do usługi w chmurze.
    • Zażądaj certyfikatu z urzędu certyfikacji z nazwą podmiotu zgodną z niestandardową nazwą domeny usługi. Jeśli na przykład niestandardowa nazwa domeny to contoso.com, certyfikat z urzędu certyfikacji powinien mieć nazwę .contoso.com lub www.contoso.com.

    Uwaga

    Nie możesz uzyskać certyfikatu SSL/TLS od CA dla domeny cloudapp.net.

  • Certyfikat musi używać co najmniej 2048-bitowego szyfrowania.

Protokół HTTP nie jest bezpieczny i podlega atakom podsłuchowym. Przeglądarka wysyła dane przesyłane przez HTTP jako zwykły tekst do serwera WWW lub między innymi punktami końcowymi. Atakujący mogą przechwytywać i przeglądać wrażliwe dane przesyłane przez HTTP, takie jak dane karty kredytowej czy logowania do kont. Gdy przeglądarka wysyła lub publikuje dane za pomocą HTTPS, SSL szyfruje wrażliwe informacje i chroni je przed przechwyceniem.

Aby dowiedzieć się więcej na temat używania certyfikatów SSL/TLS, zobacz Konfigurowanie protokołu TLS dla aplikacji na platformie Azure.

Korzystanie z izolacji sieci i zabezpieczeń w usłudze Azure Service Fabric

Najlepsze rozwiązanie: konfigurowanie bezpiecznego klastra z izolacją sieciową. Szczegół: Użyj szablonów Azure Resource Manager, aby skonfigurować bezpieczny klaster składający się z trzech węzłów. Kontroluj przychodzący i wychodzący ruch sieciowy przy użyciu szablonu i sieciowych grup zabezpieczeń.

Szablon zawiera grupę zabezpieczeń sieciowych (NSG) dla każdego zestawu skalowania maszyn wirtualnych i kontroluje ruch przychodzący do zestawu i wychodzący z niego. Reguły domyślnie zezwalają na cały ruch niezbędny dla usług systemowych oraz portów aplikacji określonych w szablonie. Przejrzyj te reguły i wprowadź wszelkie zmiany zgodnie z twoimi potrzebami, w tym dodawanie nowych reguł dla aplikacji.

Aby uzyskać więcej informacji, zobacz Typowe scenariusze sieciowe dla usługi Azure Service Fabric.

Konfigurowanie usługi Azure Key Vault pod kątem zabezpieczeń

Najlepsze rozwiązanie: użyj usługi Azure Key Vault do zarządzania certyfikatami dla klastrów usługi Service Fabric. Szczegóły: usługa Service Fabric używa certyfikatów X.509 do zabezpieczania klastra i zapewniania funkcji zabezpieczeń aplikacji. Użyj Azure Key Vault do zarządzania certyfikatami dla klastrów Service Fabric w Azure. Dostawca zasobów platformy Azure, który tworzy klastry, pobiera certyfikaty z magazynu kluczy. Dostawca instaluje certyfikaty na maszynach wirtualnych, gdy Azure wdraża klaster.

Istnieje relacja certyfikatu między usługą Azure Key Vault, klastrem usługi Service Fabric i dostawcą zasobów, który używa certyfikatów. Gdy Azure tworzy klaster, przechowuje informacje o relacji certyfikatu w sejfie kluczy.

Istnieją dwa podstawowe kroki konfigurowania magazynu kluczy:

  1. Utwórz grupę zasobów specjalnie dla Key Vault.

    Umieść sejf kluczy w osobnej grupie zasobów. To działanie pomaga zapobiec utracie kluczy i sekretów, jeśli Azure usunie inne grupy zasobów, takie jak pamięć masowa, obliczenia lub grupa, która zawiera klaster. Grupa zasobów zawierająca Twój sejf kluczy musi znajdować się w tym samym regionie co klaster, który z niego korzysta.

  2. Utwórz magazyn kluczy w nowej grupie zasobów.

    Włącz magazyn kluczy na potrzeby wdrożenia. Dostawca zasobów obliczeniowych może następnie pobrać certyfikaty z magazynu i zainstalować je na instancjach maszyn wirtualnych.

Aby dowiedzieć się więcej na temat konfigurowania magazynu kluczy, zobacz Co to jest usługa Azure Key Vault?

Przypisywanie użytkowników do ról

Najlepsze rozwiązanie: przypisywanie użytkowników do ról obsługiwanych przez usługę Service Fabric. Szczegóły: Po utworzeniu aplikacji reprezentujących swój klaster przypisz swoich użytkowników do roli tylko do odczytu i roli administratora. Użyj portalu Azure, aby przypisać te role.

Uwaga

Aby uzyskać więcej informacji na temat używania ról w usłudze Service Fabric, zobacz Service Fabric role-based access control for Service Fabric clients (Kontrola dostępu oparta na rolach usługi Service Fabric dla klientów usługi Service Fabric).

Azure Service Fabric obsługuje dwa typy kontroli dostępu dla klientów łączących się z klastrem Service Fabric: administrator i użytkownik. Administrator klastra może użyć kontroli dostępu, aby ograniczyć dostęp do niektórych operacji klastra dla różnych grup użytkowników. Kontrola dostępu sprawia, że klaster jest bezpieczniejszy.

Uwagi dotyczące hostowania niezaufanych aplikacji w klastrze Service Fabric

Zobacz Hostowanie niezaufanych aplikacji w klastrze Service Fabric.

Następne kroki