Freigeben über


Ausführen eines Containers mit einem gMSA

Gilt für: Windows Server 2022, Windows Server 2019

Stellen Sie zum Ausführen eines Containers mit einem gruppenverwalteten Dienstkonto (gMSA) die Spezifikationsdatei für die Anmeldeinformationen dem Parameter --security-opt von docker run zur Verfügung:

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

Wichtig

Unter Windows Server 2016, Version 1709 und 1803, muss der Hostname des Containers mit dem Namen des gMSA-Kurznamens identisch sein.

Im vorherigen Beispiel lautet der gMSA SAM-Kontoname webapp01, sodass der Containerhostname ebenfalls webapp01 genannt wird.

Unter Windows Server 2019 und höher ist das Feld „Hostname“ nicht erforderlich, aber der Container identifiziert sich immer noch über den gMSA-Namen anstelle des Hostnamens, auch wenn Sie explizit einen anderen angeben.

Führen Sie das folgende Cmdlet im Container aus, um zu überprüfen, ob das gMSA ordnungsgemäß funktioniert:

# 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

Wenn der vertrauenswürdige DC-Verbindungsstatus und der Überprüfungsstatus der Vertrauensstellung nicht NERR_Success sind, befolgen Sie die Anweisungen zur Problembehandlung, um das Problem zu beheben.

Sie können die gMSA-Identität aus dem Container heraus überprüfen, indem Sie den folgenden Befehl ausführen und den Clientnamen überprüfen:

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

[...]

Zum Öffnen von PowerShell oder einer anderen Konsolenanwendung als gMSA-Konto können Sie den Container auffordern, unter dem Netzwerkdienstkonto statt unter dem normalen ContainerAdministrator-Konto (oder ContainerUser für NanoServer) ausgeführt zu werden:

# 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

Wenn Sie als Netzwerkdienst ausführen, können Sie die Netzwerkauthentifizierung als gMSA testen, indem Sie versuchen, eine Verbindung zu SYSVOL auf einem Domänencontroller herzustellen:

# 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

Nächste Schritte

Zusätzlich zum Ausführen von Containern können Sie gMSAs auch zu Folgendem verwenden:

Wenn während des Setups Probleme auftreten, überprüfen Sie unseren Leitfaden zur Problembehandlung auf mögliche Lösungen.