Compartilhar via


Executar um serviço como uma Conta de Serviço Gerenciado de grupo

Em um cluster do Windows Server autônomo, você pode executar um serviço como um gMSA (conta de serviço gerenciada por grupo) usando uma política RunAs. Por padrão, os aplicativos Service Fabric são executados na conta sob a qual o processo Fabric.exe está sendo executado. Executar os aplicativos em contas diferentes, mesmo em um ambiente hospedado compartilhado, torna-os mais protegidos uns dos outros. Ao usar uma gMSA, a senha ou senha criptografada não será armazenada no manifesto do aplicativo. Você também pode executar um serviço como Grupo ou usuário do Active Directory.

O exemplo a seguir mostra como criar uma conta do gMSA chamada svc-Test$ ; como implantar essa conta de serviço gerenciado nos nós de cluster; e como configurar a entidade de segurança do usuário.

Observação

Usar um gMSA com um cluster autônomo do Service Fabric requer o Active Directory local no seu domínio (em vez da ID do Microsoft Entra).

Pré-requisitos:

  • O domínio precisa de uma chave raiz KDS.
  • Deve haver pelo menos um DC do Windows Server 2012 (ou R2) no domínio.
  1. Peça para um administrador de domínio do Active Directory criar uma conta de serviço gerenciado de grupo usando o cmdlet New-ADServiceAccount e verifique se o PrincipalsAllowedToRetrieveManagedPassword inclui todos os nós de cluster do Service Fabric. AccountName, DnsHostName, e ServicePrincipalName deve ser exclusivo.

    New-ADServiceAccount -name svc-Test$ -DnsHostName svc-test.contoso.com  -ServicePrincipalNames http/svc-test.contoso.com -PrincipalsAllowedToRetrieveManagedPassword SfNode0$,SfNode1$,SfNode2$,SfNode3$,SfNode4$
    
  2. Em cada um dos nós de cluster do Service Fabric (por exemplo, SfNode0$,SfNode1$,SfNode2$,SfNode3$,SfNode4$), instale e teste a gMSA.

    Add-WindowsFeature RSAT-AD-PowerShell
    Install-AdServiceAccount svc-Test$
    Test-AdServiceAccount svc-Test$
    
  3. Configure o Entidade de usuário e configure o RunAsPolicy para fazer referência ao Usuário.

    <?xml version="1.0" encoding="utf-8"?>
    <ApplicationManifest xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="MyApplicationType" ApplicationTypeVersion="1.0.0" xmlns="http://schemas.microsoft.com/2011/01/fabric">
        <ServiceManifestImport>
          <ServiceManifestRef ServiceManifestName="MyServiceTypePkg" ServiceManifestVersion="1.0.0" />
          <ConfigOverrides />
          <Policies>
              <RunAsPolicy CodePackageRef="Code" UserRef="DomaingMSA"/>
          </Policies>
        </ServiceManifestImport>
      <Principals>
        <Users>
          <User Name="DomaingMSA" AccountType="ManagedServiceAccount" AccountName="domain\svc-Test$"/>
        </Users>
      </Principals>
    </ApplicationManifest>
    

Observação

Se você aplicar uma política RunAs a um serviço e o manifesto do serviço declarar recursos de ponto de extremidade com o protocolo HTTP, você deverá especificar um SecurityAccessPolicy. Para obter mais informações, consulte Atribuir uma política de acesso de segurança a pontos de extremidade HTTP e HTTPS.

Os artigos a seguir irão orientar você nas próximas etapas: