
La estrategia gMSA que Microsoft recomienda para contenedoresaquíyaquíFunciona muy bien. La idea general es que el host del contenedor recupera la contraseña gMSA de un controlador de dominio de Active Directory y se la entrega al contenedor. La configuración de identidad se almacena en un archivo de especificaciones de credenciales JSON, que se espera que resida en la ubicación C:\\ProgramData\\docker\\CredentialSpecs
del host del contenedor. Este archivo contiene metadatos sobre gMSA y finalmente se pasa al Docker Engine que ejecuta los contenedores. A continuación se muestra un ejemplo de cómo hacer esto mediante la ejecución de Docker:
docker run --security-opt "credentialspec=file://myspec.json" --hostname myappname -it myimage powershell
El problema con esto es que si varios equipos usan los mismos hosts de contenedores, ¿cómo se puede proteger contra el uso de la especificación de credenciales de otro equipo y, por lo tanto, ejecutar sus contenedores con los permisos de ese equipo? Por ejemplo, si el anfitrión tiene las siguientes CredentialSpecs, el Equipo A podría usar las del Equipo C.
C:\\ProgramData\\docker\\CredentialSpecs\\TeamA.json
C:\\ProgramData\\docker\\CredentialSpecs\\TeamB.json
C:\\ProgramData\\docker\\CredentialSpecs\\TeamC.json
Respuesta1
Aunque no leí ni usé esa tecnología, sugiero permisos NTFS.
Elimine los permisos sobre los archivos y aplique solo el permiso de lectura para el grupo o usuario permitido.
Docker no puede leer el archivo de credenciales y, por lo tanto, no puede ejecutarse con un usuario diferente o no permitido.
Solo funciona si Docker también se ejecuta en diferentes contextos de usuario.