Executar um serviço como uma Conta de Serviço Gerida de grupo
Em um cluster autônomo do Windows Server, você pode executar um serviço como uma conta de serviço gerenciado de grupo (gMSA) usando uma política RunAs . Por padrão, os aplicativos do Service Fabric são executados na conta na qual o Fabric.exe
processo é executado. A execução de aplicativos em contas diferentes, mesmo em um ambiente hospedado compartilhado, os torna mais seguros uns dos outros. Usando um gMSA, não há nenhuma senha ou senha criptografada armazenada no manifesto do aplicativo. Você também pode executar um serviço como um usuário ou grupo do Ative Directory.
O exemplo a seguir mostra como criar uma conta gMSA chamada svc-Test$, como implantar essa conta de serviço gerenciado nos nós do cluster e como configurar a entidade de usuário.
Nota
Usar um gMSA com um cluster autônomo do Service Fabric requer o Ative Directory local 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 controlador de domínio do Windows Server 2012 (ou R2) no domínio.
Peça a um administrador de domínio do Ative Directory que crie uma conta de serviço gerenciada por grupo usando o
New-ADServiceAccount
cmdlet e verifique se oPrincipalsAllowedToRetrieveManagedPassword
inclui todos os nós de cluster do Service Fabric.AccountName
,DnsHostName
eServicePrincipalName
deve ser único.New-ADServiceAccount -name svc-Test$ -DnsHostName svc-test.contoso.com -ServicePrincipalNames http/svc-test.contoso.com -PrincipalsAllowedToRetrieveManagedPassword SfNode0$,SfNode1$,SfNode2$,SfNode3$,SfNode4$
Em cada um dos nós de cluster do 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$
Configure a entidade de usuário e configure a
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>
Nota
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, deverá especificar uma SecurityAccessPolicy. Para obter mais informações, consulte Atribuir uma política de acesso de segurança para pontos de extremidade HTTP e HTTPS.
Os seguintes artigos irão guiá-lo através dos próximos passos: