Поделиться через


Подключение к Azure с помощью подключения службы Azure Resource Manager

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

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

У вас есть несколько вариантов проверки подлинности для подключения к Azure с помощью подключений к службе Azure Resource Manager:

  • Субъект-служба с федерацией удостоверений рабочей нагрузки
  • Субъект-служба с секретом
  • Управляемое удостоверение, назначаемое системой
  • Общедоступный профиль

Подключение службы использует субъект-службу для проверки подлинности с помощью ресурсов Azure.

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

Федерация удостоверений рабочей нагрузки использует OpenID Connect (OIDC) для проверки подлинности с помощью защищенных ресурсов Microsoft Entra без использования секретов. Вы можете автоматически создать федерацию удостоверений рабочей нагрузки для проверки подлинности или вручную создать ее.

Мы рекомендуем использовать этот подход, если к вашему сценарию применимы все следующие пункты:

  • У вас роль владельца или участника в подписке Azure.
  • Вы не подключаетесь к Azure Stack или средам Azure для государственных организаций США.
  • Все задачи расширения Marketplace, которые вы используете, обновляются для поддержки федерации удостоверений рабочей нагрузки.

Создание подключения службы с федерацией удостоверений рабочей нагрузки (автоматически)

С помощью этого выбора Azure DevOps автоматически запрашивает подписку, группу управления или Машинное обучение рабочую область, к которой требуется подключиться, и создает федерацию удостоверений рабочей нагрузки для проверки подлинности.

  1. В проекте Azure DevOps перейдите к подключениям> службы параметров проекта.

    Дополнительные сведения см. в разделе "Открыть параметры проекта".

  2. Выберите новое подключение к службе, а затем выберите Azure Resource Manager и Далее.

    Снимок экрана: выбор выбора Azure Resource Manager.

  3. Выберите федерацию удостоверений рабочей нагрузки (автоматически) и Далее.

    Снимок экрана: выбор метода проверки подлинности федерации удостоверений рабочей нагрузки (автоматически).

  4. Выберите уровень области. Выберите подписку, группу управления или Машинное обучение рабочую область. Группы управления — это контейнеры, которые помогают управлять доступом, политикой и соответствием в нескольких подписках. Рабочая область Машинное обучение — это место для создания артефактов машинного обучения.

    • В области подписки введите следующие параметры:

      Параметр Описание
      Подписка Обязательный. Выберите подписку Azure.
      Группа ресурсов Обязательный. Введите имя подписки Azure.
    • В области группы управления выберите группу управления Azure.

    • В области Машинное обучение рабочей области введите следующие параметры:

      Параметр Описание
      Подписка Обязательный. Выберите подписку Azure.
      Группа ресурсов Обязательный. Выберите группу ресурсов, содержащую рабочую область.
      Рабочая область Машинное обучение Обязательный. Выберите рабочую область Машинное обучение Azure.
  5. Введите имя подключения службы.

  6. При необходимости введите описание подключения к службе.

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

  8. Выберите Сохранить.

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

Для развертывания в определенном ресурсе Azure задача нуждается в дополнительных данных об этом ресурсе. Перейдите к ресурсу в портал Azure, а затем скопируйте данные в код. Например, чтобы развернуть веб-приложение, скопируйте имя приложения службы приложение Azure и вставьте его в код в качестве значенияWebAppName.

