Melhores práticas de segurança do Service Fabric
Além deste artigo, consulte também a lista de verificação de segurança do Service Fabric para obter mais informações.
Implantar um aplicativo no Azure é rápido, fácil e econômico. Antes de implantar seu aplicativo na nuvem em produção, revise nossa lista de práticas recomendadas essenciais e recomendadas para implementar clusters seguros em seu aplicativo.
O Azure Service Fabric é uma plataforma de sistemas distribuídos que facilita o empacotamento, a implementação e a gestão de microsserviços dimensionáveis e fiáveis. O Service Fabric também faz face aos desafios significativos no desenvolvimento e na gestão de aplicações na cloud. Permite, assim, que os programadores e administradores evitem problemas complexos de infraestrutura e se concentrem na implementação de cargas de trabalho exigentes e fundamentais que sejam dimensionáveis, fiáveis e geríveis.
Para cada prática recomendada, explicamos:
- Qual é a melhor prática.
- Por que você deve implementar as melhores práticas.
- O que pode acontecer se você não implementar as melhores práticas.
- Como pode aprender a implementar as melhores práticas.
Recomendamos as seguintes práticas recomendadas de segurança do Azure Service Fabric:
- Use os modelos do Azure Resource Manager e o módulo PowerShell do Service Fabric para criar clusters seguros.
- Use certificados X.509.
- Configure políticas de segurança.
- Implemente a configuração de segurança Reliable Actors.
- Configure o TLS para o Azure Service Fabric.
- Use o isolamento e a segurança de rede com o Azure Service Fabric.
- Configure o Azure Key Vault para segurança.
- Atribua usuários a funções.
- Coisas a considerar se hospedar aplicativos não confiáveis em um cluster do Service Fabric.
Práticas recomendadas para proteger seus clusters
Use sempre um cluster seguro:
- Implemente a segurança do cluster usando certificados.
- Forneça acesso de cliente (administrador e somente leitura) usando o Microsoft Entra ID.
Use implantações automatizadas:
- Use scripts para gerar, implantar e passar por cima dos segredos.
- Armazene os segredos no Cofre da Chave do Azure e use a ID do Microsoft Entra para todos os outros acessos de cliente.
- Exigir autenticação para acesso humano aos segredos.
Além disso, considere as seguintes opções de configuração:
- Crie redes de perímetro (também conhecidas como zonas desmilitarizadas, DMZs e sub-redes filtradas) usando os NSGs (Grupos de Segurança de Rede) do Azure.
- Acesse máquinas virtuais (VMs) de cluster ou gerencie seu cluster usando servidores de salto com a Conexão de Área de Trabalho Remota.
Seus clusters devem ser protegidos para impedir que usuários não autorizados se conectem, especialmente quando um cluster está sendo executado em produção. Embora seja possível criar um cluster não seguro, os usuários anônimos podem se conectar ao cluster se o cluster expor pontos de extremidade de gerenciamento à Internet pública.
Há três cenários para implementar a segurança de cluster usando várias tecnologias:
- Segurança nó a nó: este cenário protege a comunicação entre as VMs e os computadores no cluster. Essa forma de segurança garante que apenas os computadores autorizados a ingressar no cluster possam hospedar aplicativos e serviços no cluster. Nesse cenário, os clusters que são executados no Azure, ou clusters autônomos que são executados no Windows, podem usar a segurança de certificado ou a segurança do Windows para máquinas Windows Server.
- Segurança de cliente para nó: este cenário protege a comunicação entre um cliente do Service Fabric e os nós individuais no cluster.
- Controle de acesso baseado em função do Service Fabric (RBAC do Service Fabric): esse cenário usa identidades separadas (certificados, ID do Microsoft Entra e assim por diante) para cada função de cliente de administrador e usuário que acessa o cluster. Você especifica as identidades de função ao criar o cluster.
Nota
Recomendação de segurança para clusters do Azure: use a segurança do Microsoft Entra para autenticar clientes e certificados para segurança nó a nó.
Para configurar um cluster autônomo do Windows, consulte Definir configurações para um cluster autônomo do Windows.
Use os modelos do Azure Resource Manager e o módulo PowerShell do Service Fabric para criar um cluster seguro. Para obter instruções passo a passo para criar um cluster seguro do Service Fabric usando modelos do Azure Resource Manager, consulte Criando um cluster do Service Fabric.
Use o modelo do Azure Resource Manager:
- Personalize seu cluster usando o modelo para configurar o armazenamento gerenciado para VHDs (discos rígidos virtuais) de VM.
- Direcione alterações para seu grupo de recursos usando o modelo para facilitar o gerenciamento de configuração e a auditoria.
Trate a configuração do cluster como código:
- Seja minucioso ao verificar suas configurações de implantação.
- Evite usar comandos implícitos para modificar diretamente seus recursos.
Muitos aspetos do ciclo de vida do aplicativo Service Fabric podem ser automatizados. O módulo PowerShell do Service Fabric automatiza tarefas comuns para implantar, atualizar, remover e testar aplicativos do Azure Service Fabric. APIs gerenciadas e APIs HTTP para gerenciamento de aplicativos também estão disponíveis.
Usar certificados X.509
Sempre proteja seus clusters usando certificados X.509 ou segurança do Windows. A segurança só é configurada no momento da criação do cluster. Não é possível ativar a segurança após a criação do cluster.
Para especificar um certificado de cluster, defina o valor da propriedade ClusterCredentialType como X509. Para especificar um certificado de servidor para conexões externas, defina a propriedade ServerCredentialType como X509.
Além disso, siga estas práticas:
- Crie os certificados para clusters de produção usando um serviço de certificados do Windows Server configurado corretamente. Você também pode obter os certificados de uma autoridade de certificação (CA) aprovada.
- Nunca use um certificado temporário ou de teste para clusters de produção se o certificado tiver sido criado usando MakeCert.exe ou uma ferramenta semelhante.
- Use um certificado autoassinado para clusters de teste, mas não para clusters de produção.
Se o cluster não for seguro, qualquer pessoa poderá se conectar ao cluster anonimamente e executar operações de gerenciamento. Por esse motivo, sempre proteja os clusters de produção usando certificados X.509 ou a segurança do Windows.
Para saber mais sobre como usar certificados X.509, consulte Adicionar ou remover certificados para um cluster do Service Fabric.
Configurar políticas de segurança
O Service Fabric também protege os recursos usados pelos aplicativos. Recursos como arquivos, diretórios e certificados são armazenados nas contas de usuário quando o aplicativo é implantado. Esse recurso torna os aplicativos em execução mais seguros uns dos outros, mesmo em um ambiente hospedado compartilhado.
Usar um grupo ou usuário de domínio do Ative Directory: execute o serviço sob as credenciais de uma conta de usuário ou grupo do Ative Directory. Certifique-se de usar o Ative Directory local em seu domínio e não o Microsoft Entra ID. Acesse outros recursos no domínio que receberam permissões usando um usuário ou grupo de domínio. Por exemplo, recursos como compartilhamentos de arquivos.
Atribuir uma política de acesso de segurança para pontos de extremidade HTTP e HTTPS: especifique a propriedade SecurityAccessPolicy para aplicar uma política RunAs a um serviço quando o manifesto do serviço declarar recursos de ponto de extremidade com HTTP. As portas alocadas aos pontos de extremidade HTTP são listas de acesso controlado corretamente para a conta de usuário RunAs na qual o serviço é executado. Quando a política não está definida, http.sys não tem acesso ao serviço e você pode obter falhas com chamadas do cliente.
Para saber como usar políticas de segurança em um cluster do Service Fabric, consulte Configurar políticas de segurança para seu aplicativo.
Implementar a configuração de segurança do Reliable Actors
O Service Fabric Reliable Actors é uma implementação do padrão de design do ator. Como acontece com qualquer padrão de design de software, a decisão de usar um padrão específico é baseada em se um problema de software se encaixa no padrão.
Em geral, use o padrão de design do ator para ajudar a modelar soluções para os seguintes problemas de software ou cenários de segurança:
- Seu espaço de problema envolve um grande número (milhares ou mais) de unidades pequenas, independentes e isoladas de estado e lógica.
- Você está trabalhando com objetos de thread único que não exigem interação significativa de componentes externos, incluindo o estado de consulta em um conjunto de atores.
- Suas instâncias de ator não bloqueiam chamadores com atrasos imprevisíveis emitindo operações de E/S.
No Service Fabric, os atores são implementados na estrutura do aplicativo Reliable Players. Essa estrutura é baseada no padrão de ator e construída com base nos Serviços Confiáveis do Service Fabric. Cada serviço de ator confiável que você escreve é um serviço confiável com estado particionado.
Cada ator é definido como uma instância de um tipo de ator, idêntica à maneira como um objeto .NET é uma instância de um tipo .NET. Por exemplo, um tipo de ator que implementa a funcionalidade de uma calculadora pode ter muitos atores desse tipo distribuídos em vários nós em um cluster. Cada um dos atores distribuídos é caracterizado exclusivamente por um identificador de ator.
As configurações de segurança do replicador são usadas para proteger o canal de comunicação usado durante a replicação. Essa configuração impede que os serviços vejam o tráfego de replicação uns dos outros e garante que os dados altamente disponíveis estejam seguros. Por padrão, uma seção de configuração de segurança vazia impede a segurança de replicação. As configurações do replicador configuram o replicador responsável por tornar o estado do Provedor de Estado do Ator altamente confiável.
Configurar TLS para o Azure Service Fabric
O processo de autenticação do servidor autentica os pontos de extremidade de gerenciamento de cluster para um cliente de gerenciamento. O cliente de gerenciamento então reconhece que está falando com o cluster real. Este certificado também fornece um TLS para a API de gerenciamento HTTPS e para o Service Fabric Explorer sobre HTTPS. Tem de obter um nome de domínio personalizado para o cluster. Quando você solicita um certificado de uma autoridade de certificação, o nome do assunto do certificado deve corresponder ao nome de domínio personalizado que você usa para o cluster.
Para configurar o TLS para um aplicativo, primeiro você precisa obter um certificado SSL/TLS que tenha sido assinado por uma autoridade de certificação. A autoridade de certificação é um terceiro confiável que emite certificados para fins de segurança TLS. Se você ainda não tem um certificado SSL/TLS, você precisa obter um de uma empresa que vende certificados SSL/TLS.
O certificado deve atender aos seguintes requisitos para certificados SSL/TLS no Azure:
O certificado deve conter uma chave privada.
O certificado deve ser criado para troca de chaves e ser exportável para um arquivo de troca de informações pessoais (.pfx).
O nome do assunto do certificado deve corresponder ao nome de domínio usado para acessar seu serviço de nuvem.
- Adquira um nome de domínio personalizado para usar para acessar seu serviço de nuvem.
- Solicite um certificado de uma autoridade de certificação com um nome de assunto que corresponda ao nome de domínio personalizado do seu serviço. Por exemplo, se o seu nome de domínio personalizado for contoso.com, o certificado da sua autoridade de certificação deverá ter o nome de assunto .contoso.com ou www.contoso.com.
Nota
Não é possível obter um certificado SSL/TLS de uma autoridade de certificação para o domínio cloudapp.net.
O certificado deve usar um mínimo de criptografia de 2.048 bits.
O protocolo HTTP não é seguro e está sujeito a ataques de espionagem. Os dados transmitidos por HTTP são enviados como texto simples do navegador da Web para o servidor da Web ou entre outros pontos de extremidade. Os atacantes podem intercetar e visualizar dados confidenciais enviados via HTTP, como detalhes de cartão de crédito e logins de conta. Quando os dados são enviados ou postados através de um navegador via HTTPS, o SSL garante que as informações confidenciais sejam criptografadas e protegidas contra intercetação.
Para saber mais sobre como usar certificados SSL/TLS, consulte Configurando TLS para um aplicativo no Azure.
Usar isolamento e segurança de rede com o Azure Service Fabric
Configure um cluster seguro de 3 tipos de nó usando o modelo do Azure Resource Manager como exemplo. Controle o tráfego de rede de entrada e saída usando o modelo e os Grupos de Segurança de Rede.
O modelo tem um NSG para cada um dos conjuntos de escala de máquina virtual e é usado para controlar o tráfego de entrada e saída do conjunto. As regras são configuradas por padrão para permitir todo o tráfego necessário para os serviços do sistema e as portas do aplicativo especificadas no modelo. Revise essas regras e faça alterações para atender às suas necessidades, incluindo a adição de novas regras para seus aplicativos.
Para obter mais informações, consulte Cenários comuns de rede para o Azure Service Fabric.
Configurar o Azure Key Vault para segurança
O Service Fabric usa certificados para fornecer autenticação e criptografia para proteger um cluster e seus aplicativos.
O Service Fabric usa certificados X.509 para proteger um cluster e fornecer recursos de segurança do aplicativo. Você usa o Azure Key Vault para gerenciar certificados para clusters do Service Fabric no Azure. O provedor de recursos do Azure que cria os clusters extrai os certificados de um cofre de chaves. Em seguida, o provedor instala os certificados nas VMs quando o cluster é implantado no Azure.
Existe uma relação de certificado entre o Cofre de Chaves do Azure, o cluster do Service Fabric e o provedor de recursos que usa os certificados. Quando o cluster é criado, as informações sobre a relação de certificado são armazenadas em um cofre de chaves.
Há duas etapas básicas para configurar um cofre de chaves:
Crie um grupo de recursos especificamente para o cofre de chaves.
Recomendamos que você coloque o cofre de chaves em seu próprio grupo de recursos. Essa ação ajuda a evitar a perda de chaves e segredos se outros grupos de recursos forem removidos, como armazenamento, computação ou o grupo que contém o cluster. O grupo de recursos que contém o cofre da chave deve estar na mesma região do cluster que o está usando.
Crie um cofre de chaves no novo grupo de recursos.
O cofre de chaves deve estar habilitado para implantação. O provedor de recursos de computação pode obter os certificados do vault e instalá-los nas instâncias da VM.
Para saber mais sobre como configurar um cofre de chaves, consulte O que é o Cofre da Chave do Azure?.
Atribuir usuários a funções
Depois de criar os aplicativos para representar seu cluster, atribua os usuários às funções suportadas pelo Service Fabric: somente leitura e administrador. Você pode atribuir essas funções usando o portal do Azure.
Nota
Para obter mais informações sobre como usar funções no Service Fabric, consulte Controle de acesso baseado em função do Service Fabric para clientes do Service Fabric.
O Azure Service Fabric dá suporte a dois tipos de controle de acesso para clientes conectados a um cluster do Service Fabric: administrador e usuário. O administrador de cluster pode usar o controle de acesso para limitar o acesso a determinadas operações de cluster para diferentes grupos de usuários. O controle de acesso torna o cluster mais seguro.
Coisas a considerar se hospedar aplicativos não confiáveis em um cluster do Service Fabric
Consulte Hospedagem de aplicativos não confiáveis em um cluster do Service Fabric.
Próximos passos
- Lista de verificação de segurança do Service Fabric
- Configure seu ambiente de desenvolvimento do Service Fabric.
- Saiba mais sobre as opções de suporte do Service Fabric.