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.