Zabezpieczanie autonomicznego klastra w systemie Windows przy użyciu zabezpieczeń systemu Windows

Aby zapobiec nieautoryzowanemu dostępowi do klastra usługi Service Fabric, należy zabezpieczyć klaster. Zabezpieczenia są szczególnie ważne, gdy klaster uruchamia obciążenia produkcyjne. W tym artykule opisano sposób konfigurowania zabezpieczeń node-to-node i client-to-node przy użyciu zabezpieczeń systemu Windows w pliku ClusterConfig.JSON . Proces odpowiada krokowi konfigurowania zabezpieczeń w sekcji Tworzenie autonomicznego klastra uruchomionego w systemie Windows. Aby uzyskać więcej informacji o sposobie korzystania z zabezpieczeń systemu Windows przez usługę Service Fabric, zobacz Scenariusze zabezpieczeń klastra.

Uwaga

Należy dokładnie rozważyć wybór zabezpieczeń węzła-węzła, ponieważ nie ma uaktualnienia klastra z jednego wyboru zabezpieczeń do innego. Aby zmienić wybór zabezpieczeń, należy ponownie skompilować pełny klaster.

Konfigurowanie zabezpieczeń systemu Windows przy użyciu usługi gMSA

gMSA jest preferowanym modelem zabezpieczeń. Przykładowy plik konfiguracji ClusterConfig.gMSA.Windows.MultiMachine.JSON pobrany z pliku konfiguracji Microsoft.Azure.ServiceFabric.WindowsServer.< wersja>.zip autonomiczny pakiet klastra zawiera szablon służący do konfigurowania zabezpieczeń systemu Windows przy użyciu konta usługi zarządzanej przez grupę (gMSA):

"security": {
    "ClusterCredentialType": "Windows",
    "ServerCredentialType": "Windows",
    "WindowsIdentities": {  
        "ClustergMSAIdentity": "[gMSA Identity]",
        "ClusterSPN": "[Registered SPN for the gMSA account]",
        "ClientIdentities": [
            {
                "Identity": "domain\\username",
                "IsAdmin": true
            }
        ]
    }
}
Ustawienie konfiguracji Opis
ClusterCredentialType Ustaw wartość Windows , aby włączyć zabezpieczenia systemu Windows na potrzeby komunikacji węzła. 
ServerCredentialType Ustaw wartość Windows , aby włączyć zabezpieczenia systemu Windows na potrzeby komunikacji między węzłami klienta.
Identyfikatory systemu Windows Zawiera tożsamości klastra i klienta.
ClustergMSAIdentity Konfiguruje zabezpieczenia węzła do węzła. Konto usługi zarządzanej przez grupę. Musi być w formacie "mysfgmsa@mydomain".
ClusterSPN Zarejestrowano nazwę SPN dla konta gMSA
Identyfikatory klienta Konfiguruje zabezpieczenia klient-węzeł. Tablica kont użytkowników klienta.
Tożsamość Dodaj użytkownika domeny, domenę\nazwę użytkownika, dla tożsamości klienta.
IsAdmin Ustaw wartość true, aby określić, że użytkownik domeny ma dostęp klienta administratora lub fałsz dostępu klienta użytkownika.

Zabezpieczenia węzła do węzła są konfigurowane przez ustawienie ClustergMSAIdentity , gdy usługa Service Fabric musi działać w ramach grupy GMSA. Aby tworzyć relacje zaufania między węzłami, muszą być one świadome siebie nawzajem. Można to zrobić na dwa różne sposoby: określ konto usługi zarządzanej przez grupę, które obejmuje wszystkie węzły w klastrze lub Określ grupę maszyny domeny, która zawiera wszystkie węzły w klastrze. Zdecydowanie zalecamy użycie podejścia do konta usługi zarządzanej przez grupę (gMSA ), szczególnie w przypadku większych klastrów (więcej niż 10 węzłów) lub klastrów, które mogą rosnąć lub zmniejszać.
Takie podejście nie wymaga utworzenia grupy domeny, dla której administratorzy klastra otrzymali prawa dostępu do dodawania i usuwania członków. Te konta są również przydatne do automatycznego zarządzania hasłami. Aby uzyskać więcej informacji, zobacz Wprowadzenie z kontami usług zarządzanych przez grupę.

Zabezpieczenia klienta do węzła są konfigurowane przy użyciu identyfikatorów ClientIdentities. Aby nawiązać relację zaufania między klientem a klastrem, należy skonfigurować klaster, aby wiedzieć, które tożsamości klientów mogą ufać. Można to zrobić na dwa różne sposoby: określ użytkowników grupy domen, którzy mogą łączyć się lub określać użytkowników węzłów domeny, którzy mogą się łączyć. Usługa Service Fabric obsługuje dwa różne typy kontroli dostępu dla klientów połączonych z klastrem usługi Service Fabric: administratorem i użytkownikiem. Kontrola dostępu umożliwia administratorowi klastra ograniczenie dostępu do niektórych typów operacji klastra dla różnych grup użytkowników, co zapewnia większe bezpieczeństwo klastra. Administratorzy mają pełny dostęp do funkcji zarządzania (w tym możliwości odczytu/zapisu). Użytkownicy domyślnie mają tylko dostęp do odczytu do funkcji zarządzania (na przykład możliwości zapytań) oraz możliwość rozpoznawania aplikacji i usług. Aby uzyskać więcej informacji na temat kontroli dostępu, zobacz Kontrola dostępu oparta na rolach dla klientów usługi Service Fabric.

Poniższa przykładowa sekcja zabezpieczeń konfiguruje zabezpieczenia systemu Windows przy użyciu konta gMSA i określa, że maszyny w ServiceFabric.clusterA.contoso.com gMSA są częścią klastra i że contoso\usera ma dostęp klienta administratora:

"security": {
    "ClusterCredentialType": "Windows",
    "ServerCredentialType": "Windows",
    "WindowsIdentities": {
        "ClustergMSAIdentity" : "ServiceFabric.clusterA.contoso.com",
        "ClusterSPN" : "http/servicefabric/clusterA.contoso.com",
        "ClientIdentities": [{
            "Identity": "CONTOSO\\usera",
            "IsAdmin": true
        }]
    }
}

Konfigurowanie zabezpieczeń systemu Windows przy użyciu grupy maszyn

Zgodnie z powyższym opisem gMSA jest preferowana, ale jest również obsługiwana do korzystania z tego modelu zabezpieczeń. Przykładowy plik konfiguracji ClusterConfig.Windows.MultiMachine.JSON pobrany z serwerem Microsoft.Azure.ServiceFabric.WindowsServer.< wersja>.zip autonomiczny pakiet klastra zawiera szablon do konfigurowania zabezpieczeń systemu Windows. Zabezpieczenia systemu Windows są konfigurowane w sekcji Właściwości :

"security": {
    "ClusterCredentialType": "Windows",
    "ServerCredentialType": "Windows",
    "WindowsIdentities": {
        "ClusterIdentity" : "[domain\machinegroup]",
        "ClientIdentities": [{
            "Identity": "[domain\username]",
            "IsAdmin": true
        }]
    }
}
Ustawienie konfiguracji Opis
ClusterCredentialType Ustaw wartość Windows , aby włączyć zabezpieczenia systemu Windows na potrzeby komunikacji węzła. 
ServerCredentialType Ustaw wartość Windows , aby włączyć zabezpieczenia systemu Windows na potrzeby komunikacji między węzłami klienta.
Identyfikatory systemu Windows Zawiera tożsamości klastra i klienta.
Identyfikator klastra Użyj nazwy grupy maszyn, domeny\machinegroup, aby skonfigurować zabezpieczenia węzła do węzła.
Identyfikatory klienta Konfiguruje zabezpieczenia klient-węzeł. Tablica kont użytkowników klienta.
Tożsamość Dodaj użytkownika domeny, domenę\nazwę użytkownika, dla tożsamości klienta.
IsAdmin Ustaw wartość true, aby określić, że użytkownik domeny ma dostęp klienta administratora lub fałsz dostępu klienta użytkownika.

Zabezpieczenia węzła do węzła są konfigurowane przy użyciu funkcji ClusterIdentity, jeśli chcesz użyć grupy maszyn w ramach domena usługi Active Directory. Aby uzyskać więcej informacji, zobacz Tworzenie grupy maszyn w usłudze Active Directory.

Zabezpieczenia klient-węzeł są konfigurowane przy użyciu klasy ClientIdentities. Aby ustanowić relację zaufania między klientem a klastrem, należy skonfigurować klaster tak, aby wiedział tożsamości klientów, którym klaster może ufać. Zaufanie można ustanowić na dwa różne sposoby:

  • Określ użytkowników grupy domen, którzy mogą się łączyć.
  • Określ użytkowników węzła domeny, którzy mogą nawiązać połączenie.

Usługa Service Fabric obsługuje dwa różne typy kontroli dostępu dla klientów połączonych z klastrem usługi Service Fabric: administratorem i użytkownikiem. Kontrola dostępu umożliwia administratorowi klastra ograniczenie dostępu do niektórych typów operacji klastra dla różnych grup użytkowników, co sprawia, że klaster jest bardziej bezpieczny. Administratorzy mają pełny dostęp do funkcji zarządzania (w tym możliwości odczytu/zapisu). Użytkownicy domyślnie mają tylko dostęp do odczytu do funkcji zarządzania (na przykład możliwości zapytań) oraz możliwość rozpoznawania aplikacji i usług.

Poniższa przykładowa sekcja zabezpieczeń konfiguruje zabezpieczenia systemu Windows, określa, że maszyny w usłudze ServiceFabric/clusterA.contoso.com są częścią klastra i określa, że contoso\usera ma dostęp klienta administratora:

"security": {
    "ClusterCredentialType": "Windows",
    "ServerCredentialType": "Windows",
    "WindowsIdentities": {
        "ClusterIdentity" : "ServiceFabric/clusterA.contoso.com",
        "ClientIdentities": [{
            "Identity": "CONTOSO\\usera",
            "IsAdmin": true
        }]
    }
},

Uwaga

Nie należy wdrażać usługi Service Fabric na kontrolerze domeny. Upewnij się, że plik ClusterConfig.json nie zawiera adresu IP kontrolera domeny podczas korzystania z grupy maszyn lub zarządzanego konta usługi grupy (gMSA).

Następne kroki

Po skonfigurowaniu zabezpieczeń systemu Windows w pliku ClusterConfig.JSON wznów proces tworzenia klastra w sekcji Tworzenie autonomicznego klastra uruchomionego w systemie Windows.

Aby uzyskać więcej informacji o sposobie zabezpieczeń węzła do węzła, zabezpieczeń od klienta do węzła i kontroli dostępu opartej na rolach, zobacz Scenariusze zabezpieczeń klastra.

Zobacz Nawiązywanie połączenia z bezpiecznym klastrem, aby uzyskać przykłady nawiązywania połączenia przy użyciu programu PowerShell lub fabricClient.