Создание подключения службы с помощью федерации удостоверений рабочей нагрузки (вручную)

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

  1. В проекте Azure DevOps перейдите к подключениям> службы параметров проекта.

    Дополнительные сведения см. в разделе "Открыть параметры проекта".

  2. Выберите новое подключение к службе, а затем выберите Azure Resource Manager и Далее.

    Снимок экрана: выбор метода проверки подлинности федерации удостоверений рабочей нагрузки (вручную).

  3. Выберите федерацию удостоверений рабочей нагрузки (вручную) и Далее.

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

  4. На шаге 1. Основные сведения:

    1. Введите имя подключения службы
    2. При необходимости введите Описание.
    3. Выберите "Предоставить разрешение на доступ ко всем конвейерам ", чтобы разрешить всем конвейерам использовать это подключение к службе. Если этот параметр не выбран, необходимо вручную предоставить доступ к каждому конвейеру, использующего это подключение к службе.
    4. Выберите Далее.
  5. На шаге 2. Сведения о субъекте-службе:

    Шаг 2. Сведения о субъекте-службе содержат следующие параметры. Можно ввести или выбрать следующие параметры:

    Параметр Описание
    Издатель Обязательный. DevOps автоматически создает URL-адрес издателя автоматически.
    Идентификатор субъекта Обязательный. DevOps автоматически создает идентификатор субъекта.
    Среда Обязательный. Выберите облачную среду для подключения. Если выбрать Azure Stack, введите URL-адрес среды, который похож https://management.local.azurestack.externalна .
    1. Выберите уровень области. Выберите подписку, группу управления или Машинное обучение рабочую область. Группы управления — это контейнеры, которые помогают управлять доступом, политикой и соответствием в нескольких подписках. Рабочая область Машинное обучение — это место для создания артефактов машинного обучения.

      • В области подписки введите следующие параметры:

        Параметр Описание
        Идентификатор подписки Обязательный. Введите идентификатор подписки Azure.
        Имя подписки Обязательный. Введите имя подписки Azure.
      • В области группы управления введите следующие параметры:

        Параметр Описание
        Идентификатор группы управления Обязательный. Введите идентификатор группы управления Azure.
        Имя группы управления Обязательный. Введите имя группы управления Azure.
      • В области Машинное обучение рабочей области введите следующие параметры:

        Параметр Описание
        Идентификатор подписки Обязательный. Введите идентификатор подписки Azure.
        Имя подписки Обязательный. Введите имя подписки Azure.
        Группа ресурсов Обязательный. Выберите группу ресурсов, содержащую рабочую область.
        Имя рабочей области машинного обучения Обязательный. Введите имя существующей рабочей области Машинное обучение Azure.
        Расположение рабочей области машинного обучения Обязательный. Введите расположение существующей рабочей области Машинное обучение Azure.
    2. В разделе "Проверка подлинности" введите или выберите следующие параметры:

      Параметр Описание
      Идентификатор субъекта-службы Обязательный. Введите идентификатор субъекта-службы.
      Идентификатор клиента Обязательный. Введите идентификатор клиента.
    3. В разделе "Сведения" введите следующие параметры:

      Параметр Описание
      Имя подключения Обязательный. Имя, которое вы используете для ссылки на это подключение к службе в свойствах задачи. Не имя подписки Azure.
      Description Необязательно. Введите описание подключения службы.
    4. В разделе "Безопасность" выберите "Предоставить разрешение на доступ ко всем конвейерам", чтобы разрешить всем конвейерам использовать это подключение к службе. Если этот параметр не выбран, необходимо вручную предоставить доступ к каждому конвейеру, использующего это подключение к службе.

    5. Выберите " Проверить и сохранить ", чтобы проверить и создать подключение к службе.

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

Для развертывания в определенном ресурсе Azure задача нуждается в дополнительных данных об этом ресурсе. Перейдите к ресурсу в портал Azure, а затем скопируйте данные в код. Например, чтобы развернуть веб-приложение, скопируйте имя приложения службы приложение Azure и вставьте его в код в качестве значенияWebAppName.

Преобразование существующего подключения к службе Azure Resource Manager для использования федерации удостоверений рабочей нагрузки

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

  • Azure DevOps изначально создало подключение к службе. Если вы вручную создадите подключение к службе, вы не сможете преобразовать подключение службы с помощью средства преобразования подключений службы, так как Azure DevOps не имеет разрешений на изменение собственных учетных данных.
  • Только один проект использует подключение службы. Не удается преобразовать подключения между управление проектом.

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

  1. В проекте Azure DevOps перейдите к подключениям> службы параметров проекта.

    Дополнительные сведения см. в разделе "Открыть параметры проекта".

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

  3. Выберите Преобразовать.

    Снимок экрана: выбор преобразования федеративных учетных данных.

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

    Снимок экрана: параметр преобразования федеративных учетных данных при наличии сертификата с истекшим сроком действия.

  4. Нажмите кнопку "Преобразовать ", чтобы подтвердить, что вы хотите создать новое подключение к службе.

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

