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

Важно!

служба автоматизации 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. На вкладке "Назначаемое пользователем" выберите назначенное пользователем удостоверение.

    Screenshot that shows the navigation path to view client ID.

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

    Screenshot that shows how to view a client ID.

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

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

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

    Screenshot that illustrates checking if a graphical runbook uses a Run As account.

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

    Screenshot that shows examining the parameters used by a cmdlet.

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

    Screenshot that shows parameter sets.

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

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

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

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

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

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

    Screenshot of editing a graphical runbook.

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

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

    Screenshot to connect to the Azure activities.

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

    Screenshot to select code and add it to the canvas.

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

    Screenshot to edit code activity.

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

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

    Screenshot to connect new activity to activities.

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

Примечание.

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

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