Een zelfstandig cluster in Windows beveiligen met behulp van Windows-beveiliging

Als u onbevoegde toegang tot een Service Fabric-cluster wilt voorkomen, moet u het cluster beveiligen. Beveiliging is met name belangrijk wanneer het cluster productieworkloads uitvoert. In dit artikel wordt beschreven hoe u knooppunt-naar-knooppunt- en client-naar-knooppuntbeveiliging configureert met behulp van Windows-beveiliging in het bestand ClusterConfig.JSON . Het proces komt overeen met de beveiligingsstap voor het configureren van Een zelfstandig cluster maken dat wordt uitgevoerd in Windows. Zie Clusterbeveiligingsscenario's voor meer informatie over hoe Service Fabric Gebruikmaakt van Windows-beveiliging.

Notitie

Overweeg de selectie van knooppunt-naar-knooppuntbeveiliging zorgvuldig, omdat er geen clusterupgrade is van de ene beveiligingsoptie naar de andere. Als u de beveiligingsselectie wilt wijzigen, moet u het volledige cluster opnieuw opbouwen.

Windows-beveiliging configureren met gMSA

gMSA is het voorkeursbeveiligingsmodel. Het voorbeeldconfiguratiebestand ClusterConfig.gMSA.Windows.MultiMachine.JSON dat is gedownload met de Microsoft.Azure.ServiceFabric.WindowsServer.< versie>.zip zelfstandig clusterpakket bevat een sjabloon voor het configureren van Windows-beveiliging met gMSA (Group Managed Service Account):

"security": {
    "ClusterCredentialType": "Windows",
    "ServerCredentialType": "Windows",
    "WindowsIdentities": {  
        "ClustergMSAIdentity": "[gMSA Identity]",
        "ClusterSPN": "[Registered SPN for the gMSA account]",
        "ClientIdentities": [
            {
                "Identity": "domain\\username",
                "IsAdmin": true
            }
        ]
    }
}
Configuratie-instelling Beschrijving
ClusterCredentialType Stel in op Windows om Windows-beveiliging in te schakelen voor communicatie tussen knooppunten. 
ServerCredentialType Stel in op Windows om Windows-beveiliging in te schakelen voor client-knooppuntcommunicatie.
WindowsId-entiteiten Bevat de cluster- en clientidentiteiten.
ClustergMSAIdentity Hiermee configureert u beveiliging van knooppunt naar knooppunt. Een door een groep beheerd serviceaccount. Moet de indeling 'mysfgmsa@mydomain' hebben.
ClusterSPN Geregistreerde SPN voor gMSA-account
ClientId-entiteiten Hiermee configureert u beveiliging van client naar knooppunt. Een matrix van clientgebruikersaccounts.
Identiteit Voeg de domeingebruiker domein\gebruikersnaam toe voor de clientidentiteit.
IsAdmin Stel in op true om op te geven dat de domeingebruiker beheerderstoegang tot de client heeft of onwaar voor clienttoegang van de gebruiker.

Beveiliging van knooppunt naar knooppunt wordt geconfigureerd door ClustergMSAIdentiteit in te stellen wanneer Service Fabric moet worden uitgevoerd onder gMSA. Als u vertrouwensrelaties tussen knooppunten wilt bouwen, moeten ze op de hoogte worden gesteld van elkaar. Dit kan op twee verschillende manieren worden bereikt: geef het door de groep beheerde serviceaccount op dat alle knooppunten in het cluster bevat of geef de domeinmachinegroep op die alle knooppunten in het cluster bevat. We raden u ten zeerste aan de methode GMSA (Group Managed Service Account) te gebruiken, met name voor grotere clusters (meer dan 10 knooppunten) of voor clusters die waarschijnlijk zullen groeien of verkleinen.
Voor deze aanpak hoeft geen domeingroep te worden gemaakt waarvoor clusterbeheerders toegangsrechten hebben gekregen om leden toe te voegen en te verwijderen. Deze accounts zijn ook handig voor automatisch wachtwoordbeheer. Zie Aan de slag met door groep beheerde serviceaccounts voor meer informatie.

Beveiliging van client naar knooppunt wordt geconfigureerd met behulp van ClientId-entiteiten. Als u een vertrouwensrelatie tussen een client en het cluster tot stand wilt brengen, moet u het cluster configureren om te weten welke clientidentiteiten het kan vertrouwen. Dit kan op twee verschillende manieren: geef de domeingroepgebruikers op die verbinding kunnen maken of geef de domeinknooppuntgebruikers op die verbinding kunnen maken. Service Fabric ondersteunt twee verschillende typen toegangsbeheer voor clients die zijn verbonden met een Service Fabric-cluster: beheerder en gebruiker. Toegangsbeheer biedt de clusterbeheerder de mogelijkheid om de toegang te beperken tot bepaalde typen clusterbewerkingen voor verschillende groepen gebruikers, waardoor het cluster veiliger wordt. Beheerders hebben volledige toegang tot beheermogelijkheden (inclusief lees-/schrijfmogelijkheden). Gebruikers hebben standaard alleen leestoegang tot beheermogelijkheden (bijvoorbeeld querymogelijkheden) en de mogelijkheid om toepassingen en services op te lossen. Zie Op rollen gebaseerd toegangsbeheer voor Service Fabric-clients voor meer informatie over toegangsbeheer.