Преобразование нескольких подключений службы Azure Resource Manager с помощью скрипта

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

В этом примере скрипта PowerShell требуются два параметра: организация Azure DevOps (пример https://dev.azure.com/fabrikam-tailspin: ) и проект Azure DevOps (например: Space game web agent). Затем скрипт извлекает связанные подключения к службе для проекта и организации Azure DevOps.

При преобразовании подключений служб для использования федерации удостоверений рабочей нагрузки вам будет предложено подтвердить обновление для каждого подключения, которое еще не используется. После подтверждения скрипт обновляет эти подключения к службе через REST API Azure DevOps для использования федерации удостоверений рабочей нагрузки.

Для выполнения сценария требуется PowerShell 7.3 или более поздней версии и Azure CLI . Сохраните скрипт в .ps1 файл и запустите его с помощью PowerShell 7.

#!/usr/bin/env pwsh
<# 
.SYNOPSIS 
    Convert multiple Azure Resource Manager service connection(s) to use Workload identity federation

.LINK
    https://aka.ms/azdo-rm-workload-identity-conversion

.EXAMPLE
    ./convert_azurerm_service_connection_to_oidc_simple.ps1 -Project <project> -OrganizationUrl https://dev.azure.com/<organization>
#> 

#Requires -Version 7.3

param ( 
    [parameter(Mandatory=$true,HelpMessage="Name of the Azure DevOps Project")]
    [string]
    [ValidateNotNullOrEmpty()]
    $Project,

    [parameter(Mandatory=$true,HelpMessage="Url of the Azure DevOps Organization")]
    [uri]
    [ValidateNotNullOrEmpty()]
    $OrganizationUrl
) 
$apiVersion = "7.1"
$PSNativeCommandArgumentPassing = "Standard" 

#-----------------------------------------------------------
# Log in to Azure
$azdoResource = "499b84ac-1321-427f-aa17-267ca6975798" # application id of Azure DevOps 
az login --allow-no-subscriptions --scope ${azdoResource}/.default
$OrganizationUrl = $OrganizationUrl.ToString().Trim('/')

#-----------------------------------------------------------
# Retrieve the service connection
$getApiUrl = "${OrganizationUrl}/${Project}/_apis/serviceendpoint/endpoints?authSchemes=ServicePrincipal&type=azurerm&includeFailed=false&includeDetails=true&api-version=${apiVersion}"
az rest --resource $azdoResource -u "${getApiUrl} " -m GET --query "sort_by(value[?authorization.scheme=='ServicePrincipal' && data.creationMode=='Automatic' && !(isShared && serviceEndpointProjectReferences[0].projectReference.name!='${Project}')],&name)" -o json `
        | Tee-Object -Variable rawResponse | ConvertFrom-Json | Tee-Object -Variable serviceEndpoints | Format-List | Out-String | Write-Debug
if (!$serviceEndpoints -or ($serviceEndpoints.count-eq 0)) {
    Write-Warning "No convertible service connections found"
    exit 1
}

foreach ($serviceEndpoint in $serviceEndpoints) {
    # Prompt user to confirm conversion
    $choices = @(
        [System.Management.Automation.Host.ChoiceDescription]::new("&Convert", "Converting service connection '$($serviceEndpoint.name)'...")
        [System.Management.Automation.Host.ChoiceDescription]::new("&Skip", "Skipping service connection '$($serviceEndpoint.name)'...")
        [System.Management.Automation.Host.ChoiceDescription]::new("&Exit", "Exit script")
    )
    $prompt = $serviceEndpoint.isShared ? "Convert shared service connection '$($serviceEndpoint.name)'?" : "Convert service connection '$($serviceEndpoint.name)'?"
    $decision = $Host.UI.PromptForChoice([string]::Empty, $prompt, $choices, $serviceEndpoint.isShared ? 1 : 0)

    if ($decision -eq 0) {

        Write-Host "$($choices[$decision].HelpMessage)"
    } elseif ($decision -eq 1) {
        Write-Host "$($PSStyle.Formatting.Warning)$($choices[$decision].HelpMessage)$($PSStyle.Reset)"
        continue 
    } elseif ($decision -ge 2) {
        Write-Host "$($PSStyle.Formatting.Warning)$($choices[$decision].HelpMessage)$($PSStyle.Reset)"
        exit 
    }

    # Prepare request body
    $serviceEndpoint.authorization.scheme = "WorkloadIdentityFederation"
    $serviceEndpoint.data.PSObject.Properties.Remove('revertSchemeDeadline')
    $serviceEndpoint | ConvertTo-Json -Depth 4 | Write-Debug
    $serviceEndpoint | ConvertTo-Json -Depth 4 -Compress | Set-Variable serviceEndpointRequest
    $putApiUrl = "${OrganizationUrl}/${Project}/_apis/serviceendpoint/endpoints/$($serviceEndpoint.id)?operation=ConvertAuthenticationScheme&api-version=${apiVersion}"
    # Convert service connection
    az rest -u "${putApiUrl} " -m PUT -b $serviceEndpointRequest --headers content-type=application/json --resource $azdoResource -o json `
            | ConvertFrom-Json | Set-Variable updatedServiceEndpoint

    $updatedServiceEndpoint | ConvertTo-Json -Depth 4 | Write-Debug
    if (!$updatedServiceEndpoint) {
        Write-Debug "Empty response"
        Write-Error "Failed to convert service connection '$($serviceEndpoint.name)'"
        exit 1
    }
    Write-Host "Successfully converted service connection '$($serviceEndpoint.name)'"
}

Восстановление существующего подключения к службе Azure Resource Manager, использующего секрет субъекта-службы.

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

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

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

  1. В проекте Azure DevOps перейдите к подключениям к службе Конвейеров>.

  2. Выберите существующее подключение к службе, чтобы вернуться.

  3. Выберите "Вернуть преобразование" в исходную схему.

    Снимок экрана: выбор возврата федеративных учетных данных.

  4. Нажмите кнопку "Вернуться ", чтобы подтвердить свой выбор.

Создание подключения к службе Azure Resource Manager, использующего секрет субъекта-службы.

Подключение службы можно настроить для проверки подлинности с помощью ресурса Azure с помощью секрета субъекта-службы. Этот подход полезен, если необходимо дополнительно ограничить разрешения для ресурсов Azure, к которым пользователи обращаются через подключение к службе.

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

Мы рекомендуем использовать этот подход, если к вашему сценарию применимы все следующие пункты:

  • Вы вошли в систему в качестве владельца организации Azure Pipelines и подписки Azure.
  • Вам не нужно дополнительно ограничить разрешения для ресурсов Azure, к которым пользователи получают доступ через подключение к службе.
  • Вы не подключаетесь к Azure Stack или к облаку Azure для государственных организаций.
  • Вы не подключаетесь из Azure DevOps Server 2019 или более ранних версий Team Foundation Server.

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

  1. В проекте Azure DevOps перейдите к подключениям> службы параметров проекта.

    Дополнительные сведения см. в разделе "Открыть параметры проекта".

  2. Выберите новое подключение к службе, а затем выберите Azure Resource Manager и Далее.

    Снимок экрана: выбор Azure Resource Manager.

  3. Выберите субъект-службу (автоматически) и Далее.

    Снимок экрана: выбор метода проверки подлинности субъекта-службы (автоматического).

  4. Выберите уровень области. Выберите подписку, группу управления или Машинное обучение рабочую область. Группы управления — это контейнеры, которые помогают управлять доступом, политикой и соответствием в нескольких подписках. Рабочая область Машинное обучение — это место для создания артефактов машинного обучения.

    • В области подписки введите следующие параметры:

      Параметр Описание
      Идентификатор подписки Обязательный. Введите идентификатор подписки Azure.
      Имя подписки Обязательный. Введите имя подписки Azure.
    • В области группы управления введите следующие параметры, выберите группу управления Azure.

    • В области Машинное обучение рабочей области введите следующие параметры:

      Параметр Описание
      Идентификатор подписки Обязательный. Введите идентификатор подписки Azure.
      Имя подписки Обязательный. Введите имя подписки Azure.
      Группа ресурсов Обязательный. Выберите группу ресурсов, содержащую рабочую область.
      Имя рабочей области машинного обучения Обязательный. Введите имя существующей рабочей области Машинное обучение Azure.
      Расположение рабочей области машинного обучения Обязательный. Введите расположение существующей рабочей области Машинное обучение Azure.
  5. Введите имя подключения службы.

  6. При необходимости введите описание подключения к службе.

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

  8. Выберите Сохранить.

