Для безопасного запуска служб, приложений и заданий планировщика на серверах и рабочих станциях домена Active Directory можно использовать управляемые учетные записи служб ( Managed Service Accounts – MSA ). MSA – это специальный тип учетной записи, для которых AD генерирует сложный пароль (240 символов) и автоматически меняет его каждые 30 дней. Интерактивный вход под MSA не возможен, пароль не известен никому и не хранится в локальной системе (нельзя извлечь пароль из системного процесса LSASS с помощью mimikatz или аналогичных утилит). Таким образом для запуска служб или заданий, вам не нужно создавать отдельных сервисных пользователей в AD и управлять их паролями
В этой статье, мы покажем, как создать сервисные учетные записи MSA и использовать их для запуска служб и сервисов на серверах.
- Создать корневой ключ Key Distribution Services
- Создать управляемую учётную запись MSA в Active Directory
- Создать групповую сервисную учетную запись gMSA для нескольких серверов
- Установка учетных записей MSA и gMSA на хостах Windows
- Запуск службы Windows от имени Managed Service Account
- Запуск задания планировщика от имени сервисной учетной записи gMSA
Существует два типа сервисных учетных записей в AD:
- Managed Service Accounts (MSA) – появились в Windows Server 2008 R2 (тип объекта
msDS-ManagedServiceAccount
). Основное ограничение – такую учетную запись можно использовать только на одном сервере (т.е. их нельзя использовать с кластерными службами). - Group Managed Service Accounts (gMSA) – появились в Windows Server 2012 (тип объекта
msDS-GroupManagedServiceAccount
). gMSA аккаунты можно одновременно использовать на нескольких серверах.
Создать корневой ключ Key Distribution Services
Перед началом использования сервисных учетных записей AD нужно выполнить разовую операцию по созданию корневого ключа KDS (KDS root key) на контроллере домена с включенной службой KdsSvc. Этот ключ будет использовать для генерации паролей gMSA.
Add-KdsRootKey –EffectiveImmediately
Ключ будет создан и доступен для использования через 10 часов, после окончания репликации между контролерами домена.
Add-KdsRootKey –EffectiveTime ((get-date).addhours(-10))