Миграция с существующей учетной записи запуска от имени на управляемые удостоверения

Внимание

служба автоматизации Azure учетные записи запуска от имени, включая классические учетные записи запуска от имени, отставили 30 сентября 2023 года и заменили управляемыми удостоверениями. Вы больше не сможете создавать или обновлять учетные записи запуска от имени через портал Azure.

Дополнительные сведения о частоте миграции и временной шкале поддержки для создания учетной записи запуска от имени и продления сертификатов см. в часто задаваемых вопросы.

Учетные записи запуска от имени в службе автоматизации Azure обеспечивают проверку подлинности для управления ресурсами, развернутыми с использованием Azure Resource Manager или классической модели развертывания. При создании учетной записи запуска от имени приложение Microsoft Entra регистрируется и создается самозаверяющий сертификат. Срок действия сертификата — один месяц. Продление сертификата каждый месяц до истечения срока действия учетной записи службы автоматизации будет работать, но добавляет дополнительные расходы.

Теперь вы можете настроить учетные записи службы автоматизации для использования управляемого удостоверения, которое является параметром по умолчанию при создании учетной записи службы автоматизации. В этом случае учетная запись службы автоматизации может проходить проверку подлинности в ресурсах Azure без необходимости обмена учетными данными. Управляемое удостоверение позволят исключить накладные расходы на продление сертификата или управление субъектом-службой.

Управляемое удостоверение может быть назначено системой или назначаемое пользователем. При создании учетной записи службы автоматизации включается управляемое удостоверение, назначаемое системой.

Необходимые компоненты

Перед переходом из учетной записи запуска от имени или классической учетной записи запуска от имени на управляемое удостоверение:

  1. Создайте управляемое удостоверение, назначаемое системой или назначаемое пользователем (или оба типа). Дополнительные сведения о различиях между ними см. в статье Типы управляемых удостоверений.

    Примечание.

    • Удостоверения, назначаемые пользователем, поддерживаются только для облачных заданий. Невозможно использовать управляемое удостоверение, назначаемое пользователем учетной записи службы автоматизации, в гибридной рабочей роли Runbook. Чтобы использовать гибридные задания, необходимо создать удостоверения, назначаемые системой.
    • Существует два способа использования управляемых удостоверений в гибридных рабочих сценариях runbook: управляемое удостоверение, назначаемое системой для учетной записи службы автоматизации, или управляемое удостоверение виртуальной машины Для виртуальной машины Azure, работающей в качестве гибридной рабочей роли Runbook.
    • Управляемое удостоверение, назначаемое пользователем, и управляемое удостоверение виртуальной машины, назначаемое системой, не будет работать в учетной записи службы автоматизации, настроенной с помощью управляемого удостоверения учетной записи службы автоматизации. Если включить управляемое удостоверение, назначаемое учетной записью службы автоматизации, можно использовать только управляемое удостоверение, назначаемое системой учетной записи службы автоматизации, а не управляемое удостоверение, назначаемое виртуальной машиной. Дополнительные сведения см. в статье Об использовании проверки подлинности Runbook с управляемыми удостоверениями.
  2. Назначьте управляемому удостоверению ту же роль для доступа к ресурсам Azure, которые соответствуют учетной записи запуска от имени. Используйте этот сценарий, чтобы включить удостоверение, назначенное системой, в учетной записи службы автоматизации и назначить тот же набор разрешений, которые присутствуют в служба автоматизации Azure учетной записи запуска от имени учетной записи службы автоматизации.

    Например, если учетная запись службы автоматизации требуется только для запуска или остановки виртуальной машины Azure, тогда разрешения, назначенные учетной записи запуска от имени или управляемому удостоверению, должны управлять только запуском или остановкой виртуальной машины. Аналогичным образом назначьте разрешения только для чтения, если runbook считывает данные из Хранилища BLOB-объектов Azure. Дополнительные сведения см. в разделе Рекомендации по обеспечению безопасности службы автоматизации Azure.

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

  4. Используйте этот скрипт, чтобы узнать, какие учетные записи службы автоматизации используют учетную запись запуска от имени. Если учетные записи служба автоматизации Azure содержат учетную запись запуска от имени, она имеет встроенную роль участника, назначенную ей по умолчанию. Скрипт можно использовать для проверки учетных записей запуска от имени в службе автоматизации Azure и определения того, назначена ли им роль по умолчанию, или определение роли было изменено.

  5. Используйте этот скрипт , чтобы узнать, используются ли все модули Runbook в учетной записи службы автоматизации с помощью учетной записи запуска от имени.

Переход с учетной записи запуска от имени службы автоматизации на управляемое удостоверение

Чтобы перейти от учетной записи запуска от имени службы автоматизации или классической учетной записи запуска от имени в управляемое удостоверение для проверки подлинности runbook, выполните следующие действия.

  1. Измените код модуля Runbook для использования управляемого удостоверения.

    Рекомендуется протестировать управляемое удостоверение, чтобы проверить, работает ли runbook должным образом, путем создания копии runbook для рабочей среды. Обновите код тестового модуля Runbook для проверки подлинности с помощью управляемого удостоверения. Этот метод гарантирует, что вы не переопределяете AzureRunAsConnection в рабочем модуле Runbook и прерываете существующий экземпляр службы автоматизации. Убедившись в надлежащем выполнении кода runbook с использованием управляемого удостоверения, обновите runbook для рабочей среды так, чтобы использовалось управляемое удостоверение.

    Для поддержки управляемого удостоверения используйте командлет Connect-AzAccount. Дополнительные сведения об этом командлете см. в статье Connect-AzAccount справочника по PowerShell.

    • Если вы используете Az модули, обновите до последней версии, выполнив действия, описанные в статье об обновлении модулей Azure PowerShell.
    • Если вы используете модули AzureRM, обновите AzureRM.Profile до последней версии и замените его с помощью командлета Add-AzureRMAccount с Connect-AzureRMAccount –Identity.

    Чтобы понять, какие изменения требуется внести в код модуля Runbook прежде чем вы сможете использовать управляемые удостоверения, используйте примеры скриптов.

  2. Если модуль Runbook работает успешно с помощью управляемых удостоверений, вы можете безопасно удалить учетную запись запуска от имени, если другой модуль Runbook не использует эту учетную запись .

Примеры сценариев

В следующих примерах скриптов Runbook извлекает ресурсы Resource Manager с помощью учетной записи запуска от имени (субъекта-службы) и управляемого удостоверения. Вы заметите разницу в коде Runbook в начале модуля Runbook, где он проходит проверку подлинности в ресурсе.

Примечание.

Включите соответствующие разрешения RBAC для системного удостоверения этой учетной записи службы автоматизации. В противном случае модуль Runbook может завершиться ошибкой.

try
{
    "Logging in to Azure..."
    Connect-AzAccount -Identity
}
catch {
    Write-Error -Message $_.Exception
    throw $_.Exception
}

#Get all Resource Manager resources from all resource groups
$ResourceGroups = Get-AzResourceGroup

foreach ($ResourceGroup in $ResourceGroups)
{    
    Write-Output ("Showing resources in resource group " + $ResourceGroup.ResourceGroupName)
    $Resources = Get-AzResource -ResourceGroupName $ResourceGroup.ResourceGroupName
    foreach ($Resource in $Resources)
    {
        Write-Output ($Resource.Name + " of type " +  $Resource.ResourceType)
    }
    Write-Output ("")
}

Просмотр идентификатора клиента назначаемого пользователем удостоверения

  1. В учетной записи службы автоматизации в разделе "Параметры учетной записи" выберите "Удостоверение".

  2. На вкладке "Назначаемое пользователем" выберите назначенное пользователем удостоверение.

    Снимок экрана: путь навигации для просмотра идентификатора клиента.

  3. Перейдите к обзору >Essentials, чтобы просмотреть идентификатор клиента.

    Снимок экрана: просмотр идентификатора клиента.

