Cuenta de servicio administrada (MSA) es un tipo especial de cuenta de Active Directory que se puede utilizar para ejecutar de forma segura servicios, aplicaciones y tareas programadas. La idea básica es que Active Directory administra completamente la contraseña para estas cuentas. Para ellos se genera automáticamente una contraseña compleja con una longitud de 240 caracteres, que cambia automáticamente (por defecto, cada 30 días). Solo se usa Kerberos para la autenticación (sin problemas de seguridad NTLM), no se permite el inicio de sesión interactivo, nadie conoce la contraseña y no se almacena en el sistema local (no puede extraer la contraseña del proceso del sistema LSASS con mimikatz o similar herramientas). De esta manera, para iniciar un servicio o trabajos desatendidos, no es necesario crear usuarios de servicios individuales en AD y administrar sus contraseñas.

Cuentas de servicio administradas se introdujeron en Windows Server 2008 R2 (tipo de objeto msDS-ManagedServiceAccount). Su principal limitación es que dicha cuenta solo se puede usar en un servidor (no se pueden usar en servicios de clúster y NLB). Por lo tanto, Windows Server 2012 introdujo Cuentas de servicio administradas por grupos / gMSA (tipo msDS-GroupManagedServiceAccount). Las cuentas de gMSA se pueden utilizar simultáneamente en varios hosts.

Consideremos las características de usar MSA y gMSA para lanzar servicios y tareas en servidores y estaciones de trabajo en Active Directory.

Requisitos para usar cuentas de servicio MSA / gMSA:

Cuenta de servicio administrada Cuenta de servicio administrada por grupo
Dominio AD y nivel funcional del bosque Windows Server 2008 R2 o más reciente Windows Server 2012 o más reciente
KDC Controlador de dominio con el servicio de distribución de claves de Microsoft (KdsSvc) habilitado
Potencia Shell Para crear y administrar cuentas de servicio AD, debe instalar el módulo de Active Directory para Windows PowerShell
.NET Framework .NET Framework 3.5 o posterior debe estar instalado en el servidor
Versiones de Windows compatibles Windows 7 / Windows Server 2008 R2 o más reciente Windows Server 2012 / Windows 8 o más reciente

Crear la clave del servicio de distribución de claves (KDS)

Antes de comenzar a crear una cuenta MSA / gMSA, debe realizar una operación única y crear una clave raíz de KDS. Para hacerlo, ejecute el siguiente comando de PowerShell en el controlador de dominio (los Servicios de distribución de claves de Microsoft deben estar instalados y en ejecución):

Add-KdsRootKey –EffectiveImmediately

En este caso, la clave se crea y está disponible en 10 horas después de que finaliza la replicación de AD.

Consejo. Para usar la clave inmediatamente en el entorno de prueba, puede ejecutar este comando:
Add-KdsRootKey –EffectiveTime ((get-date).addhours(-10))

Asegúrese de que la clave raíz de KDS se haya creado correctamente:
Get-KdsRootKey

Use el comando para verificar la clave KDS:

Test-KdsRootKey -KeyId (Get-KdsRootKey).KeyId

Cómo crear una cuenta MSA administrada en Active Directory

Para crear una nueva cuenta administrada de MSA en AD, use el comando:

New-ADServiceAccount -Name msaMunSrv1 –RestrictToSingleComputer

De forma predeterminada, MSA y gMSA se crean en el contenedor CN = Cuentas de servicio administradas, pero puede cambiar la unidad organizativa con el Camino parámetro.

Vincula tu cuenta de servicio de MSA a la computadora de destino:

$Identity = Get-ADComputer -identity mun-srv01
Add-ADComputerServiceAccount -Identity $identity -ServiceAccount msaMunSrv1

Como recordatorio, solo puede usar la cuenta MSA en un host de AD.

Abra la consola ADUC (Usuarios y equipos de Active Directory) y asegúrese de que haya aparecido una nueva cuenta de tipo msDS-ManagedServiceAccount en Cuentas de servicio administradas contenedor (OU).

Cuentas de servicio administradas en Active Directory

Este contenedor de anuncios está oculto de forma predeterminada. Para verlo, habilite Características avanzadas en el Vista menú del complemento.

Puede obtener la información de la cuenta MSA usando el comando:

Get-ADServiceAccount msaMunSrv1

Get-ADServiceAccount

Cree una cuenta de servicio administrada por grupo (gMSA) en Active Directory

Antes de crear la cuenta de gMSA, cree un grupo de seguridad de dominio y agréguele servidores que podrán usar la contraseña para esta cuenta de servicio de grupo. La forma más sencilla de crear y poblar un grupo es usando PowerShell:
New-ADGroup grMunSQL1 -path 'OU=Groups,OU=Munich,OU=DE,dc=woshub,DC=com' -GroupScope Global -PassThru –Verbose
Add-AdGroupMember -Identity grMunSQL1 -Members mun-sql01$, mun-sql02$, mun-sql03$

crear un grupo de seguridad para la cuenta gMSA en AD

Para crear una cuenta de servicio administrada por grupo (gMSA), use el comando:

New-ADServiceAccount -name gmsaMunSQL1 -DNSHostName gmsaMunSQL1.woshub.com -PrincipalsAllowedToRetrieveManagedPassword grMunSQL1 –verbose

New-ADServiceAccount - crear gmsa PrincipalsAllowedToRetrieveManagedPassword

