Skydda ett fristående kluster i Windows med hjälp av Windows-säkerhet

För att förhindra obehörig åtkomst till ett Service Fabric-kluster måste du skydda klustret. Säkerhet är särskilt viktigt när klustret kör produktionsarbetsbelastningar. I den här artikeln beskrivs hur du konfigurerar nod-till-nod- och klient-till-nod-säkerhet med hjälp av Windows-säkerhet i filen ClusterConfig.JSON . Processen motsvarar konfigurationssäkerhetssteget i Skapa ett fristående kluster som körs i Windows. Mer information om hur Service Fabric använder Windows-säkerhet finns i Klustersäkerhetsscenarier.

Kommentar

Du bör noga överväga valet av nod-till-nod-säkerhet eftersom det inte finns någon klusteruppgradering från ett säkerhetsval till ett annat. Om du vill ändra säkerhetsvalet måste du återskapa hela klustret.

Konfigurera Windows-säkerhet med hjälp av gMSA

gMSA är den rekommenderade säkerhetsmodellen. Exempelfilen ClusterConfig.gMSA.Windows.MultiMachine.JSON konfiguration som laddats ned med Microsoft.Azure.ServiceFabric.WindowsServer.<version>.zip fristående klusterpaket innehåller en mall för att konfigurera Windows-säkerhet med hjälp av grupphanterat tjänstkonto (gMSA):

"security": {
    "ClusterCredentialType": "Windows",
    "ServerCredentialType": "Windows",
    "WindowsIdentities": {  
        "ClustergMSAIdentity": "[gMSA Identity]",
        "ClusterSPN": "[Registered SPN for the gMSA account]",
        "ClientIdentities": [
            {
                "Identity": "domain\\username",
                "IsAdmin": true
            }
        ]
    }
}
Konfigurationsinställning Beskrivning
ClusterCredentialType Ställ in på Windows för att aktivera Windows-säkerhet för nod-nodkommunikation. 
ServerCredentialType Ställ in på Windows för att aktivera Windows-säkerhet för kommunikation med klientnoder.
WindowsIdentiteter Innehåller klustret och klientidentiteterna.
ClustergMSAIdentity Konfigurerar säkerhet från nod till nod. Ett grupphanterat tjänstkonto. Måste ha formatet "mysfgmsa@mydomain".
ClusterSPN Registrerat SPN för gMSA-konto
ClientIdentiteter Konfigurerar säkerhet från klient till nod. En matris med klientanvändarkonton.
Identitet Lägg till domänanvändaren, domänen\användarnamnet, för klientidentiteten.
IsAdmin Ange true för att ange att domänanvändaren har administratörsklientåtkomst eller falskt för användarklientåtkomst.

Nod-till-nodsäkerhet konfigureras genom att ställa in ClustergMSAIdentity när Service Fabric måste köras under gMSA. För att skapa förtroenderelationer mellan noder måste de göras medvetna om varandra. Detta kan göras på två olika sätt: Ange det grupphanterade tjänstkontot som innehåller alla noder i klustret eller Ange den domändatorgrupp som innehåller alla noder i klustret. Vi rekommenderar starkt att du använder metoden Grupphanterat tjänstkonto (gMSA), särskilt för större kluster (mer än 10 noder) eller för kluster som sannolikt kommer att växa eller krympa.
Den här metoden kräver inte att en domängrupp skapas för vilken klusteradministratörer har beviljats åtkomstbehörighet för att lägga till och ta bort medlemmar. Dessa konton är också användbara för automatisk lösenordshantering. Mer information finns i Komma igång med grupphanterade tjänstkonton.

Säkerhet från klient till nod konfigureras med hjälp av ClientIdentiteter. För att upprätta förtroende mellan en klient och klustret måste du konfigurera klustret så att det vet vilka klientidentiteter det kan lita på. Detta kan göras på två olika sätt: Ange de domängruppanvändare som kan ansluta eller ange de domännodanvändare som kan ansluta. Service Fabric stöder två olika typer av åtkomstkontroll för klienter som är anslutna till ett Service Fabric-kluster: administratör och användare. Åtkomstkontroll ger klusteradministratören möjlighet att begränsa åtkomsten till vissa typer av klusteråtgärder för olika användargrupper, vilket gör klustret säkrare. Administratörer har fullständig åtkomst till hanteringsfunktioner (inklusive läs-/skrivfunktioner). Användare har som standard endast läsbehörighet till hanteringsfunktioner (till exempel frågefunktioner) och möjlighet att lösa program och tjänster. Mer information om åtkomstkontroller finns i Rollbaserad åtkomstkontroll för Service Fabric-klienter.