графические модули runbook;

Проверьте, используется ли учетная запись запуска от имени в графических модулях Runbook

  1. Проверьте каждую из действий в модуле Runbook, чтобы узнать, использует ли она учетную запись запуска от имени при вызове любых командлетов входа или псевдонимов, например Add-AzRmAccount/Connect-AzRmAccount/Add-AzAccount/Connect-AzAccount.

    Снимок экрана, на котором показано, использует ли графический модуль Runbook учетную запись запуска от имени.

  2. Проверьте параметры, используемые командлетом.

    Снимок экрана: проверка параметров, используемых командлетом.

    Для использования с учетной записью запуска от имени командлет использует ServicePrinicipalCertificate параметр, в который задано значение ApplicationId. CertificateThumbprint будет из RunAsAccountConnection.

    Снимок экрана: наборы параметров.

Изменение графического модуля Runbook для использования управляемого удостоверения

Необходимо проверить управляемое удостоверение, чтобы убедиться, что графический модуль Runbook работает должным образом. Создайте копию рабочего модуля Runbook для использования управляемого удостоверения, а затем обновите тестовый графический код Runbook, чтобы пройти проверку подлинности с помощью управляемого удостоверения. Эту функцию можно добавить в графический модуль Runbook, добавив Connect-AzAccount командлет.

Ниже приведен пример, показывающий, как графический модуль Runbook, использующий учетную запись запуска от имени, может использовать управляемые удостоверения:

  1. Войдите на портал Azure.

  2. Откройте учетную запись службы автоматизации и выберите модули Runbook службы автоматизации процессов>.

  3. Выберите модуль Runbook. Например, выберите runbook запуска виртуальных машин Azure версии 2 из списка, а затем выберите "Изменить " или " Обзор коллекции " и выберите "Запустить виртуальные машины Azure версии 2".

    Снимок экрана: редактирование графического модуля Runbook.

  4. Замените подключение запуска от имени, которое использует AzureRunAsConnection и ресурс подключения, который внутренне использует командлет PowerShell Get-AutomationConnection с помощью командлета Connect-AzAccount .

  5. Выберите "Удалить", чтобы удалить Get Run As Connection действия и Connect to Azure действия.

    Снимок экрана: подключение к действиям Azure.

  6. На левой панели в разделе RUNBOOK CONTROL выберите "Код " и выберите " Добавить на холст".

    Снимок экрана: выбор кода и добавление его на холст.

  7. Измените действие кода, назначьте любое соответствующее имя метки и выберите логику действия "Автор".

    Снимок экрана: изменение действия кода.

  8. На странице редактора кода введите следующий код PowerShell и нажмите кнопку "ОК".

    try 
    { 
       Write-Output ("Logging in to Azure...") 
       Connect-AzAccount -Identity 
    } 
    catch { 
       Write-Error -Message $_.Exception 
       throw $_.Exception 
    } 
    
  9. Подключите новое действие к действиям, подключенным к Azure ранее, и сохраните модуль Runbook.

    Снимок экрана: подключение нового действия к действиям.

Например, в runbook Запуск виртуальных машин Azure версии 2 в коллекции Runbook необходимо заменить Get Run As Connection действия и Connect to Azure действия кодом, использующим Connect-AzAccount командлет, как описано выше. Дополнительные сведения см. в примере имени runbook AzureAutomationTutorialWithIdentityGraphical , созданного с учетной записью службы автоматизации.

Примечание.

Модули AzureRM PowerShell удаляются с 29 февраля 2024 г. Если вы используете модули AzureRM PowerShell в графических модулях Runbook, их необходимо обновить, чтобы использовать модули Az PowerShell. Подробнее.

Следующие шаги