Proteger um cluster autônomo no Windows usando a segurança do Windows

Para impedir o acesso não autorizado a um cluster do Service Fabric, você deve proteger o cluster. A segurança é especialmente importante quando o cluster executa cargas de trabalho de produção. Este artigo descreve como configurar a segurança nó a nó e cliente a nó usando a segurança do Windows no arquivo ClusterConfig.JSON . O processo corresponde à etapa de configuração de segurança de Criar um cluster autônomo em execução no Windows. Para obter mais informações sobre como o Service Fabric usa a segurança do Windows, consulte Cenários de segurança de cluster.

Nota

Você deve considerar cuidadosamente a seleção de segurança nó a nó porque não há atualização de cluster de uma opção de segurança para outra. Para alterar a seleção de segurança, você precisa reconstruir o cluster completo.

Configurar a segurança do Windows usando gMSA

gMSA é o modelo de segurança preferido. O exemplo ClusterConfig.gMSA.Windows.MultiMachine.JSON arquivo de configuração baixado com o Microsoft.Azure.ServiceFabric.WindowsServer.<version>.zip pacote de cluster autônomo contém um modelo para configurar a segurança do Windows usando a Conta de Serviço Gerenciado de Grupo (gMSA):

"security": {
    "ClusterCredentialType": "Windows",
    "ServerCredentialType": "Windows",
    "WindowsIdentities": {  
        "ClustergMSAIdentity": "[gMSA Identity]",
        "ClusterSPN": "[Registered SPN for the gMSA account]",
        "ClientIdentities": [
            {
                "Identity": "domain\\username",
                "IsAdmin": true
            }
        ]
    }
}
Definição de configuração Descrição
ClusterCredentialType Defina como Windows para habilitar a segurança do Windows para comunicação entre nós e nós. 
ServerCredentialType Defina como Windows para habilitar a segurança do Windows para comunicação cliente-nó.
Identidades do Windows Contém as identidades de cluster e cliente.
ClustergMSAIdentity Configura a segurança nó a nó. Uma conta de serviço gerenciada de grupo. Deve estar no formato "mysfgmsa@mydomain".
ClusterSPN SPN registado para a conta gMSA
Identidades de cliente Configura a segurança de cliente para nó. Uma matriz de contas de usuário cliente.
Identidade Adicione o usuário do domínio, domínio\nome de usuário, para a identidade do cliente.
IsAdmin Defina como true para especificar que o usuário do domínio tem acesso de cliente de administrador ou false para acesso de cliente de usuário.

A segurança de nó para nó é configurada definindo ClustergMSAIdentity quando a malha de serviço precisa ser executada em gMSA. A fim de construir relações de confiança entre nós, eles devem ser conscientizados uns dos outros. Isso pode ser feito de duas maneiras diferentes: Especifique a Conta de Serviço Gerenciado de Grupo que inclui todos os nós no cluster ou Especifique o grupo de máquinas de domínio que inclui todos os nós no cluster. É altamente recomendável usar a abordagem de Conta de Serviço Gerenciado de Grupo (gMSA), particularmente para clusters maiores (mais de 10 nós) ou para clusters que provavelmente crescerão ou diminuirão.
Essa abordagem não requer a criação de um grupo de domínio para o qual os administradores de cluster receberam direitos de acesso para adicionar e remover membros. Essas contas também são úteis para o gerenciamento automático de senhas. Para obter mais informações, consulte Introdução às contas de serviço gerenciado de grupo.

A segurança de cliente para nó é configurada usando ClientIdentities. Para estabelecer confiança entre um cliente e o cluster, você deve configurar o cluster para saber em quais identidades de cliente ele pode confiar. Isso pode ser feito de duas maneiras diferentes: especifique os usuários do grupo de domínio que podem se conectar ou especifique os usuários do nó de domínio que podem se conectar. O Service Fabric oferece suporte a dois tipos diferentes de controle de acesso para clientes conectados a um cluster do Service Fabric: administrador e usuário. O controle de acesso fornece a capacidade de o administrador do cluster limitar o acesso a determinados tipos de operações de cluster para diferentes grupos de usuários, tornando o cluster mais seguro. Os administradores têm acesso total aos recursos de gerenciamento (incluindo recursos de leitura/gravação). Os usuários, por padrão, têm apenas acesso de leitura aos recursos de gerenciamento (por exemplo, recursos de consulta) e a capacidade de resolver aplicativos e serviços. Para obter mais informações sobre controles de acesso, consulte Controle de acesso baseado em função para clientes do Service Fabric.

A seção de segurança de exemplo a seguir configura a segurança do Windows usando gMSA e especifica que as máquinas em ServiceFabric.clusterA.contoso.com gMSA fazem parte do cluster e que CONTOSO\usera tem acesso de cliente administrador:

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

Configurar a segurança do Windows usando um grupo de máquinas

Conforme detalhado acima, o gMSA é preferível, mas também é suportado o uso desse modelo de segurança. O exemplo ClusterConfig.Windows.MultiMachine.JSON arquivo de configuração baixado com o Microsoft.Azure.ServiceFabric.WindowsServer.<version>.zip pacote de cluster autônomo contém um modelo para configurar a segurança do Windows. A segurança do Windows é configurada na seção Propriedades :

"security": {
    "ClusterCredentialType": "Windows",
    "ServerCredentialType": "Windows",
    "WindowsIdentities": {
        "ClusterIdentity" : "[domain\machinegroup]",
        "ClientIdentities": [{
            "Identity": "[domain\username]",
            "IsAdmin": true
        }]
    }
}
Definição de configuração Descrição
ClusterCredentialType Defina como Windows para habilitar a segurança do Windows para comunicação entre nós e nós. 
ServerCredentialType Defina como Windows para habilitar a segurança do Windows para comunicação cliente-nó.
Identidades do Windows Contém as identidades de cluster e cliente.
ClusterIdentity Use um nome de grupo de máquinas, domínio\grupo de máquinas, para configurar a segurança nó a nó.
Identidades de cliente Configura a segurança de cliente para nó. Uma matriz de contas de usuário cliente.
Identidade Adicione o usuário do domínio, domínio\nome de usuário, para a identidade do cliente.
IsAdmin Defina como true para especificar que o usuário do domínio tem acesso de cliente de administrador ou false para acesso de cliente de usuário.

A segurança de nó para nó é configurada usando ClusterIdentity se você quiser usar um grupo de máquinas dentro de um Domínio do Ative Directory. Para obter mais informações, consulte Criar um grupo de máquinas no Ative Directory.

A segurança de cliente para nó é configurada usando ClientIdentities. Para estabelecer confiança entre um cliente e o cluster, você deve configurar o cluster para conhecer as identidades de cliente nas quais o cluster pode confiar. Você pode estabelecer confiança de duas maneiras diferentes:

  • Especifique os usuários do grupo de domínio que podem se conectar.
  • Especifique os usuários do nó de domínio que podem se conectar.

O Service Fabric oferece suporte a dois tipos diferentes de controle de acesso para clientes conectados a um cluster do Service Fabric: administrador e usuário. O controle de acesso permite que o administrador do cluster limite o acesso a determinados tipos de operações de cluster para diferentes grupos de usuários, o que torna o cluster mais seguro. Os administradores têm acesso total aos recursos de gerenciamento (incluindo recursos de leitura/gravação). Os usuários, por padrão, têm apenas acesso de leitura aos recursos de gerenciamento (por exemplo, recursos de consulta) e a capacidade de resolver aplicativos e serviços.

A seção de segurança de exemplo a seguir configura a segurança do Windows, especifica que as máquinas no ServiceFabric/clusterA.contoso.com fazem parte do cluster e especifica que CONTOSO\usera tem acesso de cliente administrador:

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

Nota

O Service Fabric não deve ser implantado em um controlador de domínio. Certifique-se de que ClusterConfig.json não inclui o endereço IP do controlador de domínio ao usar um grupo de máquinas ou uma Conta de Serviço Gerenciado (gMSA).

Próximos passos

Depois de configurar a segurança do Windows no arquivo ClusterConfig.JSON , retome o processo de criação do cluster em Criar um cluster autônomo em execução no Windows.

Para obter mais informações sobre como segurança nó a nó, segurança cliente-a-nó e controle de acesso baseado em função, consulte Cenários de segurança de cluster.

Consulte Conectar-se a um cluster seguro para obter exemplos de conexão usando o PowerShell ou o FabricClient.