以群組受控服務帳戶身分執行服務
在 Windows Server 獨立叢集上,您可以使用 RunAs 原則,以群組受控服務帳戶 (gMSA) 身分執行服務。 根據預設,Service Fabric 應用程式會在用以執行 Fabric.exe
程序的帳戶之下執行。 即使在共用主控環境中,以不同帳戶執行應用程式能避免彼此干擾。 使用 gMSA,就不需將密碼或加密的密碼儲存於應用程式資訊清單中。 您也可以利用 Active Directory 使用者或群組身分執行服務。
下列範例示範如何建立名為 svc-Test$ 的 gMSA 帳戶、如何將受控服務帳戶部署至叢集節點,以及如何設定使用者主體。
注意
搭配獨立 Service Fabric 叢集使用 gMSA,您的網域內需要 Active Directory 內部部署 (而不是 Microsoft Entra ID)。
必要條件:
- 網域需要一個 KDS 根金鑰。
- 網域中必須至少有一個 Windows Server 2012 (或 R2) DC。
讓 Active Directory 網域系統管理員能夠使用
New-ADServiceAccount
Cmdlet 來建立群組受控服務帳戶,並確定PrincipalsAllowedToRetrieveManagedPassword
包括所有 Service Fabric 叢集節點。AccountName
、DnsHostName
和ServicePrincipalName
必須是唯一的。New-ADServiceAccount -name svc-Test$ -DnsHostName svc-test.contoso.com -ServicePrincipalNames http/svc-test.contoso.com -PrincipalsAllowedToRetrieveManagedPassword SfNode0$,SfNode1$,SfNode2$,SfNode3$,SfNode4$
在每個 Service Fabric 叢集節點 (例如
SfNode0$,SfNode1$,SfNode2$,SfNode3$,SfNode4$
) 上,安裝並測試 gMSA。Add-WindowsFeature RSAT-AD-PowerShell Install-AdServiceAccount svc-Test$ Test-AdServiceAccount svc-Test$
設定使用者主體,並設定
RunAsPolicy
來參考使用者。<?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>
注意
如果您將 RunAs 原則套用到服務,而服務資訊清單宣告具有 HTTP 通訊協定的端點資源,您就必須指定 SecurityAccessPolicy。 如需詳細資訊,請參閱為 HTTP 和 HTTPS 端點指派安全性存取原則。
下列文章將引導您完成後續步驟: