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

Oprócz tego artykułu zapoznaj się również z listą kontrolną zabezpieczeń usługi Service Fabric, aby uzyskać więcej informacji.

Wdrażanie aplikacji na platformie Azure jest szybkie, łatwe i ekonomiczne. Przed wdrożeniem aplikacji w chmurze w środowisku produkcyjnym zapoznaj się z naszą listą najważniejszych i zalecanych najlepszych rozwiązań dotyczących implementowania bezpiecznych klastrów w 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 wyjaśniamy:

  • Najlepsze rozwiązanie.
  • Dlaczego należy zaimplementować najlepsze rozwiązanie.
  • Co może się zdarzyć, jeśli nie zaimplementujesz najlepszych rozwiązań.
  • Jak nauczyć się implementować najlepsze rozwiązanie.

Zalecamy następujące najlepsze rozwiązania dotyczące zabezpieczeń usługi 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.
  • Kwestie, które należy wziąć pod uwagę, jeśli hostowanie niezaufanych aplikacji w klastrze usługi Service Fabric.

Najlepsze rozwiązania dotyczące zabezpieczania klastrów

Zawsze używaj bezpiecznego klastra:

  • Implementowanie zabezpieczeń klastra przy użyciu certyfikatów.
  • Podaj dostęp klienta (administrator i tylko do odczytu) przy użyciu identyfikatora Entra firmy Microsoft.

Użyj wdrożeń automatycznych:

  • Użyj skryptów do generowania, wdrażania i przerzucania wpisów tajnych.
  • Zapisz wpisy tajne w usłudze Azure Key Vault i użyj identyfikatora Entra firmy Microsoft, aby uzyskać dostęp do wszystkich innych klientów.
  • Wymagaj uwierzytelniania dla dostępu człowieka do wpisów tajnych.

Ponadto rozważ następujące opcje konfiguracji:

  • Utwórz sieci obwodowe (nazywane również strefami zdemilitaryzowanymi, strefami DMZ i podsieciami ekranowanymi) przy użyciu sieciowych grup zabezpieczeń platformy Azure.
  • Uzyskiwanie dostępu do maszyn wirtualnych klastra lub zarządzanie klastrem przy użyciu serwerów przesiadkowych za pomocą Połączenie ion pulpitu zdalnego.

Klastry muszą być zabezpieczone, aby uniemożliwić nieautoryzowanym użytkownikom łączenie się, zwłaszcza gdy klaster jest uruchomiony w środowisku produkcyjnym. 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 te komputery, które są autoryzowane 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 usługi Service Fabric przy użyciu szablonów usługi Azure Resource Manager, zobacz Tworzenie klastra usługi Service Fabric.

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).
  • Umożliwia wprowadzanie zmian w grupie zasobów przy użyciu szablonu w celu łatwego zarządzania konfiguracją i inspekcji.

Traktuj konfigurację klastra jako kod:

  • Należy dokładnie sprawdzić konfiguracje wdrożenia.
  • Unikaj używania niejawnych poleceń do bezpośredniego modyfikowania zasobów.

Wiele aspektów cyklu życia aplikacji usługi Service Fabric można zautomatyzować. 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ądzane interfejsy API i interfejsy API HTTP do zarządzania aplikacjami.

Używanie certyfikatów X.509

Zawsze zabezpieczaj klastry przy użyciu certyfikatów X.509 lub zabezpieczeń systemu Windows. Zabezpieczenia są konfigurowane tylko w czasie tworzenia klastra. Po utworzeniu klastra nie można włączyć zabezpieczeń.

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 certyfikat został utworzony przy użyciu narzędzia MakeCert.exe lub podobnego.
  • Użyj certyfikatu z podpisem własnym dla klastrów testowych, ale nie dla klastrów produkcyjnych.

Jeśli klaster jest niezabezpieczony, każdy może anonimowo nawiązać połączenie z klastrem 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ń

Usługa Service Fabric zabezpiecza również zasoby używane przez aplikacje. Zasoby, takie jak pliki, katalogi i certyfikaty, są przechowywane w ramach kont użytkowników podczas wdrażania aplikacji. Ta funkcja sprawia, że uruchamianie aplikacji jest bezpieczniejsze od siebie, nawet w udostępnionym środowisku hostowanym.

  • Użyj grupy domeny usługi Active Directory lub użytkownika: uruchom usługę w obszarze poświadczeń dla konta użytkownika lub grupy usługi Active Directory. Pamiętaj, aby użyć lokalnej usługi Active Directory w domenie, a nie identyfikatora Entra firmy Microsoft. Uzyskaj dostęp do innych zasobów w domenie, którym udzielono uprawnień przy użyciu użytkownika lub grupy domeny. Na przykład zasoby, takie jak udziały plików.

  • Przypisz zasady dostępu zabezpieczeń dla punktów końcowych HTTP i HTTPS: określ właściwość SecurityAccessPolicy , aby zastosować zasady Uruchom jako do usługi, gdy manifest usługi deklaruje zasoby punktu końcowego za pomocą protokołu HTTP. Porty przydzielone do punktów końcowych HTTP są poprawnie kontrolowanymi listami dostępu dla konta użytkownika Uruchom jako, w ramach którego działa usługa. Jeśli zasady nie są ustawione, http.sys nie ma dostępu do usługi i możesz uzyskać błędy z wywołaniami od 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ą znaczącej interakcji ze składnikami zewnętrznymi, w tym ze stanem wykonywania zapytań w zestawie 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 aktorzy są implementowane w strukturze aplikacji Reliable Actors. Ta struktura jest oparta na wzorcu aktora i bazuje na usługach Reliable Services usługi Service Fabric. Każda niezawodna usługa aktora, którą piszesz, to partycjonowana niezawodna usługa stanowa.