После создания нового подключения к службе:

  • Если вы используете классический редактор, выберите имя подключения, назначенное в параметре подписки Azure конвейера.
  • При использовании YAML-файла скопируйте имя подключения в код в качестве значения azureSubscription.

Чтобы развернуть в определенном ресурсе Azure, добавьте дополнительные сведения о ресурсе в задачу:

  • Если вы используете классический редактор, выберите данные для добавления в задачу. Например, выберите имя Служба приложений.
  • Если вы используете YAML-файл, перейдите к ресурсу в портал Azure. Скопируйте необходимые данные и вставьте их в код задачи. Например, чтобы развернуть веб-приложение, скопируйте имя приложения Служба приложений и вставьте его в качестве значения в WebAppName yamL задачи.

Примечание.

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

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

Рекомендуется использовать федерацию удостоверений рабочей нагрузки вместо создания секрета. Если вы используете федерацию удостоверений рабочей нагрузки, вам не нужно менять секреты, а регистрация приложений поддерживает ее предназначенную цель. Чтобы начать использовать федерацию удостоверений рабочей нагрузки, перейдите на страницу сведений о подключении к службе и нажмите кнопку "Преобразовать". Подключение службы преобразуется в использование федерации удостоверений рабочей нагрузки вместо секрета. Дополнительные сведения см. в разделе "Преобразование существующего подключения к службе Azure Resource Manager" для использования федерации удостоверений рабочей нагрузки.

Дополнительные сведения см. в статье "Устранение неполадок подключения службы Azure Resource Manager".

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

Создание подключения службы Azure Resource Manager, использующего существующий субъект-службу

Если вы хотите использовать предопределенный набор разрешений доступа, и у вас еще нет субъекта-службы, определенного для этой цели, выполните одно из следующих руководств, чтобы создать новый субъект-службу:

Чтобы создать подключение службы, использующее существующий субъект-службу, выполните следующие действия.

  1. В проекте Azure DevOps перейдите к подключениям> службы параметров проекта.

    Дополнительные сведения см. в разделе "Открыть параметры проекта".

  2. Выберите новое подключение к службе, а затем выберите Azure Resource Manager и Далее.

    Снимок экрана: выбор Azure Resource Manager.

  3. Выберите субъект-службу (вручную) и Далее.

    Снимок экрана: выбор метода проверки подлинности субъекта-службы (вручную).

  4. В диалоговом окне "Новое подключение службы Azure" выберите среду. Если выбрать Azure Stack, введите URL-адрес среды, который похож https://management.local.azurestack.externalна .

  5. Выберите уровень области. Выберите подписку, группу управления или Машинное обучение рабочую область. Группы управления — это контейнеры, которые помогают управлять доступом, политикой и соответствием в нескольких подписках. Рабочая область Машинное обучение — это место для создания артефактов машинного обучения.

    • В области подписки введите следующие параметры:

      Параметр Описание
      Идентификатор подписки Обязательный. Введите идентификатор подписки Azure.
      Имя подписки Обязательный. Введите имя подписки Azure.
    • В области группы управления введите следующие параметры:

      Параметр Описание
      Идентификатор группы управления Обязательный. Введите идентификатор группы управления Azure.
      Имя группы управления Обязательный. Введите имя группы управления Azure.
    • В области Машинное обучение рабочей области введите следующие параметры:

      Параметр Описание
      Идентификатор подписки Обязательный. Введите идентификатор подписки Azure.
      Имя подписки Обязательный. Введите имя подписки Azure.
      Группа ресурсов Обязательный. Выберите группу ресурсов, содержащую рабочую область.
      Имя рабочей области машинного обучения Обязательный. Введите имя существующей рабочей области Машинное обучение Azure.
      Расположение рабочей области машинного обучения Обязательный. Введите расположение существующей рабочей области Машинное обучение Azure.
  6. В разделе "Проверка подлинности" введите или выберите следующие параметры:

    Параметр Описание
    Идентификатор субъекта-службы Обязательный. Введите идентификатор субъекта-службы.
    Учетные данные Выберите ключ субъекта-службы или сертификат. Если выбран ключ субъекта-службы, введите ключ (пароль). Если выбран сертификат, введите сертификат.
    Идентификатор клиента Обязательный. Введите идентификатор клиента.
    Проверка Выберите, чтобы проверить введенные параметры.
  7. В разделе "Сведения" введите следующие параметры:

    Параметр Описание
    Имя подключения Обязательный. Имя, которое вы используете для ссылки на это подключение к службе в свойствах задачи. Не имя подписки Azure.
    Description Необязательно. Введите описание подключения службы.
    Безопасность Выберите "Предоставить разрешение на доступ ко всем конвейерам ", чтобы разрешить всем конвейерам использовать это подключение к службе. Если этот параметр не выбран, необходимо вручную предоставить доступ к каждому конвейеру, использующего это подключение к службе.
  8. Выберите " Проверить и сохранить ", чтобы проверить и создать подключение к службе.

После создания нового подключения к службе:

  • Если вы используете подключение к службе в пользовательском интерфейсе, выберите имя подключения, назначенное в параметре подписки Azure конвейера.
  • Если вы используете подключение к службе в YAML-файле, скопируйте имя подключения и вставьте его в код в качестве значения azureSubscription.

При необходимости измените субъект-службу, чтобы предоставить соответствующие разрешения.

Дополнительные сведения об аутентификации с помощью субъекта-службы см. в статье "Использование управления доступом на основе ролей для управления доступом к ресурсам подписки Azure" или записи блога по автоматизации развертывания группы ресурсов Azure с помощью субъекта-службы в Visual Studio.

Дополнительные сведения см. в разделе "Устранение неполадок с подключениями к службе Azure Resource Manager".

Создание подключения службы Azure Resource Manager к виртуальной машине с управляемым удостоверением

Примечание.

Чтобы использовать управляемое удостоверение для проверки подлинности, необходимо использовать локальный агент на виртуальной машине Azure.

