グループ管理サービス アカウントでのサービスの実行
Windows Server のスタンドアロン クラスターで、RunAs ポリシーを使用してサービスをグループ管理サービスアカウント (gMSA) として実行できます。 既定では、Service Fabric アプリケーションは、Fabric.exe
プロセスを実行しているアカウントで実行されます。 異なるアカウントで実行中のアプリケーションは、共有のホスト環境にある場合でも、互いからより強固に保護されることになります。 gMSA を使用することで、パスワードや暗号化されたパスワードがアプリケーション マニフェストに格納されることがなくなります。 また、Active Directory ユーザーまたはグループとしてサービスを実行することもできます。
次の例では、svc-Test$ という名前の gMSA アカウントを作成する方法、クラスター ノードにその管理サービス アカウントをデプロイする方法、およびユーザー プリンシパルを構成する方法を示します。
Note
スタンドアロンの Service Fabric クラスターで gMSA を使用するには、Microsoft Entra ID ではなく、ご使用のドメイン内のオンプレミスの Active Directory が必要です。
前提条件:
- ドメインには KDS ルート キーが必要です。
- ドメインには、少なくとも 1 つの Windows Server 2012 (または R2) DC が必要です。
Active Directory ドメイン管理者に、
New-ADServiceAccount
コマンドレットを使用してグループ管理サービス アカウントを作成してもらい、すべての Service Fabric クラスター ノードがPrincipalsAllowedToRetrieveManagedPassword
に含まれるようにします。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>
Note
サービスに RunAs ポリシーを適用し、サービス マニフェストで HTTP プロトコルのエンドポイント リソースを宣言する場合は、SecurityAccessPolicy を指定する必要があります。 詳細については、HTTP と HTTPS エンドポイントのセキュリティ アクセス ポリシーを割り当てるをご覧ください。
以下の記事では、次に行う手順について説明します。