In de volgende voorbeeldbeveiligingssectie wordt Windows-beveiliging geconfigureerd met behulp van gMSA en wordt aangegeven dat de computers in ServiceFabric.clusterA.contoso.com gMSA deel uitmaken van het cluster en dat CONTOSO\usera beheerdersclienttoegang heeft:

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

Windows-beveiliging configureren met behulp van een computergroep

Zoals hierboven beschreven, heeft gMSA de voorkeur, maar het wordt ook ondersteund om dit beveiligingsmodel te gebruiken. Het voorbeeldconfiguratiebestand ClusterConfig.Windows.MultiMachine.JSON dat is gedownload met de Microsoft.Azure.ServiceFabric.WindowsServer.< versie>.zip zelfstandig clusterpakket bevat een sjabloon voor het configureren van Windows-beveiliging. Windows-beveiliging is geconfigureerd in de sectie Eigenschappen :

"security": {
    "ClusterCredentialType": "Windows",
    "ServerCredentialType": "Windows",
    "WindowsIdentities": {
        "ClusterIdentity" : "[domain\machinegroup]",
        "ClientIdentities": [{
            "Identity": "[domain\username]",
            "IsAdmin": true
        }]
    }
}
Configuratie-instelling Beschrijving
ClusterCredentialType Stel in op Windows om Windows-beveiliging in te schakelen voor communicatie tussen knooppunten. 
ServerCredentialType Stel in op Windows om Windows-beveiliging in te schakelen voor client-knooppuntcommunicatie.
WindowsId-entiteiten Bevat de cluster- en clientidentiteiten.
ClusterIdentity Gebruik de naam van een computergroep, domain\machinegroup, om beveiliging van knooppunt naar knooppunt te configureren.
ClientId-entiteiten Hiermee configureert u beveiliging van client naar knooppunt. Een matrix van clientgebruikersaccounts.
Identiteit Voeg de domeingebruiker domein\gebruikersnaam toe voor de clientidentiteit.
IsAdmin Stel in op true om op te geven dat de domeingebruiker beheerderstoegang tot de client heeft of onwaar voor clienttoegang van de gebruiker.

Beveiliging van knooppunt naar knooppunt wordt geconfigureerd met behulp van ClusterIdentity als u een computergroep binnen een Active Directory-domein wilt gebruiken. Zie Een computergroep maken in Active Directory voor meer informatie.

Client-naar-knooppunt-beveiliging wordt geconfigureerd met behulp van ClientId-entiteiten. Als u een vertrouwensrelatie tussen een client en het cluster tot stand wilt brengen, moet u het cluster configureren om de clientidentiteiten te kennen die het cluster kan vertrouwen. U kunt vertrouwen op twee verschillende manieren tot stand brengen:

  • Geef de domeingroepgebruikers op die verbinding kunnen maken.
  • Geef de domeinknooppuntgebruikers op die verbinding kunnen maken.

Service Fabric ondersteunt twee verschillende typen toegangsbeheer voor clients die zijn verbonden met een Service Fabric-cluster: beheerder en gebruiker. Met toegangsbeheer kan de clusterbeheerder de toegang beperken tot bepaalde typen clusterbewerkingen voor verschillende groepen gebruikers, waardoor het cluster veiliger wordt. Beheerders hebben volledige toegang tot beheermogelijkheden (inclusief lees-/schrijfmogelijkheden). Gebruikers hebben standaard alleen leestoegang tot beheermogelijkheden (bijvoorbeeld querymogelijkheden) en de mogelijkheid om toepassingen en services op te lossen.

De volgende voorbeeldbeveiligingssectie configureert Windows-beveiliging, geeft aan dat de machines in ServiceFabric/clusterA.contoso.com deel uitmaken van het cluster en geeft aan dat CONTOSO\usera beheerdersclienttoegang heeft:

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

Notitie

Service Fabric mag niet worden geïmplementeerd op een domeincontroller. Zorg ervoor dat ClusterConfig.json niet het IP-adres van de domeincontroller bevat wanneer u een computergroep of groep Managed Service Account (gMSA) gebruikt.

Volgende stappen

Nadat u Windows-beveiliging hebt geconfigureerd in het bestand ClusterConfig.JSON , hervat u het proces voor het maken van het cluster in Een zelfstandig cluster maken dat wordt uitgevoerd in Windows.

Zie Clusterbeveiligingsscenario's voor meer informatie over knooppunt-naar-knooppuntbeveiliging, client-naar-knooppunt-beveiliging en op rollen gebaseerd toegangsbeheer.

Zie Verbinding maken met een beveiligd cluster voor voorbeelden van het maken van verbinding met behulp van PowerShell of FabricClient.