在组托管服务帐户(gMSA)下运行Service Fabric App

时间:2018-01-12 11:58:21

标签: azure-service-fabric

我正在测试使用gMSA帐户运行SF应用程序,而不是NETWORKSERVICE。

按照此处的说明操作: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-application-runas-security

  1. 使用powershell cmdlet在域控制器上创建gMSA:

    New-ADServiceAccount -name MySA$ -DnsHostName MySA.contoso -ServicePrincipalNames http/MySA.contoso -PrincipalsAllowedToRetrieveManagedPassword Node0Machine$, Node1Machine$, Node2Machine$
    
  2. Install-AdServiceAccount在每个节点上返回“未指定的错误”,但Test-AdServiceAccount对MySA $返回true(当作为域用户运行powershell时)

  3. ApplicationManifest.xml有以下更改:

    <Principals>
        <Users>
          <User Name="MySA" AccountType="ManagedServiceAccount" AccountName="Contoso\MySA$"/>
    </Users>
    </Principals>
    <Policies>
        <SecurityAccessPolicies>
          <SecurityAccessPolicy ResourceRef="ConfigurationEncipherment" PrincipalRef="MySa" ResourceType="Certificate" />
        </SecurityAccessPolicies>
    <DefaultRunAsPolicy UserRef="MySA"/>
    </Policies>
    
  4. Service Fabric资源管理器为每项服务显示以下错误:

    Error event: SourceId='System.Hosting', Property='CodePackageActivation:Code:SetupEntryPoint'.
    There was an error during CodePackage activation.Service host failed to activate. Error:0x8007052e
    

    我也尝试使用gMSA创建集群(我们目前正在成功使用X509)。使用gMSA群集配置作为模板,它会因超时而失败(可能是“WindowsIdentities部分不正确 - 似乎没有关于此的文档)

    "security": {
        "WindowsIdentities": {
                "ClustergMSAIdentity": "MySA$@contoso",
                "ClusterSPN": "http/MySa.contoso",
                "ClientIdentities": [
                    {
                        "Identity": "contoso\\MySA$",
                        "IsAdmin": true
                    }
                ]
       },
    

1 个答案:

答案 0 :(得分:0)

Error:0x8007052e可能与登录失败相关联。

根据Secure a standalone cluster on Windows by using Windows securityConnect to a secure cluster

如果您有超过10个节点或者可能会增长或缩小的群集。 Microsoft强烈建议使用组托管服务帐户(gMSA)方法。

您还会看到:

  

您可以通过两种不同的方式建立信任:

     
      
  • 指定可以连接的域组用户。

  •   
  • 指定可以连接的域节点用户。

  •   
     

[...]

     

管理员可以完全访问管理功能(包括读/写功能)。默认情况下,用户只具有对管理功能的读取权限(例如,查询功能),以及解析应用程序和服务的能力。

您也可以在Getting Started with Group Managed Service Accounts

上找到帮助

根据您的评论,只要您将gMSA添加到ServiceFabricAdministrators群组,一切都会有效,这可能是因为“管理员可以完全访问管理功能”