次の方法で共有


グループ管理サービス アカウントでのサービスの実行

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 が必要です。
  1. Active Directory ドメイン管理者に、New-ADServiceAccount コマンドレットを使用してグループ管理サービス アカウントを作成してもらい、すべての Service Fabric クラスター ノードが PrincipalsAllowedToRetrieveManagedPassword に含まれるようにします。 AccountNameDnsHostName、および ServicePrincipalName は一意である必要があります。

    New-ADServiceAccount -name svc-Test$ -DnsHostName svc-test.contoso.com  -ServicePrincipalNames http/svc-test.contoso.com -PrincipalsAllowedToRetrieveManagedPassword SfNode0$,SfNode1$,SfNode2$,SfNode3$,SfNode4$
    
  2. Service Fabric サービス ノードのそれぞれ (例: SfNode0$,SfNode1$,SfNode2$,SfNode3$,SfNode4$) で、gMSA をインストールしてテストします。

    Add-WindowsFeature RSAT-AD-PowerShell
    Install-AdServiceAccount svc-Test$
    Test-AdServiceAccount svc-Test$
    
  3. ユーザー プリンシパルを構成し、そのユーザーを参照するように 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 エンドポイントのセキュリティ アクセス ポリシーを割り当てるをご覧ください。

以下の記事では、次に行う手順について説明します。