Запуск службы в групповой управляемой учетной записи службы

В автономном кластере Windows Server вы можете запустить службу как учетную запись службы, управляемой группой (gMSA), с помощью политики RunAs. По умолчанию приложения Service Fabric запускаются под учетной записью, под которой выполняется процесс Fabric.exe. Запуск приложений в разных учетных записях позволяет изолировать друг от друга выполняемые приложения, даже если они запущены в общей среде. При использовании групповой управляемой учетной записи службы в манифесте приложения не сохраняется ни обычный, ни зашифрованный пароль. Кроме того, можно запустить службу как группу или пользователя Active Directory.

В следующем примере показано, как создать учетную запись gMSA с именем svc-Test$, как развернуть эту управляемую учетную запись службы на узлах кластера и как настроить участника-пользователя.

Примечание.

Использование gMSA с автономным кластером Service Fabric требует локальной среды Active Directory в вашем домене (а не идентификатора Microsoft Entra).

Предварительные требования:

  • Домену нужен корневой ключ KDS.
  • В домене должен быть хотя бы один контроллер домена Windows Server 2012 (или R2).
  1. Попросите администратора домена Active Directory создать управляемую группой учетную запись службы с помощью командлета New-ADServiceAccount и убедиться, что 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$
    
  2. Установите и протестируйте групповую управляемую учетную запись на каждом из узлов кластера Service Fabric (например, SfNode0$,SfNode1$,SfNode2$,SfNode3$,SfNode4$).

    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>
    

Примечание.

Если применить политику запуска от имени к службе, манифест которой объявляет ресурсы конечной точки с протоколом HTTP, необходимо указать SecurityAccessPolicy. Дополнительные сведения см. в статье Назначение политики безопасности доступа для конечных точек HTTP и HTTPS.

Следующие статьи проведут вас через следующие шаги: