Proteggere un cluster autonomo in Windows usando la protezione di WindowsSecure a standalone cluster on Windows by using Windows security

Per impedire l'accesso non autorizzato a un cluster di Service Fabric, è necessario proteggere il cluster.To prevent unauthorized access to a Service Fabric cluster, you must secure the cluster. La sicurezza è importante soprattutto quando il cluster esegue carichi di lavoro di produzione.Security is especially important when the cluster runs production workloads. Questo articolo descrive come configurare la sicurezza da nodo a nodo e da client a nodo usando la protezione di Windows nel file ClusterConfig.JSON.This article describes how to configure node-to-node and client-to-node security by using Windows security in the ClusterConfig.JSON file. Il processo corrisponde al passaggio di configurazione della sicurezza in Creare un cluster autonomo in esecuzione su Windows Server.The process corresponds to the configure security step of Create a standalone cluster running on Windows. Per altre informazioni sull'uso della protezione di Windows in Service Fabric, vedere Scenari di sicurezza del cluster.For more information about how Service Fabric uses Windows security, see Cluster security scenarios.

Nota

È opportuno considerare con attenzione la selezione della sicurezza da nodo a nodo, perché non esiste un aggiornamento del cluster da una scelta di sicurezza a un'altra.You should consider the selection of node-to-node security carefully because there is no cluster upgrade from one security choice to another. Per modificare la selezione della sicurezza, è necessario ricompilare il cluster completo.To change the security selection, you have to rebuild the full cluster.

Configurare la funzionalità di sicurezza di Windows usando l'approccio account del servizio gestito del gruppoConfigure Windows security using gMSA

Il file di configurazione di esempio ClusterConfig.gMSA.Windows.MultiMachine.JSON scaricato con il pacchetto del cluster autonomo Microsoft.Azure.ServiceFabric.WindowsServer.zip contiene un modello per la configurazione della sicurezza di Windows usando l'approccio account del servizio gestito del gruppo.The sample ClusterConfig.gMSA.Windows.MultiMachine.JSON configuration file downloaded with the Microsoft.Azure.ServiceFabric.WindowsServer..zip standalone cluster package contains a template for configuring Windows security using Group Managed Service Account (gMSA):

"security": {  
            "WindowsIdentities": {  
                "ClustergMSAIdentity": "accountname@fqdn"  
                "ClusterSPN": "fqdn"  
                "ClientIdentities": [  
                    {  
                        "Identity": "domain\\username",  
                        "IsAdmin": true  
                    }  
                ]  
            }  
        }  
Impostazioni di configurazioneConfiguration Setting DescrizioneDescription
WindowsIdentitiesWindowsIdentities Contiene le identità del client e del cluster.Contains the cluster and client identities.
ClustergMSAIdentityClustergMSAIdentity Configura la sicurezza da nodo a nodo.Configures node-to-node security. Account del servizio gestito del gruppo.A group managed service account.
ClusterSPNClusterSPN SPN di dominio completo per l'account del servizio gestito del gruppoFully qualified domain SPN for gMSA account
ClientIdentitiesClientIdentities Configura la sicurezza da client a nodo.Configures client-to-node security. Matrice di account utente del client.An array of client user accounts.
IdentitàIdentity Identità del client, un utente del dominio.The client identity, a domain user.
IsAdminIsAdmin True indica che l'utente del dominio ha un accesso client come amministratore, mentre false indica un accesso client come utente.True specifies that the domain user has administrator client access, false for user client access.

La protezione da nodo a nodo viene configurata impostando ClustergMSAIdentity quando l'infrastruttura di servizi deve essere eseguita nell'account del servizio gestito del gruppo.Node to node security is configured by setting ClustergMSAIdentity when service fabric needs to run under gMSA. Per creare relazioni di trust tra i nodi, è necessario che si riconoscano.In order to build trust relationships between nodes, they must be made aware of each other. Questa operazione può essere eseguita in due modi diversi: specificare l'account del servizio gestito del gruppo che include tutti i nodi del cluster oppure specificare il gruppo del computer di dominio che include tutti i nodi del cluster.This can be accomplished in two different ways: Specify the Group Managed Service Account that includes all nodes in the cluster or Specify the domain machine group that includes all nodes in the cluster. È consigliabile usare l'approccio degli account del servizio gestiti del gruppo , in particolare per i cluster più grandi (più di 10 nodi) o per i cluster soggetti a probabile crescita o riduzione.We strongly recommend using the Group Managed Service Account (gMSA) approach, particularly for larger clusters (more than 10 nodes) or for clusters that are likely to grow or shrink.
Non richiede inoltre la creazione di un gruppo di dominio per cui agli amministratori del cluster siano stati concessi i diritti di accesso per aggiungere e rimuovere membri.This approach does not require the creation of a domain group for which cluster administrators have been granted access rights to add and remove members. Questi account si rivelano utili anche nella gestione automatica delle password.These accounts are also useful for automatic password management. Per altre informazioni, vedere Introduzione gli account del servizio gestiti del gruppo.For more information, see Getting Started with Group Managed Service Accounts.

Sicurezza da client a nodo è un'impostazione configurata tramite ClientIdentities.Client to node security is configured using ClientIdentities. Per stabilire un trust tra un client e il cluster, è necessario configurare il cluster in modo che riconosca quali identità dei client può considerare attendibili.In order to establish trust between a client and the cluster, you must configure the cluster to know which client identities that it can trust. Questa operazione può essere eseguita in due modi diversi: specificare se la connessione è consentita agli utenti dei gruppo di dominio o agli utenti dei nodi di dominio.This can be done in two different ways: Specify the domain group users that can connect or specify the domain node users that can connect. Infrastruttura di servizi supporta due tipi di controllo di accesso diversi per i client connessi a un cluster di Infrastruttura di servizi: amministratore e utente.Service Fabric supports two different access control types for clients that are connected to a Service Fabric cluster: administrator and user. La funzionalità di controllo di accesso consente all'amministratore del cluster di limitare l'accesso a determinati tipi di operazioni del cluster per diversi gruppi di utenti, rendendo il cluster più sicuro.Access control provides the ability for the cluster administrator to limit access to certain types of cluster operations for different groups of users, making the cluster more secure. Gli amministratori hanno accesso completo alle funzionalità di gestione, incluse funzionalità di lettura/scrittura.Administrators have full access to management capabilities (including read/write capabilities). Gli utenti, per impostazione predefinita, hanno solo l'accesso in lettura alle funzionalità di gestione, ad esempio funzionalità di query, e la possibilità di risolvere applicazioni e servizi.Users, by default, have only read access to management capabilities (for example, query capabilities), and the ability to resolve applications and services. Per altre informazioni sul controllo degli accessi, vedere Controllo degli accessi in base al ruolo per i client di Service Fabric.For more information on access controls, see Role based access control for Service Fabric clients.

La sezione security dell'esempio seguente configura la sicurezza di Windows usando un account del servizio gestiti del gruppo e specifica che i computer nell'account del servizio gestiti del gruppo ServiceFabric.clusterA.contoso.com fanno parte del cluster e che a CONTOSO\usera è consentito l'accesso client come amministratore:The following example security section configures Windows security using gMSA and specifies that the machines in ServiceFabric.clusterA.contoso.com gMSA are part of the cluster and that CONTOSO\usera has admin client access:

"security": {  
    "WindowsIdentities": {  
        "ClustergMSAIdentity" : "ServiceFabric.clusterA.contoso.com",  
        "ClusterSPN" : "clusterA.contoso.com",  
        "ClientIdentities": [{  
            "Identity": "CONTOSO\\usera",  
            "IsAdmin": true  
        }]  
    }  
}  

Configurare la funzionalità di sicurezza di Windows usando un gruppo di computerConfigure Windows security using a machine group

Il file di configurazione di esempio ClusterConfig.Windows.MultiMachine.JSON scaricato con il pacchetto del cluster autonomo Microsoft.Azure.ServiceFabric.WindowsServer.zip contiene un modello per la configurazione della sicurezza di Windows.The sample ClusterConfig.Windows.MultiMachine.JSON configuration file downloaded with the Microsoft.Azure.ServiceFabric.WindowsServer..zip standalone cluster package contains a template for configuring Windows security. La sicurezza di Windows viene configurata nella sezione Proprietà :Windows security is configured in the Properties section:

"security": {
            "ClusterCredentialType": "Windows",
            "ServerCredentialType": "Windows",
            "WindowsIdentities": {
                "ClusterIdentity" : "[domain\machinegroup]",
                "ClientIdentities": [{
                    "Identity": "[domain\username]",
                    "IsAdmin": true
                }]
            }
        }
Impostazione di configurazioneConfiguration setting DescrizioneDescription
ClusterCredentialTypeClusterCredentialType ClusterCredentialType è impostato su Windows se ClusterIdentity specifica il nome di un gruppo di computer Active Directory.ClusterCredentialType is set to Windows if ClusterIdentity specifies an Active Directory Machine Group Name.
ServerCredentialTypeServerCredentialType Impostare su Windows per abilitare la protezione di Windows per i client.Set to Windows to enable Windows security for clients.

