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

Область применения: Windows Server 2022, Windows Server 2019

Чтобы запустить контейнер с использованием групповой управляемой учетной записи службы (gMSA), укажите файл спецификации учетных данных в параметре --security-opt команды docker run.

docker run --security-opt "credentialspec=file://contoso_webapp01.json" --hostname webapp01 -it mcr.microsoft.com/windows/server:ltsc2022 powershell

Важно!

В Windows Server 2016 версии 1709 и 1803 имя узла контейнера должно соответствовать короткому имени gMSA.

В предыдущем примере имя учетной записи SAM gMSA — webapp01, поэтому узел контейнера также носит имя webapp01.

В Windows Server 2019 и более поздних версиях поле hostname не является обязательным, но контейнер по-прежнему будет идентифицировать себя по имени gMSA, а не имени узла, даже если явно указать другое имя.

Чтобы проверить, правильно ли работает gMSA, выполните следующий командлет в контейнере:

# Replace contoso.com with your own domain
PS C:\> nltest /sc_verify:contoso.com

Flags: b0 HAS_IP  HAS_TIMESERV
Trusted DC Name \\dc01.contoso.com
Trusted DC Connection Status Status = 0 0x0 NERR_Success
Trust Verification Status = 0 0x0 NERR_Success
The command completed successfully

Если состояние подключения к доверенному контроллеру домена и состояние проверки доверия отлично от NERR_Success, следуйте инструкциям по устранению неполадок для устранения проблемы.

Удостоверение gMSA можно проверить в контейнере, выполнив следующую команду и проверив имя клиента.

PS C:\> klist get webapp01

Current LogonId is 0:0xaa79ef8
A ticket to krbtgt has been retrieved successfully.

Cached Tickets: (2)

#0>     Client: webapp01$ @ CONTOSO.COM
        Server: krbtgt/webapp01 @ CONTOSO.COM
        KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
        Ticket Flags 0x40a10000 -> forwardable renewable pre_authent name_canonicalize
        Start Time: 3/21/2019 4:17:53 (local)
        End Time:   3/21/2019 14:17:53 (local)
        Renew Time: 3/28/2019 4:17:42 (local)
        Session Key Type: AES-256-CTS-HMAC-SHA1-96
        Cache Flags: 0
        Kdc Called: dc01.contoso.com

[...]

Чтобы открыть PowerShell или другое консольное приложение от имени учетной записи gMSA, можно запросить запуск контейнера с использованием учетной записи сетевой службы, а не обычной учетной записи ContainerAdministrator (или ContainerUser для NanoServer):

# NOTE: you can only run as Network Service or SYSTEM on Windows Server 1709 and later
docker run --security-opt "credentialspec=file://contoso_webapp01.json" --hostname webapp01 --user "NT AUTHORITY\NETWORK SERVICE" -it mcr.microsoft.com/windows/servercore:ltsc2019 powershell

Чтобы протестировать сетевую проверку подлинности от имени gMSA при выполнении в качестве сетевой службы, можно попытаться подключиться к SYSVOL на контроллере домена.

# This command should succeed if you're successfully running as the gMSA
PS C:\> dir \\contoso.com\SYSVOL


    Directory: \\contoso.com\sysvol


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d----l        2/27/2019   8:09 PM                contoso.com

Дальнейшие действия

Учетные записи gMSA можно использовать не только для выполнения контейнеров, но и для того, чтобы:

Если во время установки возникнут проблемы, ознакомьтесь с возможными решениями в руководстве по устранению неполадок.