Executar um serviço como uma Conta de Serviço Administrada de Grupo

Num cluster autónomo do Windows Server, pode executar um serviço como uma conta de serviço gerido de grupo (gMSA) usando uma política RunAs . Por defeito, as aplicações Service Fabric executam-se na conta sob a qual o Fabric.exe processo é executado. Executar aplicações sob contas diferentes, mesmo num ambiente partilhado hospedado, torna-as mais seguras umas das outras. Ao utilizar um gMSA, não há senha ou senha encriptada armazenada no manifesto da aplicação. Também pode executar um serviço como utilizador ou grupo do Active Directory.

O exemplo seguinte mostra como criar uma conta gMSA chamada svc-Test$, como implementar essa conta de serviço gerido para os nós do cluster e como configurar o user principal.

Observação

Usar um gMSA com um cluster Service Fabric independente requer que o Active Directory seja implementado nas instalações dentro do seu domínio (em vez do Microsoft Entra ID).

Pré-requisitos:

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

    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 do cluster Service Fabric (por exemplo, SfNode0$,SfNode1$,SfNode2$,SfNode3$,SfNode4$), instale e teste o gMSA.

    Add-WindowsFeature RSAT-AD-PowerShell
    Install-AdServiceAccount svc-Test$
    Test-AdServiceAccount svc-Test$
    
  3. Configure o principal do Utilizador e configure o RunAsPolicy para referenciar o Utilizador.

    <?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 aplicar uma política RunAs a um serviço e se o manifesto do serviço declarar recursos de endpoint com o protocolo HTTP, deve especificar uma Política de Acesso de Segurança. Para mais informações, consulte Atribuir uma política de acesso de segurança para endpoints HTTP e HTTPS.

Os seguintes artigos irão guiá-lo pelos próximos passos: