технологія керованих службових записів (Managed Service Accounts - MSA) Вперше була представлена в Windows Server 2008 R2 і призначена для автоматичного управління (зміни) паролів службових (сервісних) облікових записів. Завдяки використанню механізму Managed Service Accounts можна істотно знизити ризик компрометації системних облікових записів, з-під яких запущені системні служби (не секрет, що існує велика кількість утиліт, що дозволяють отримати паролі локальних користувачів з LSASS).
Для облікових записів MSA генерується пароль довжиною 240 символів, з яких половина - англійські букви, інша половина - службові символи. Пароль такого облікового запису змінюється автоматично (за замовчуванням кожні 30 днів) і не зберігається на локальній системі
Основним недоліком MSA є можливість використання подібної службової записи тільки на одному комп'ютері. Це означає, що службові облікові записи MSA не можуть працювати з кластерними і NLB службами (веб-ферми), які працюють одночасно на декількох серверах і використовують один обліковий запис і пароль.
Для подолання зазначеного недоліку Microsoft в Windows Server 2012 додала функціонал групових керованих облікових записів служб (gMSA - Group Managed Service Accounts). Такі облікові записи можна одночасно використовувати на декількох серверах, щоб всі екземпляри служби використовували одну і ту ж обліковий запис, наприклад в службі балансування навантаження (NLB), кластерних службах тощо.
Вимоги gMSA:
Щоб скористатися можливостями gMSA, потрібно, щоб інфраструктура відповідала наступним вимогам:
- Рівень схеми AD - Windows Server 2012 (як її оновити описано тут).
- Контролер домену Windows Server 2012 (і вище) зі службою Microsoft Key Distribution Service (служба поширення ключів) - саме це служба відповідає за генерацію паролів
- PowerShell модуль для управління Active Directory
- В якості клієнтів можуть використовуватися Windows Server 2012/2012 R2 і Windows 8 / 8.1
- Служба, яка використовує gMSA повинна бути сумісна з цим типом акаунтів (повинно бути вказано в документації). На даний момент gMSA підтримують: SQL Server 2008 R2 SP1, 2012; IIS; AD LDS; Exchange 2010/2013
Створюємо KDS ключ
Перш, ніж приступити до створення облікового запису gMSA, необхідно виконати разову операцію зі створення кореневого ключа KDS (KDS root key). Для цього на контролері домену з правами адміністратора виконайте команду (служба Microsoft Key Distribution Services повинна бути встановлена і включена):
Add-KdsRootKey -EffectiveImmediately
У цьому випадку ключ буде створено і доступний через 10 годин, після закінчення реплікації.
Порада. У тестовій середовищі для негайного використання можна скористатися командою:Add-KdsRootKey -EffectiveTime ((get-date) .addhours (-10))
Перевіримо, що кореневої ключ KDS створився успішно:
Get-KdsRootKey
Створюємо обліковий запис gMSA
Створимо новий обліковий запис gMSA командою:
New-ADServiceAccount -name gmsa1 -DNSHostName dc1.winitpro.ru -PrincipalsAllowedToRetrieveManagedPassword "gmsa1Group"
де, gmsa1 - ім'я створюваної облікового запису gMSA
dc1.winitpro.ru - ім'я DNS сервера
gmsa1Group - група Active Directory, в яку включені всі системи, які будуть використовувати цю групову обліковий запис (група повинна бути створена попередньо)
Після виконання команди потрібно відкрити консоль ADUC (Active Directory Users and Computers) і перевірити, що в контейнері (OU) Managed Service Accounts з'явилася радна обліковий запис (за замовчуванням цей контейнер не відображається, щоб його побачити, потрібно в меню View оснащення включити опцію Advanced Features)
Установка gMSA на сервері
Підключимо модуль Powershell для підтримки середовища Active Directory:
Add-WindowsFeature RSAT-AD-PowerShell
Далі нам потрібно встановити керовану обліковий запис на сервера, на яких вона буде використовуватися (з-під цієї учеткі надалі буде запущений якийсь сервіс). В першу чергу потрібно перевірити, що цього сервера дозволено отримувати пароль облікового запису gMSA з Active Directory. Для цього його обліковий запис повинен складатися у зазначеній при створенні доменної групі (в нашому випадку gmsa1Group). Встановимо запис gmsa1 на даному сервері:
Install-ADServiceAccount -Identity gmsa1
Перевірити, що облікова групова сервісний запис встановлена коректно можна так (для Windows PowerShell 4.0):
Test-ADServiceAccount gmsa1
Якщо команда поверне True - все налаштовано правильно.
Далі у властивостях служби вкажемо, що вона буде запускатися їх під облікового запису gMSA. Для цього на вкладці Log on потрібно вибрати This account і вказати ім'я сервісної облікового запису. В кінці імені обов'язково вказується символ $, пароль вказувати не потрібно. Після збереження змін службу потрібно перезапустити.
Сервісної облікового запису автоматично будуть надані права "Log On As a Service".
"Тонка" настройка gMSA
Періодичність зміни пароля можна змінити (за замовчуванням 30 днів):
Set-ADServiceAccount gmsa1-ManagedPasswordIntervalInDays 60
Обліковий запис gMSA можна використовувати і в завданнях планувальника. Тонкий нюанс в тому, що завдання можна налаштувати тільки через PowerShell.
$ Action = New-ScheduledTaskAction "c: \ script \ backup.cmd" $ trigger = New-ScheduledTaskTrigger -At 21:00 -Daily $ principal = New-ScheduledTaskPrincipal -UserID winitpro \ gmsa1 $ -LogonType PasswordRegister-ScheduledTask BackupDB -Action $ action -Trigger $ trigger -Principal $ principal
Аргумент "-LogonType Password" означає, що пароль для цієї gMSA облікового запису буде отримано з контролера домену.
Примітка. Необхідно надати облікового запису gMSA права "Log on as a batch job"