La cuenta de gMSA también se crea de forma predeterminada en la unidad organizativa de cuentas de servicio administradas.

msDS-GroupManagedServiceAccount

Instalación de la cuenta de servicio administrada por grupo en Windows

Para usar cuentas de servicio MSA / gMSA en servidores o estaciones de trabajo de destino, primero debe instalar el módulo Active Directory PowerShell:

Add-WindowsFeature RSAT-AD-PowerShell

Instale la cuenta de servicio MSA (gMSA) en el servidor:

Install-ADServiceAccount -Identity gmsaMunSQL1

Compruebe si la cuenta de servicio está instalada correctamente:

Test-ADServiceAccount gmsaMunSQL1

Si el comando regresa Cierto, todo está configurado correctamente.

Install-ADServiceAccount: instala la cuenta gmsa en Windows Server 2016

Si el comando regresa False, lo más probable es que la cuenta MSA no esté instalada en el servidor o esta computadora no tenga permisos para usarla:

Test-ADServiceAccount

WARNING: Test failed for Managed Service Account gmsaMunSQL1. If standalone Managed Service Account, the account is linked to another computer object in the Active Directory. If group Managed Service Account, either this computer does not have permission to use the group MSA or this computer does not support all the Kerberos encryption types required for the gMSA.

No puede utilizar RunAs estándar para verificar que sus servicios y scripts se pueden ejecutar con la cuenta de servicio MSA. En su lugar, use la herramienta PsExec (anteriormente le mostramos cómo usar psexec para ejecutar el símbolo del sistema en nombre de NT Authority System).

  1. Abra el símbolo del sistema como administrador;
  2. Ejecute el comando: PsExec64.exe -i -u woshubgmsaMunSQL1$ -p ~ cmd.exe

    Reemplazar la contraseña con ~. Esto significa que la contraseña debe obtenerse de AD.

  3. En la ventana cmd que se abre, ejecute el whoami comando para asegurarse de que la consola se esté ejecutando con la cuenta gMSA; ejecutar cmd en nombre de gmsa (cuenta de servicio administrada por grupo)
  4. Verifique que los scripts, programas o servicios se estén ejecutando correctamente en una cuenta de servicio administrada.

Ahora queda configurar los servicios de Windows necesarios, las tareas del programador de tareas, los grupos de IIS, etc., para que se ejecuten como usuario de MSA / gMSA.

¿Cómo ejecutar un servicio de Windows con una cuenta de servicio administrada?

Ahora puede configurar el servicio de Windows requerido para que se ejecute con una cuenta MSA / gMSA.

  1. Abra la consola de gestión de servicios (services.msc);
  2. Abra las propiedades del servicio requerido y vaya al "Acceder" pestaña;
  3. Selecciona el Esta cuenta opción e ingrese el nombre de la cuenta MSA. Asegúrese de agregar el PS símbolo al final del nombre de la cuenta (no es necesario que ingrese la contraseña de la cuenta);
  4. La cuenta de servicio de MSA se otorgará automáticamente Iniciar sesión como servicio permisos; configurar el servicio de Windows para que se ejecute desde la cuenta de servicio gMSA
  5. Después de guardar los cambios, se debe reiniciar el servicio.

Para ejecutar servicios complejos con gMSA, consulte la documentación para ver si es compatible. Actualmente gMSA es compatible con SQL Server, IIS, AD LDS, Exchange Server

Ejecución de una tarea programada con una cuenta de servicio administrada / gMSA

Puede configurar el Programador de tareas de Windows para ejecutar trabajos con la cuenta de servicio gMSA. Esto es conveniente porque las contraseñas de la cuenta gMSA no se almacenan en secuencias de comandos, no es necesario cifrarlas ni protegerlas. Cuando cambia la contraseña, no es necesario que vuelva a configurar la tarea.

Para otorgar permisos a la cuenta MSA / gMSA, basta con agregarla al grupo de seguridad requerido. Por ejemplo, al grupo de administradores locales, administradores de dominio, administradores de DNS, etc.

Puede configurar la tarea para que se ejecute como la cuenta gMSA mediante PowerShell. Por ejemplo, la siguiente secuencia de comandos creará una nueva tarea programada que ejecuta una secuencia de comandos de PowerShell todos los días a las 11:00 p. M. Para hacer una copia de seguridad de la base de datos:

$action = New-ScheduledTaskAction -Execute powershell.exe  -Argument "-file C:PSScriptsDBBackup.ps1 -executionpolicy bypass -NoProfile"
$trigger = New-ScheduledTaskTrigger -At 23:00 -Daily
$principal = New-ScheduledTaskPrincipal -UserID woshubgmsaMunSQL1$ -LogonType Password
Register-ScheduledTask DBBackup –Action $action –Trigger $trigger –Principal $principal

usando gMSA para tareas programadas (modo powershell)

Consejo. Para ejecutar una tarea programada, debe otorgar la cuenta de gMSA "Inicie sesión como un trabajo por lotes”Permiso.

La '-LogonType PasswordEl argumento 'especifica que la contraseña para esta cuenta gMSA se recuperará del controlador de dominio.

También puede crear un trabajo programado con la configuración deseada utilizando el taskschd.msc GUI. Luego, puede volver a configurarlo con la herramienta schtasks.exe para que se ejecute en una cuenta de servicio administrada:

schtasks /Change /TN BackupDB /RU "woshubgmsaMunSQL1$" /RP ""

Recomendado para ti