Följande exempelsäkerhetsavsnitt konfigurerar Windows-säkerhet med hjälp av gMSA och anger att datorerna i ServiceFabric.clusterA.contoso.com gMSA är en del av klustret och att CONTOSO\usera har administratörsklientåtkomst:

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

Konfigurera Windows-säkerhet med hjälp av en datorgrupp

Som beskrivs ovan är gMSA att föredra, men det stöds också för att använda den här säkerhetsmodellen. Exempelfilen ClusterConfig.Windows.MultiMachine.JSON konfiguration som laddats ned med Microsoft.Azure.ServiceFabric.WindowsServer.<version>.zip fristående klusterpaket innehåller en mall för att konfigurera Windows-säkerhet. Windows-säkerhet konfigureras i avsnittet Egenskaper :

"security": {
    "ClusterCredentialType": "Windows",
    "ServerCredentialType": "Windows",
    "WindowsIdentities": {
        "ClusterIdentity" : "[domain\machinegroup]",
        "ClientIdentities": [{
            "Identity": "[domain\username]",
            "IsAdmin": true
        }]
    }
}
Konfigurationsinställning Beskrivning
ClusterCredentialType Ställ in på Windows för att aktivera Windows-säkerhet för nod-nodkommunikation. 
ServerCredentialType Ställ in på Windows för att aktivera Windows-säkerhet för kommunikation med klientnoder.
WindowsIdentiteter Innehåller klustret och klientidentiteterna.
ClusterIdentity Använd ett datorgruppnamn, domain\machinegroup, för att konfigurera säkerhet från nod till nod.
ClientIdentiteter Konfigurerar säkerhet från klient till nod. En matris med klientanvändarkonton.
Identitet Lägg till domänanvändaren, domänen\användarnamnet, för klientidentiteten.
IsAdmin Ange true för att ange att domänanvändaren har administratörsklientåtkomst eller falskt för användarklientåtkomst.

Nod-till-nodsäkerhet konfigureras med hjälp av ClusterIdentity om du vill använda en datorgrupp i en Active Directory-domän. Mer information finns i Skapa en datorgrupp i Active Directory.

Säkerhet från klient till nod konfigureras med hjälp av ClientIdentiteter. För att upprätta förtroende mellan en klient och klustret måste du konfigurera klustret så att det vet vilka klientidentiteter klustret kan lita på. Du kan upprätta förtroende på två olika sätt:

  • Ange vilka domängruppsanvändare som kan ansluta.
  • Ange de domännodanvändare som kan ansluta.

Service Fabric stöder två olika typer av åtkomstkontroll för klienter som är anslutna till ett Service Fabric-kluster: administratör och användare. Med åtkomstkontroll kan klusteradministratören begränsa åtkomsten till vissa typer av klusteråtgärder för olika användargrupper, vilket gör klustret säkrare. Administratörer har fullständig åtkomst till hanteringsfunktioner (inklusive läs-/skrivfunktioner). Användare har som standard endast läsbehörighet till hanteringsfunktioner (till exempel frågefunktioner) och möjlighet att lösa program och tjänster.

Följande exempelsäkerhetsavsnitt konfigurerar Windows-säkerhet, anger att datorerna i ServiceFabric/clusterA.contoso.com ingår i klustret och anger att CONTOSO\usera har administratörsklientåtkomst:

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

Kommentar

Service Fabric bör inte distribueras på en domänkontrollant. Kontrollera att ClusterConfig.json inte innehåller IP-adressen för domänkontrollanten när du använder en datorgrupp eller ett grupphanterat tjänstkonto (gMSA).

Nästa steg

När du har konfigurerat Windows-säkerhet i filen ClusterConfig.JSON återupptar du processen för att skapa klustret i Skapa ett fristående kluster som körs i Windows.

Mer information om hur säkerhet från nod till nod, säkerhet från klient till nod och rollbaserad åtkomstkontroll finns i Klustersäkerhetsscenarier.

Se Ansluta till ett säkert kluster för exempel på anslutning med hjälp av PowerShell eller FabricClient.