Questa impostazione indica che i client del cluster e il cluster stesso sono in esecuzione in un dominio di Active Directory.This indicates that the clients of the cluster and the cluster itself are running within an Active Directory domain.
WindowsIdentitiesWindowsIdentities Contiene le identità del client e del cluster.Contains the cluster and client identities.
ClusterIdentityClusterIdentity Usare il nome di un gruppo di computer, dominio\gruppo di computer, per configurare la sicurezza da nodo a nodo.Use a machine group name, domain\machinegroup, to configure node-to-node security.
ClientIdentitiesClientIdentities Configura la sicurezza da client a nodo.Configures client-to-node security. Matrice di account utente del client.An array of client user accounts.
IdentitàIdentity Aggiungere l'utente del dominio, dominio\nome utente, per l'identità del client.Add the domain user, domain\username, for the client identity.
IsAdminIsAdmin Impostare su true per indicare che l'utente del dominio ha un accesso client come amministratore oppure su false per indicare un accesso client come utente.Set to true to specify that the domain user has administrator client access or false for user client access.

La Protezione da nodo a nodo viene configurata con ClusterIdentity se si vuole usare un gruppo di computer all'interno di un dominio di Active Directory.Node to node security is configured by setting using ClusterIdentity if you want to use a machine group within an Active Directory Domain. Per altre informazioni, vedere l'articolo su come Creare un gruppo di computer in Active Directory.For more information, see Create a Machine Group in Active Directory.

La sicurezza da client a nodo viene configurata usando ClientIdentities.Client-to-node security is configured by using ClientIdentities. Per stabilire una relazione di trust tra un client e il cluster, è necessario configurare il cluster in modo che riconosca le identità dei client che il cluster può considerare attendibili.To establish trust between a client and the cluster, you must configure the cluster to know the client identities that the cluster can trust. È possibile stabilire una relazione di trust in due modi diversi:You can establish trust in two different ways:

  • Specificare gli utenti del gruppo di dominio che possono connettersi.Specify the domain group users that can connect.
  • Specificare gli utenti del nodo del dominio che possono connettersi.Specify the domain node users that can connect.

Infrastruttura di servizi supporta due tipi di controllo di accesso diversi per i client connessi a un cluster di Infrastruttura di servizi: amministratore e utente.Service Fabric supports two different access control types for clients that are connected to a Service Fabric cluster: administrator and user. La funzionalità di controllo di accesso consente all'amministratore del cluster di limitare l'accesso a determinati tipi di operazioni del cluster per diversi gruppi di utenti, rendendo il cluster più sicuro.Access control enables the cluster administrator to limit access to certain types of cluster operations for different groups of users, which makes the cluster more secure. Gli amministratori hanno accesso completo alle funzionalità di gestione, incluse funzionalità di lettura/scrittura.Administrators have full access to management capabilities (including read/write capabilities). Gli utenti, per impostazione predefinita, hanno solo l'accesso in lettura alle funzionalità di gestione, ad esempio funzionalità di query, e la possibilità di risolvere applicazioni e servizi.Users, by default, have only read access to management capabilities (for example, query capabilities), and the ability to resolve applications and services.

La sezione security dell'esempio seguente configura la protezione di Windows, specifica che i computer in ServiceFabric/clusterA.contoso.com fanno parte del cluster e specifica che a CONTOSO\usera è consentito l'accesso client come amministratore:The following example security section configures Windows security, specifies that the machines in ServiceFabric/clusterA.contoso.com are part of the cluster, and specifies that CONTOSO\usera has admin client access:

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

Nota

Service Fabric non devono essere distribuito in un controller di dominio.Service Fabric should not be deployed on a domain controller. Verificare che ClusterConfig.json non includa l'indirizzo IP del controller di dominio quando si usa un gruppo di computer o un account del servizio gestito del gruppo.Make sure that ClusterConfig.json does not include the IP address of the domain controller when using a machine group or group Managed Service Account (gMSA).

Passaggi successiviNext steps

Dopo la configurazione della sicurezza di Windows nel file ClusterConfig.JSON , riprendere il processo di creazione del cluster in Create a standalone cluster running on Windows(Creare un cluster autonomo in esecuzione in Windows).After configuring Windows security in the ClusterConfig.JSON file, resume the cluster creation process in Create a standalone cluster running on Windows.

Per altre informazioni sulla sicurezza da nodo a nodo e da client a nodo e sul controllo degli accessi in base al ruolo, vedere Scenari di sicurezza del cluster.For more information about how node-to-node security, client-to-node security, and role-based access control, see Cluster security scenarios.

Per alcuni esempi di connessione tramite PowerShell o FabricClient, vedere Connettersi a un cluster sicuro.See Connect to a secure cluster for examples of connecting by using PowerShell or FabricClient.