Każdy aktor jest definiowany jako wystąpienie typu aktora, identyczny ze sposobem, w jaki obiekt platformy .NET jest wystąpieniem typu .NET. Na przykład typ aktora, który implementuje funkcjonalność kalkulatora, może mieć wiele aktorów tego typu, które są rozproszone w różnych węzłach w klastrze. Każdy z rozproszonych aktorów charakteryzuje się unikatowym identyfikatorem aktora.

Konfiguracje zabezpieczeń replikatora służą do zabezpieczania kanału komunikacyjnego używanego podczas replikacji. 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. Konfiguracje replikatora konfigurują replikator, który jest odpowiedzialny za zapewnienie wysokiej niezawodności dostawcy stanu aktora.

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

Proces uwierzytelniania serwera uwierzytelnia punkty końcowe zarządzania klastrem do klienta zarządzania. Następnie klient zarządzania rozpoznaje, że rozmawia z rzeczywistym klastrem. Ten certyfikat udostępnia również protokół TLS dla interfejsu API zarządzania HTTPS i dla narzędzia Service Fabric Explorer za pośrednictwem protokołu 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 używaną dla klastra.

Aby skonfigurować protokół TLS dla aplikacji, należy najpierw uzyskać certyfikat SSL/TLS podpisany przez urząd certyfikacji. 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, musisz uzyskać go od firmy, która sprzedaje 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.

  • Certyfikat należy utworzyć na potrzeby wymiany kluczy i można go wyeksportować do pliku wymiany informacji osobistych (pfx).

  • Nazwa podmiotu certyfikatu musi być zgodna z nazwą domeny używaną do uzyskiwania dostępu do usługi w chmurze.

    • 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. Na przykład jeśli niestandardowa nazwa domeny to contoso.com, certyfikat z urzędu certyfikacji powinien mieć nazwę podmiotu .contoso.com lub www.contoso.com.

    Uwaga

    Nie można uzyskać certyfikatu SSL/TLS z urzędu certyfikacji dla domeny cloudapp.net.

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

Protokół HTTP jest niezabezpieczony i podlega podsłuchiwaniu ataków. Dane przesyłane za pośrednictwem protokołu HTTP są wysyłane jako zwykły tekst z przeglądarki internetowej do serwera internetowego lub między innymi punktami końcowymi. Osoby atakujące mogą przechwytywać i wyświetlać poufne dane wysyłane za pośrednictwem protokołu HTTP, takie jak szczegóły karty kredytowej i identyfikatory logowania do konta. Gdy dane są wysyłane lub publikowane za pośrednictwem przeglądarki za pośrednictwem protokołu HTTPS, protokół SSL gwarantuje, że poufne informacje są szyfrowane i zabezpieczone 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

Skonfiguruj klaster bezpieczny 3 nodetype przy użyciu szablonu usługi Azure Resource Manager jako przykładu. Kontroluj przychodzący i wychodzący ruch sieciowy przy użyciu szablonu i sieciowych grup zabezpieczeń.

Szablon zawiera sieciową grupę zabezpieczeń dla każdego zestawu skalowania maszyn wirtualnych i służy do kontrolowania ruchu przychodzącego i wychodzącego z zestawu. Reguły są domyślnie konfigurowane tak, aby zezwalały na cały ruch wymagany dla usług systemowych i 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ń

Usługa Service Fabric używa certyfikatów do zapewnienia uwierzytelniania i szyfrowania na potrzeby zabezpieczania klastra i jego aplikacji.

Usługa Service Fabric używa certyfikatów X.509 do zabezpieczania klastra i zapewniania funkcji zabezpieczeń aplikacji. Usługa Azure Key Vault służy do zarządzania certyfikatami dla klastrów usługi Service Fabric na platformie Azure. Dostawca zasobów platformy Azure, który tworzy klastry, pobiera certyfikaty z magazynu kluczy. Następnie dostawca instaluje certyfikaty na maszynach wirtualnych po wdrożeniu klastra na platformie Azure.

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. Po utworzeniu klastra informacje o relacji certyfikatów są przechowywane w magazynie kluczy.

Istnieją dwa podstawowe kroki konfigurowania magazynu kluczy:

  1. Utwórz grupę zasobów specjalnie dla magazynu kluczy.

    Zalecamy umieszczenie magazynu kluczy we własnej grupie zasobów. Ta akcja pomaga zapobiec utracie kluczy i wpisów tajnych w przypadku usunięcia innych grup zasobów, takich jak magazyn, obliczenia lub grupa zawierająca klaster. Grupa zasobów zawierająca magazyn kluczy musi znajdować się w tym samym regionie, w którym jest używany klaster.

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

    Magazyn kluczy musi być włączony do wdrożenia. Dostawca zasobów obliczeniowych może następnie pobrać certyfikaty z magazynu i zainstalować je w wystąpieniach 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

Po utworzeniu aplikacji reprezentujących klaster przypisz użytkowników do ról obsługiwanych przez usługę Service Fabric: tylko do odczytu i administratora. Te role można przypisać przy użyciu witryny Azure Portal.

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).

Usługa Azure Service Fabric obsługuje dwa typy kontroli dostępu dla klientów połączonych z klastrem usługi Service Fabric: administratorem i użytkownikiem. 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.

Kwestie do rozważenia w przypadku hostowania niezaufanych aplikacji w klastrze usługi Service Fabric

Zobacz Hostowanie niezaufanych aplikacji w klastrze usługi Service Fabric.

Następne kroki