Настройка приложения для использования групповой управляемой учетной записи службы
Область применения: Windows Server 2022, Windows Server 2019
В типичной конфигурации контейнер получает только одну групповую управляемую учетную запись службы (gMSA), которая используется всякий раз при попытке пройти проверку подлинности с помощью учетной записи компьютера контейнера в сетевых ресурсах. Это означает, что для использования удостоверения gMSA приложение должно быть запущено в качестве локальной системы или сетевой службы. Кроме того, контейнеры можно настроить с помощью дополнительной gMSA, если вы хотите запустить службу или приложение в контейнере от имени другого удостоверения из учетной записи компьютера контейнера.
Запуск пула приложений IIS в качестве сетевой службы
Если в контейнере размещен веб-сайт IIS, все, что нужно сделать для использования gMSA, — задать удостоверение пула приложений для сетевой службы. Это можно сделать, добавив следующую команду в Dockerfile:
RUN %windir%\system32\inetsrv\appcmd.exe set AppPool DefaultAppPool -'processModel.identityType':NetworkService
Если ранее вы использовали статические учетные данные пользователя для пула приложений IIS, попробуйте использовать вместо этих учетных данных групповую управляемую учетную запись службы. Вы можете изменить gMSA в средах разработки и тестирования или рабочей среде, и IIS выберет текущее удостоверение автоматически, так что вам не придется вносить изменения в образ контейнера.
Запуск службы Windows в качестве сетевой службы
Если контейнерное приложение выполняется в качестве службы Windows, в Dockerfile можно указать, что такая служба должна запускаться в качестве сетевой.
RUN sc.exe config "YourServiceName" obj= "NT AUTHORITY\NETWORK SERVICE" password= ""
Запуск произвольных консольных приложений в качестве сетевой службы
Для универсальных консольных приложений, которые не размещены в службах IIS или Service Manager, зачастую контейнер проще всего запустить в качестве сетевой службы, поэтому приложение автоматически наследует контекст gMSA. Эта функция доступна в Windows Server версии 1709.
Добавьте следующую строку в Dockerfile, чтобы она выполнялась в качестве сетевой службы по умолчанию:
USER "NT AUTHORITY\NETWORK SERVICE"
К контейнеру можно также подключиться как к сетевой службе однократно, используя для этого docker exec
. Это особенно полезно при устранении неполадок подключения в работающем контейнере, который обычно не запускается в качестве сетевой службы.
# Opens an interactive PowerShell console in the container (id = 85d) as the Network Service account
docker exec -it --user "NT AUTHORITY\NETWORK SERVICE" 85d powershell
Дальнейшие действия
Групповые управляемые учетные записи служб можно использовать не только для приложений настройки, но и для следующих целей:
Если во время установки возникнут проблемы, ознакомьтесь с возможными решениями в руководстве по устранению неполадок.