Вы можете настроить локальные агенты на виртуальных машинах Azure для использования управляемого удостоверения Azure в идентификаторе Microsoft Entra. В этом сценарии вы используете управляемое удостоверение, назначаемое системой (субъект-служба), для предоставления агентам доступа к любому ресурсу Azure, поддерживающему идентификатор Microsoft Entra ID, например экземпляру Azure Key Vault.

  1. В проекте Azure DevOps перейдите к подключениям> службы параметров проекта.

    Дополнительные сведения см. в разделе "Открыть параметры проекта".

  2. Выберите новое подключение к службе, а затем выберите Azure Resource Manager и Далее.

    Снимок экрана: выбор типа подключения службы.

  3. Выберите управляемое удостоверение для метода проверки подлинности .

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

  4. Для среды выберите имя среды (параметры облака Azure, Azure Stack или облака для государственных организаций).

  5. Выберите уровень области. Выберите подписку, группу управления или Машинное обучение рабочую область. Группы управления — это контейнеры, которые помогают управлять доступом, политикой и соответствием в нескольких подписках. Рабочая область Машинное обучение — это место для создания артефактов машинного обучения.

    • В области подписки введите следующие параметры:

      Параметр Описание
      Идентификатор подписки Обязательный. Введите идентификатор подписки Azure.
      Имя подписки Обязательный. Введите имя подписки Azure.
    • В области группы управления введите следующие параметры:

      Параметр Описание
      Идентификатор группы управления Обязательный. Введите идентификатор группы управления Azure.
      Имя группы управления Обязательный. Введите имя группы управления Azure.
    • В области Машинное обучение рабочей области введите следующие параметры:

      Параметр Описание
      Идентификатор подписки Обязательный. Введите идентификатор подписки Azure.
      Имя подписки Обязательный. Введите имя подписки Azure.
      Группа ресурсов Обязательный. Выберите группу ресурсов, содержащую рабочую область.
      Имя рабочей области машинного обучения Обязательный. Введите имя существующей рабочей области Машинное обучение Azure.
      Расположение рабочей области машинного обучения Обязательный. Введите расположение существующей рабочей области Машинное обучение Azure.
  6. Введите идентификатор клиента.

  7. Введите имя подключения службы.

  8. При необходимости введите описание подключения к службе.

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

  10. Выберите Сохранить.

  11. После создания нового подключения к службе:

    • Если вы используете подключение к службе в пользовательском интерфейсе, выберите имя подключения, назначенное в параметре подписки Azure конвейера.
    • Если вы используете подключение к службе в yamL-файле, скопируйте имя подключения в код в качестве значения azureSubscription.
  12. Убедитесь, что виртуальная машина (агент) имеет соответствующие разрешения.

    Например, если коду нужно вызвать Azure Resource Manager, назначьте виртуальную машину соответствующей роли с помощью управления доступом на основе ролей (RBAC) в идентификаторе Microsoft Entra ID.

    Дополнительные сведения см. в статье "Как использовать управляемые удостоверения для ресурсов Azure" и управление доступом на основе ролей для управления доступом к ресурсам подписки Azure.

Дополнительные сведения об этом процессе см. в статье "Устранение неполадок с подключениями к службе Azure Resource Manager".

Создание подключения к службе с помощью профиля публикации

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

  1. В проекте Azure DevOps перейдите к подключениям> службы параметров проекта.

    Дополнительные сведения см. в разделе "Открыть параметры проекта".

  2. Выберите новое подключение к службе, а затем выберите Azure Resource Manager и Далее.

    Снимок экрана: выбор Azure Resource Manager.

  3. Выберите "Опубликовать профиль " для метода проверки подлинности и нажмите кнопку "Далее".

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

  4. Задайте следующие параметры:

    Параметр Описание
    Подписка Обязательный. Выберите существующую подписку Azure. Если подписки и экземпляры Azure не отображаются, см . статью "Устранение неполадок с подключениями к службе Azure Resource Manager".
    WebApp Обязательный. Введите имя приложения службы приложение Azure.
    Имя подключения службы Обязательный. Имя, которое вы используете для ссылки на это подключение к службе в свойствах задачи. Не имя подписки Azure.
    Description Необязательно. Описание подключения службы.
  5. Выберите "Предоставить разрешение на доступ ко всем конвейерам ", чтобы разрешить всем конвейерам использовать это подключение к службе. Если этот параметр не выбран, необходимо вручную предоставить доступ к каждому конвейеру, использующего это подключение к службе.

  6. Выберите Сохранить.

После создания нового подключения к службе:

  • Если вы используете подключение к службе в пользовательском интерфейсе, выберите имя подключения, назначенное в параметре подписки Azure конвейера.
  • Если вы используете подключение к службе в YAML-файле, скопируйте имя подключения и вставьте его в код в качестве значения azureSubscription.

Подключение к Azure для государственных организаций Cloud

Сведения о подключении к Azure для государственных организаций Cloud см. в статье Connect из Azure Pipelines (Azure для государственных организаций Cloud).

Подключение к Azure Stack

Сведения о подключении к Azure Stack см. в следующих статьях:

Справка и поддержка