Управление учетными записями sMSA и gMSA (общие операции)
В Эллес реализована поддержка функциональности по работе с автономными управляемыми служебными учетными записями (Standalone Managed Service Account, sMSA) и групповыми управляемыми служебными учетными записями (Group Managed Service Account, gMSA).
Для выполнения общих операций по администрированию учетных записей sMSA и gMSA с помощью утилиты samba-tool используется группа подкоманд service-account.
Операции доступны пользователям с правами администратора домена (член группы Domain Admins) или администратора предприятия (член группы Enterprise Admins).
| В текущей версии функциональность sMSA и gMSA поддерживается при работе Эллес в гетерогенном домене, в котором также доступны контроллеры домена на ОС Windows Server с развернутой службой каталогов Microsoft Active Directory Domain Services (AD DS). |
Общие сведения
Управляемые служебные учетные записи (Managed Service Accounts, MSA) предназначены для автоматизации работы с учетными данными служб в доменной инфраструктуре Эллес. Они обеспечивают автоматическую ротацию, централизованное управление и использование паролей для аутентификации служб без участия администратора. Это позволяет устранить риски, связанные с ручным заданием и хранением паролей, и упростить администрирование системных и сетевых служб.
Эллес поддерживает работу с двумя типами управляемых служебных записей:
-
учетные записи sMSA;
-
учетные записи gMSA.
Учетные записи sMSA
Учетные записи sMSA предназначены для использования одной службой на одном компьютере в домене.
Пароль такой учетной записи автоматически обновляется контроллерами домена, а служба получает доступ к актуальному паролю через локальную систему безопасности (Local Security Authority, LSA). sMSA обеспечивает корректную аутентификацию по протоколу Kerberos, может использоваться для регистрации SPN и не требует задания пароля вручную при настройке службы.
sMSA подходят для служб, работающих на выделенных серверах, а также для приложений, не требующих совместного доступа к одной учетной записи с других узлов. Использование sMSA исключает необходимость синхронизации учетных данных между серверами и снижает риск компрометации, так как пароль никогда не раскрывается администратору и обновляется автоматически.
Учетные записи gMSA
Учетные записи gMSA предназначены для сценариев, когда одна и та же служба используется на нескольких компьютерах в домене. Пароль gMSA также управляется автоматически, а доступ к нему предоставляется ограниченному набору компьютеров, определенных в параметрах учетной записи.
gMSA реализует распределенный механизм доступа к паролю на основе службы распространения ключей (Key Distribution Service, KDS), которая работает на контроллерах домена. Пароль учетной записи gMSA никогда не раскрывается администраторам или службам в явном виде — серверы, включенные в список разрешенных, получают его динамически при запуске службы. Контроллер домена обеспечивает безопасную выдачу пароля и его периодическую ротацию с использованием криптографически стойких ключей.
gMSA поддерживает аутентификацию по протоколу Kerberos, а также регистрацию SPN для сервисов.
Перед использованием gMSA в домене требуется однократно создать корневой ключ KDS, который используется для генерации паролей всех управляемых учетных записей.
Создание управляемой служебной учетной записи
Формат вызова:
samba-tool service-account create -H <URL> [options]
При вызове ожидается имя учетной записи sMSA или gMSA в параметре --name.
Для создания sMSA требуется дополнительно указать параметр --restrict-to-single-computer.
Для gMSA также требуется указать полное доменное имя учетной записи в параметре --dns-host-name. Например, если gMSA с именем --name=gmsaServiceName создается в домене elles.inno.tech, то --dns-host-name=gmsaServiceName.elles.inno.tech.
При необходимости также могут быть заданы дополнительные параметры — разрешения в виде строки SDDL, периодичность смены пароля и один или несколько идентификаторов экземпляров сервисов (SPN) для использования вместе с создаваемой учетной записью.
Параметры
Параметры вызова:
-
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; -
--name=NAME— имя для учетной записи gMSA или sMSA (обязательный); -
--dns-host-name=DNSHOSTNAME— полное доменное имя учетной записи gMSA (обязательный для gMSA); -
--group-msa-membership=SDDL— значение атрибутаmsDS-GroupMSAMembershipв виде строки на языке определения дескрипторов безопасности (SDDL), определяющей разрешения на использование учетной записи gMSA; -
--managed-password-interval=INTERVAL— периодичность смены пароля в днях для учетной записи gMSA (по умолчанию — 30 дней);Задает значение атрибута msDS-ManagedPasswordInterval. После создания значение доступно только для просмотра. Изменение невозможно. -
--restrict-to-single-computer— создать учетную запись sMSA (обязательный для sMSA); -
--service-principal-names=SPN1,SPN2,SPNN— список идентификаторов экземпляров сервисов (SPN) через запятую без пробелов для использования вместе с создаваемой учетной записью gMSA.См. подробнее о работе с SPN в разделе «Администрирование SPN».
Примеры
Пример создания учетной записи gMSA:
samba-tool service-account create \ --name=GMSA1 \ --dns-host-name=gmsa1.elles.inno.tech Created group managed service account: GMSA1
Пример создания учетной записи gMSA с указанием интервала обновления пароля и значения для атрибута msDS-GroupMSAMembership:
samba-tool service-account create \ --name=GMSA2 \ --dns-host-name=gmsa2.elles.inno.tech \ --managed-password-interval=25 \ --group-msa-membership="O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-1159061634-2679507100-403793082-500)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-1159061634-2679507100-403793082-2100)" Created group managed service account: GMSA2
Пример создания учетной записи gMSA с указанием списка SPN:
samba-tool service-account create \ --name=GMSA3 \ --dns-host-name=gmsa3.elles.inno.tech \ --service-principal-names=HTTP/webserver1.elles.inno.tech,HTTP/webserver2.elles.inno.tech Created group managed service account: GMSA3
Пример создания учетной записи sMSA:
samba-tool service-account create \ --name=SMSA1 \ --restrict-to-single-computer Created standalone managed service account: SMSA1
Изменение управляемой служебной учетной записи
Формат вызова:
samba-tool service-account modify -H <URL> [options]
При вызове ожидается имя учетной записи в параметре --name.
Изменение интервала обновления пароля (значение атрибута msDS-ManagedPasswordInterval) после создания невозможно.
|
Параметры
Параметры вызова:
-
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; -
--name=NAME— имя существующей учетной записи gMSA или sMSA (обязательный); -
--dns-host-name=DNSHOSTNAME— полное доменное имя учетной записи gMSA; -
--group-msa-membership=SDDL— значение атрибутаmsDS-GroupMSAMembershipв виде строки на языке определения дескрипторов безопасности (SDDL), определяющей разрешения на использование учетной записи gMSA.
Примеры
Пример изменения значения атрибута msDS-GroupMSAMembership учетной записи gMSA:
samba-tool service-account modify \ --name=GMSA1 \ --group-msa-membership="O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-1159061634-2679507100-403793082-500)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-1159061634-2679507100-403793082-2100)" Modified group managed service account: GMSA1
Удаление управляемой служебной учетной записи
Формат вызова:
samba-tool service-account delete -H <URL> [options]
При вызове ожидается имя учетной записи в параметре --name.
Получение информации об управляемой служебной учетной записи
Формат вызова:
samba-tool service-account view -H <URL> [options]
При вызове ожидается имя учетной записи в параметре --name.
Подкоманда возвращает стандартный набор атрибутов учетной записи, соответствующий ее классу в схеме службы каталогов (msDS-GroupManagedServiceAccount для gMSA и msDS-ManagedServiceAccount для sMSA). Для учетной записи gMSA в выводе содержатся следующие специфичные атрибуты:
-
dNSHostName— полное доменное имя учетной записи; -
msDS-GroupMSAMembership— строка на языке определения дескрипторов безопасности (SDDL), определяющая разрешения на использование учетной записи gMSA; -
msDS-ManagedPasswordInterval— интервал автоматической смены пароля учетной записи.
Параметры
Параметры вызова:
-
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; -
--name=NAME— имя учетной записи gMSA или sMSA (обязательный).
Примеры
Пример получения информации об учетной записи gMSA:
samba-tool service-account view \
--name=GMSA2
{
"badPasswordTime": "1601-01-01T00:00:00+00:00",
"badPwdCount": 0,
"cn": "GMSA2",
"codePage": 0,
"countryCode": 0,
"dNSHostName": "gmsa2.elles.inno.tech",
"distinguishedName": "CN=GMSA2,CN=Managed Service Accounts,DC=elles,DC=inno,DC=tech",
"dn": "CN=GMSA2,CN=Managed Service Accounts,DC=elles,DC=inno,DC=tech",
"instanceType": 4,
"lastLogoff": "1601-01-01T00:00:00+00:00",
"lastLogon": "1601-01-01T00:00:00+00:00",
"logonCount": 0,
"msDS-GroupMSAMembership": "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-1159061634-2679507100-403793082-500)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-1159061634-2679507100-403793082-2100)",
"msDS-ManagedPasswordInterval": 20,
"msDS-SupportedEncryptionTypes": 28,
"name": "GMSA2",
"objectCategory": "CN=ms-DS-Group-Managed-Service-Account,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech",
"objectClass": [
"top",
"person",
"organizationalPerson",
"user",
"computer",
"msDS-GroupManagedServiceAccount"
],
"objectGUID": "ff08b2bd-e05d-46b9-ac03-f0b62869ad3c",
"objectSid": "S-1-5-21-1159061634-2679507100-403793082-2119",
"primaryGroupID": 515,
"pwdLastSet": "1601-01-01T00:00:00+00:00",
"sAMAccountName": "GMSA2$",
"sAMAccountType": 805306369,
"userAccountControl": 4096
}
Пример получения информации об учетной записи sMSA:
samba-tool service-account view \
--name=SMSA1
{
"badPasswordTime": "1601-01-01T00:00:00+00:00",
"badPwdCount": 0,
"cn": "SMSA1",
"codePage": 0,
"countryCode": 0,
"distinguishedName": "CN=SMSA1,CN=Managed Service Accounts,DC=elles,DC=inno,DC=tech",
"dn": "CN=SMSA1,CN=Managed Service Accounts,DC=elles,DC=inno,DC=tech",
"instanceType": 4,
"lastLogoff": "1601-01-01T00:00:00+00:00",
"lastLogon": "1601-01-01T00:00:00+00:00",
"logonCount": 0,
"msDS-HostServiceAccountBL": [
"CN=SRV1,CN=Computers,DC=elles,DC=inno,DC=tech"
],
"msDS-SupportedEncryptionTypes": 28,
"name": "SMSA1",
"objectCategory": "CN=ms-DS-Managed-Service-Account,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech",
"objectClass": [
"top",
"person",
"organizationalPerson",
"user",
"computer",
"msDS-ManagedServiceAccount"
],
"objectGUID": "185ab822-9c1c-493e-bd56-fe450e11b476",
"objectSid": "S-1-5-21-1159061634-2679507100-403793082-1159",
"primaryGroupID": 515,
"pwdLastSet": "1601-01-01T00:00:00+00:00",
"sAMAccountName": "SMSA1$",
"sAMAccountType": 805306369,
"userAccountControl": 4096
}
Получение списка управляемых служебных учетных записей
Формат вызова:
samba-tool service-account list -H <URL> [options]
Подкоманда возвращает список имен только учетных записей gMSA (без использования дополнительного параметра --restrict-to-single-computer) или только учетных записей sMSA (при использовании параметра --restrict-to-single-computer) в домене в формате sAMAccountName.
Для получения полного списка атрибутов для каждой учетной записи необходимо использовать ключ --json.
Параметры
Параметры вызова:
-
-H URL|--URL=URL— URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта; -
--json— вывод результатов выполнения операции в формате JSON; -
--restrict-to-single-computer— включить в вывод только учетные записи sMSA.
Примеры
Пример получения списка имен учетных записей gMSA в домене:
samba-tool service-account list GMSA1$ GMSA2$
Пример получения полного перечня атрибутов учетных записей gMSA в домене:
samba-tool service-account list \
--json
{
"GMSA1$": {
"badPasswordTime": "1601-01-01T00:00:00+00:00",
"badPwdCount": 0,
"cn": "GMSA1",
"codePage": 0,
"countryCode": 0,
"dNSHostName": "gmsa1.elles.inno.tech",
"distinguishedName": "CN=GMSA1,CN=Managed Service Accounts,DC=elles,DC=inno,DC=tech",
"dn": "CN=GMSA1,CN=Managed Service Accounts,DC=elles,DC=inno,DC=tech",
"instanceType": 4,
"lastLogoff": "1601-01-01T00:00:00+00:00",
"lastLogon": "1601-01-01T00:00:00+00:00",
"logonCount": 0,
"msDS-GroupMSAMembership": "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-1159061634-2679507100-403793082-500)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-1159061634-2679507100-403793082-2100)",
"msDS-ManagedPasswordInterval": 30,
"msDS-SupportedEncryptionTypes": 28,
"name": "GMSA1",
"objectCategory": "CN=ms-DS-Group-Managed-Service-Account,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech",
"objectClass": [
"top",
"person",
"organizationalPerson",
"user",
"computer",
"msDS-GroupManagedServiceAccount"
],
"objectGUID": "458bfe6a-e412-42ca-9fd4-742d5077df2a",
"objectSid": "S-1-5-21-1159061634-2679507100-403793082-2118",
"primaryGroupID": 515,
"pwdLastSet": "1601-01-01T00:00:00+00:00",
"sAMAccountName": "GMSA1$",
"sAMAccountType": 805306369,
"userAccountControl": 4096
},
"GMSA2$": {
"badPasswordTime": "1601-01-01T00:00:00+00:00",
"badPwdCount": 0,
"cn": "GMSA2",
"codePage": 0,
"countryCode": 0,
"dNSHostName": "gmsa2.elles.inno.tech",
"distinguishedName": "CN=GMSA2,CN=Managed Service Accounts,DC=elles,DC=inno,DC=tech",
"dn": "CN=GMSA2,CN=Managed Service Accounts,DC=elles,DC=inno,DC=tech",
"instanceType": 4,
"lastLogoff": "1601-01-01T00:00:00+00:00",
"lastLogon": "1601-01-01T00:00:00+00:00",
"logonCount": 0,
"msDS-GroupMSAMembership": "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-1159061634-2679507100-403793082-500)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-1159061634-2679507100-403793082-2100)",
"msDS-ManagedPasswordInterval": 20,
"msDS-SupportedEncryptionTypes": 28,
"name": "GMSA2",
"objectCategory": "CN=ms-DS-Group-Managed-Service-Account,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech",
"objectClass": [
"top",
"person",
"organizationalPerson",
"user",
"computer",
"msDS-GroupManagedServiceAccount"
],
"objectGUID": "ff08b2bd-e05d-46b9-ac03-f0b62869ad3c",
"objectSid": "S-1-5-21-1159061634-2679507100-403793082-2119",
"primaryGroupID": 515,
"pwdLastSet": "1601-01-01T00:00:00+00:00",
"sAMAccountName": "GMSA2$",
"sAMAccountType": 805306369,
"userAccountControl": 4096
}
}
Пример получения списка имен учетных записей sMSA в домене:
samba-tool service-account list \
--restrict-to-single-computer
SMSA1$
SMSA2$
Пример получения полного перечня атрибутов учетных записей sMSA в домене:
samba-tool service-account list \
--restrict-to-single-computer \
--json
{
"SMSA1$": {
"badPasswordTime": "1601-01-01T00:00:00+00:00",
"badPwdCount": 0,
"cn": "SMSA1",
"codePage": 0,
"countryCode": 0,
"distinguishedName": "CN=SMSA1,CN=Managed Service Accounts,DC=elles,DC=inno,DC=tech",
"dn": "CN=SMSA1,CN=Managed Service Accounts,DC=elles,DC=inno,DC=tech",
"instanceType": 4,
"lastLogoff": "1601-01-01T00:00:00+00:00",
"lastLogon": "1601-01-01T00:00:00+00:00",
"logonCount": 0,
"msDS-HostServiceAccountBL": [
"CN=SRV1,CN=Computers,DC=elles,DC=inno,DC=tech"
],
"msDS-SupportedEncryptionTypes": 28,
"name": "SMSA1",
"objectCategory": "CN=ms-DS-Managed-Service-Account,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech",
"objectClass": [
"top",
"person",
"organizationalPerson",
"user",
"computer",
"msDS-ManagedServiceAccount"
],
"objectGUID": "185ab822-9c1c-493e-bd56-fe450e11b476",
"objectSid": "S-1-5-21-1159061634-2679507100-403793082-1159",
"primaryGroupID": 515,
"pwdLastSet": "1601-01-01T00:00:00+00:00",
"sAMAccountName": "SMSA1$",
"sAMAccountType": 805306369,
"userAccountControl": 4096
},
"SMSA2$": {
"badPasswordTime": "1601-01-01T00:00:00+00:00",
"badPwdCount": 0,
"cn": "SMSA2",
"codePage": 0,
"countryCode": 0,
"distinguishedName": "CN=SMSA2,CN=Managed Service Accounts,DC=elles,DC=inno,DC=tech",
"dn": "CN=SMSA2,CN=Managed Service Accounts,DC=elles,DC=inno,DC=tech",
"instanceType": 4,
"lastLogoff": "1601-01-01T00:00:00+00:00",
"lastLogon": "1601-01-01T00:00:00+00:00",
"logonCount": 0,
"msDS-HostServiceAccountBL": [
"CN=SRV2,CN=Computers,DC=elles,DC=inno,DC=tech"
],
"msDS-SupportedEncryptionTypes": 28,
"name": "SMSA2",
"objectCategory": "CN=ms-DS-Managed-Service-Account,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech",
"objectClass": [
"top",
"person",
"organizationalPerson",
"user",
"computer",
"msDS-ManagedServiceAccount"
],
"objectGUID": "185ab822-9c1c-493e-bd56-fe450e11b476",
"objectSid": "S-1-5-21-1159061634-2679507100-403793082-1159",
"primaryGroupID": 515,
"pwdLastSet": "1601-01-01T00:00:00+00:00",
"sAMAccountName": "SMSA2$",
"sAMAccountType": 805306369,
"userAccountControl": 4096
}
}