Compartir a través de


Ejecución de un contenedor con una gMSA

Se aplica a: Windows Server 2022, Windows Server 2019

Para ejecutar un contenedor con una cuenta de servicio administrada de grupo (gMSA), proporciona el archivo de especificación de credenciales al parámetro --security-opt de docker run:

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

Importante

En Windows Server 2016, versiones 1709 y 1803, el nombre de host del contenedor debe coincidir con el nombre corto de la gMSA.

En el ejemplo anterior, el nombre de cuenta SAM de gMSA es webapp01, por lo que el nombre de host del contenedor también se denomina webapp01.

En Windows Server 2019 y versiones posteriores, el campo de nombre de host no es necesario, pero el contenedor aún se seguirá identificando por el nombre de gMSA en lugar del nombre de host, aunque proporciones otro de manera explícita.

Para comprobar si la gMSA funciona correctamente, ejecuta el siguiente cmdlet en el contenedor:

# 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

Si Trusted DC Connection Status y Trust Verification Status no son NERR_Success, sigue las instrucciones de solución de problemas para depurar el problema.

Puedes verificar la identidad de la gMSA desde dentro del contenedor ejecutando el siguiente comando y comprobando el nombre del cliente:

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

[...]

Para abrir PowerShell u otra aplicación de consola como cuenta gMSA, puedes pedir al contenedor que se ejecute en la cuenta de servicio de red en lugar de la cuenta normal de ContainerAdministrator (o ContainerUser para Nano Server):

# 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

Al ejecutar como servicio de red, puedes probar la autenticación de red como la gMSA si intentas conectarte a SYSVOL en un controlador de dominio:

# 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

Pasos siguientes

Además de la ejecución de contenedores, también puedes usar las gMSA para lo siguiente:

Si tienes problemas durante la instalación, consulta nuestra guía de solución de problemas para ver las posibles soluciones.