31.8.26

Использование управляемой учётной записи (MSA) со службой SQL Server

Автор: Sarjen Haque, Using Managed Service Account with SQL Server Service


MSA — это управляемая учётная запись Active Directory, которая автоматически управляется Active Directory (AD). MSA (domain\account$) назначается Windows Server, а управление паролями обрабатывается Windows (не нужно их самим менять и обслуживать).

Преимущества MSA

Основное преимущество управляемой учётной записи (MSA) заключается в том, что управление паролями делегировано Active Directory и операционной системе Windows, что снижает нагрузку на администратора по управлению учётными записями служб и упрощает управление субъектами служб на предприятии.

  • Автоматическое управление паролями.
  • Упрощённое управление именами субъектов-служб (SPN).
  • Невозможность интерактивного входа в Windows.
  • Простой контроль того, какие компьютеры авторизованы для аутентификации MSA и выполнения кода в их контексте.

Типы управляемых учётных записей (MSA)

  • sMSA (Standalone Manage Service Account — автономная управляемая учётная запись): Этот тип MSA был представлен в Windows Server 2008 R2 и Windows 7. sMSA может использоваться на одном Windows Server.
  • gMSA (Group Managed Service Account — групповая управляемая учётная запись): Этот тип MSA был представлен в Windows Server 2012 R2. gMSA может использоваться многократно. Отказоустойчивые кластеры не поддерживают gMSA. Однако службы, работающие поверх службы кластера, могут использовать gMSA или sMSA, если они являются службой Windows, пулом приложений, запланированной задачей или изначально поддерживают gMSA или sMSA.

Поддержка sMSA и gMSA в SQL Server

  • SQL Server 2012: Поддерживается только sMSA.
  • SQL Server 2014 и новее: Поддерживаются как sMSA, так и gMSA.


Учётная запись MSA в AD

Предварительные требования для автономной управляемой учётной записи (sMSA) для SQL Server

  • Уровень функциональности домена — Windows Server 2008 R2 или выше.
  • SQL Server 2012 или выше.
  • Служба распространения ключей Microsoft (Microsoft Key Distribution Service).
  • Модуль PowerShell для Active Directory для управления.

Предварительные требования для групповой управляемой учётной записи (gMSA) для SQL Server

  • Уровень функциональности домена — Windows Server 2012 или выше.
  • SQL Server 2014 или выше.
  • Windows Server 2012 R2 или выше.
  • Служба распространения ключей Microsoft.
  • Модуль PowerShell для Active Directory для управления.

Шаги по созданию MSA (sMSA или gMSA)

  1. Создайте ключ KDS на контроллере домена.
  2. Установите модуль PowerShell для Active Directory.
  3. Создайте sMSA или gMSA.
  4. На клиенте установите sMSA или gMSA.
  5. Настройте службу Windows с использованием MSA.

Пошаговое создание автономной управляемой учётной записи (sMSA)

Нам нужно создать автономную управляемую учётную запись, например sSQL2012, для использования с SQL Server 2012, установленным на Windows Server с именем sql2019 в домене myhome.net.

На контроллере домена:

  1. Проверка ключа KDS: если ключ KDS недоступен, необходимо создать его. Обратите внимание, что для вступления ключа KDS в силу требуется 10 часов.
    Add-KdsRootKey -EffectiveTime ((get-date).addhours(-10))  
  2. Создание учётной записи службы с именем sSQL2012:

    New-ADServiceAccount sSQL2012 `

        -DisplayName "sql2012 MSA Service" `

        -DNSHostName sql2019.myhome.net

  3. Установка сервера, который может получать пароль из Active Directory:

    Set-ADServiceAccount sSQL2012 `

        -PrincipalsAllowedToRetrieveManagedPassword sql2019$

  4. Установка типа шифрования для учётной записи:

    Set-ADServiceAccount `

        -Identity sSQL2012 `

        -KerberosEncryptionType AES128,AES256

На клиентском сервере (сервер: SQL2019):

  1. Установка и импорт модуля PowerShell для Active Directory:

    Add-WindowsFeature RSAT-AD-PowerShell

    Import-Module ActiveDirectory

  2. Установка созданной управляемой учётной записи sSQL2012:
    Install-ADServiceAccount -Identity sSQL2012
  3. Тестирование и проверка учётной записи:
    Test-ADServiceAccount -Identity sSQL2012

    Если всё прошло успешно, результат теста будет следующим:


  4. Откройте диспетчер конфигурации SQL Server и измените учётную запись службы. В моём случае новая учётная запись службы — myhome\sSQL2012$. Пароль подставлять не потребуется.

Пошаговое создание групповой управляемой учётной записи (gMSA)

Нам нужно создать групповую управляемую учётную запись, например gMSAsqlSvc, для использования с несколькими экземплярами SQL Server, начиная с редакции SQL 2014. Предположим, что Windows Server — Sql2104, Sql2016, sql2017 и sql2019. Все эти серверы находятся в домене myhome.net.

Создание gMSA можно выполнить двумя способами: с использованием группы AD или без неё.

Создание gMSA с использованием группы AD

На контроллере домена:

  1. Проверка ключа KDS: если ключ KDS недоступен, создайте его.
    Add-KdsRootKey -EffectiveTime ((get-date).addhours(-10))
  2. Создание группы AD с именем SQLSvcGroup:
    New-ADGroup "SQLSvcGroup" `

        Security -GroupCategory `

        Global -GroupScope `

        -PassThru `

        –Verbose

  3. Добавление двух серверов в созданную группу AD. Убедитесь, что вы добавили $ в конце каждого имени компьютера:
    Add-AdGroupMember `

        "SQLSvcGroup" -Identity `

        -Members sql2014$, sql2016$

  4. Проверка группы SQLSvcGroup:
    Get-AdGroupMember -Identity "SQLSvcGroup"
  5. Создание групповой учётной записи службы gMSAsqlSvc:

    New-ADServiceAccount `

        -Name gMSAsqlSvc `

        -PrincipalsAllowedToRetrieveManagedPassword SQLSvcGroup `

        -Enabled:$true `

        -DNSHostName gMSAsqlSvc.myhome.net `

        -SamAccountName gMSAsqlSvc `

        -ManagedPasswordIntervalInDays 30

Создание gMSA без группы AD

На контроллере домена:

  1. Проверка ключа KDS: если ключ KDS недоступен, создайте его.
    Add-KdsRootKey -EffectiveTime ((get-date).addhours(-10))
  2. Создание групповой учётной записи службы gMSAsqlSvc, включающей два сервера:
    New-ADServiceAccount -Name gMSAsqlSvc `

       -DNSHostName gMSAsqlSvc.myhome.net `

       -PrincipalsAllowedToRetrieveManagedPassword sql2014$,sql2016$ `

       -ManagedPasswordIntervalInDays 30

  3. Если вам нужно добавить ещё один сервер в групповую учётную запись службы, используйте следующую команду для каждого сервера, который нужно добавить:

    Add-ADComputerServiceAccount `

        -ServiceAccount gMSAsqlSvc `

        -Computer sql2019

    Set-ADServiceAccount `

        -Identity gMSAsqlSvc `

        -PrincipalsAllowedToRetrieveManagedPassword sql2019$

На клиентском сервере (имя сервера: SQL2014, SQL2016):

  1. Установка и импорт модуля PowerShell для Active Directory:
    Add-WindowsFeature RSAT-AD-PowerShell 
        Import-Module ActiveDirectory
  2. Установка созданной управляемой учётной записи gMSAsqlSvc:
    Install-ADServiceAccount -Identity gMSAsqlSvc
  3. Тестирование и проверка учётной записи:
    Test-ADServiceAccount -Identity gMSAsqlSvc

    Если всё прошло успешно, результат теста будет следующим:


  4. Откройте диспетчер конфигурации SQL Server и измените учётную запись службы. В моём случае новая учётная запись службы — myhome\gMSAsqlSvc$.

Использование MSA

Чтобы использовать учётную запись sMSA или gMSA со службой SQL Server, перейдите в «Диспетчер конфигурации SQL Server» и укажите DOMAIN\<msa name>$. Обратите внимание, что MSA требует знака $ в конце. Пароль для MSA вводить не нужно, Windows автоматически получит его из AD.

Ссылки





Комментариев нет:

Отправить комментарий