Compartilhar via


Conecte-se ao Azure usando uma conexão de serviço do Azure Resource Manager

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Você pode usar uma conexão de serviço do Gerenciador de Recursos do Azure para se conectar a recursos do Azure, como o Cofre de Chaves do Azure. Caso use uma conexão de serviço do Resource Manager, você poderá usar um pipeline para implantar em um recurso do Azure, como um aplicativo do Serviço de Aplicativo do Azure, sem autenticar toda vez.

Você tem várias opções de autenticação para se conectar ao Azure usando conexões de serviço do Gerenciador de Recursos do Azure:

  • Entidade de serviço com federação de identidade de carga de trabalho
  • Entidade de serviço com segredo
  • Identidade gerenciada atribuída pelo sistema
  • Perfil público

A conexão de serviço usa uma entidade de serviço para autenticar com recursos do Azure.

Criar uma conexão de serviço do Azure Resource Manager que use a federação de identidade de workload

A Federação de identidade de Workload usa o OpenID Connect (OIDC) para autenticar com recursos protegidos do Microsoft Entra sem usar segredos. Você pode criar automaticamente a federação de identidade de carga de trabalho para autenticação ou criá-la manualmente.

Recomendamos usar essa abordagem se todos os itens a seguir forem verdadeiros para seu cenário:

  • Você tem a função Proprietário para sua assinatura do Azure.
  • Você não está se conectando aos ambientes do Azure Stack ou do Azure US Government .
  • Todas as tarefas de extensões do Marketplace que você usa foram atualizadas para oferecer suporte à federação de identidade de carga de trabalho.

Criar uma conexão de serviço com federação de identidade de carga de trabalho (automática)

Com essa seleção, o Azure DevOps consulta automaticamente a assinatura, o grupo de gerenciamento ou o espaço de trabalho do Machine Learning ao qual você deseja se conectar e cria uma federação de identidade de carga de trabalho para autenticação.

  1. No projeto do Azure DevOps, acesse Configurações do projeto>Conexões de serviço.

    Para saber mais, confira Abra as configurações do projeto.

  2. Selecione Nova conexão de serviço e, em seguida, selecione Gerenciador de Recursos do Azure e Avançar.

    Captura de tela que mostra a seleção do Gerenciador de Recursos do Azure.

  3. Selecione Federação de identidades de carga de trabalho (automática) e Avançar.

    Captura de tela da seleção do método de autenticação de federação de identidade de carga de trabalho (automática).

  4. Selecione um nível de escopo. Selecione Assinatura, Grupo de Gerenciamento ou Espaço de Trabalho de Aprendizado de Máquina. Grupos de gerenciamento são contêineres que ajudarão você a gerenciar o acesso, a política e a conformidade entre várias assinaturas. Um espaço de trabalho de aprendizado de máquina é o local para criar artefatos de aprendizado de máquina.

    • Para o escopo Assinatura, insira os seguintes parâmetros:

      Parâmetro Descrição
      Assinatura Obrigatória. Selecione a Assinatura do Azure.
      Grupo de recursos Obrigatória. Insira o nome da assinatura do Azure.
    • Para o escopo do Grupo de Gerenciamento, selecione o grupo de gerenciamento do Azure.

    • Para o escopo do Espaço de Trabalho de Aprendizado de Máquina , insira os seguintes parâmetros:

      Parâmetro Descrição
      Assinatura Obrigatória. Selecione a Assinatura do Azure.
      Grupo de Recursos Obrigatória. Selecione o grupo de recursos que contém o espaço de trabalho.
      Espaço de trabalho do Machine Learning Obrigatória. Selecione o espaço de trabalho do Aprendizado de Máquina do Azure.
  5. Insira o nome de uma conexão de serviço.

  6. Opcionalmente, insira uma descrição para a conexão de serviço.

  7. Selecione Conceder permissão de acesso a todos os pipelines para permitir que todos os pipelines usem essa conexão de serviço. Se você não selecionar essa opção, deverá conceder manualmente acesso a cada pipeline que usa essa conexão de serviço.

  8. Selecione Salvar.

Após criar a nova conexão de serviço, copie o nome da conexão e cole-o no seu código como o valor para azureSubscription.

Para implantar em um recurso específico do Azure, a tarefa precisa de mais dados sobre esse recurso. Vá para o recurso no portal do Azure e copie os dados em seu código. Por exemplo, para implantar um aplicativo Web, copie o nome do aplicativo do Serviço de Aplicativo do Azure e cole-o no seu código como o valor para WebAppName.

Criar conexão de serviço com federação de identidade de carga de trabalho (manual)

Use essa opção para criar manualmente uma conexão de serviço que use uma federação de identidade de carga de trabalho existente para autenticação.

  1. No projeto do Azure DevOps, acesse Configurações do projeto>Conexões de serviço.

    Para saber mais, confira Abra as configurações do projeto.

  2. Selecione Nova conexão de serviço e, em seguida, selecione Gerenciador de Recursos do Azure e Avançar.

    Captura de tela da seleção do método de autenticação de federação de identidade de carga de trabalho (manual).

  3. Selecione Federação de identidades de carga de trabalho (manual) e Avançar.

    Captura de tela que mostra a seleção de um tipo de conexão de serviço de identidade de carga de trabalho.

  4. Na Etapa 1: Noções básicas:

    1. Insira um nome de conexão de serviço
    2. Se quiser, insira uma Descrição.
    3. Selecione Conceder permissão de acesso a todos os pipelines para permitir que todos os pipelines usem essa conexão de serviço. Se você não selecionar essa opção, deverá conceder manualmente acesso a cada pipeline que usa essa conexão de serviço.
    4. Selecione Avançar.
  5. Na Etapa 2: Detalhes da entidade de serviço:

    Etapa 2: Detalhes da entidade de serviço contém os seguintes parâmetros. Você pode inserir ou selecionar os seguintes parâmetros:

    Parâmetro Descrição
    emissor Obrigatória. O DevOps cria automaticamente a URL do emissor é criada automaticamente
    Identificador de assunto Obrigatória. O DevOps cria automaticamente o identificador de assunto.
    Ambiente Obrigatória. Escolha um ambiente de nuvem ao qual se conectar. Se você selecionar Azure Stack, insira a URL do ambiente, que é algo como https://management.local.azurestack.external.
    1. Selecione o Nível de escopo. Selecione Assinatura, Grupo de Gerenciamento ou Espaço de Trabalho de Aprendizado de Máquina. Grupos de gerenciamento são contêineres que ajudarão você a gerenciar o acesso, a política e a conformidade entre várias assinaturas. Um espaço de trabalho de aprendizado de máquina é o local para criar artefatos de aprendizado de máquina.

      • Para o escopo Assinatura, insira os seguintes parâmetros:

        Parâmetro Descrição
        ID da assinatura Obrigatória. Insira a ID de assinatura do Azure.
        Nome da assinatura Obrigatória. Insira o nome da assinatura do Azure.
      • Para o escopo do Grupo de Gerenciamento , insira os seguintes parâmetros:

        Parâmetro Descrição
        ID do Grupo de Gerenciamento Obrigatória. Insira a ID do grupo de gerenciamento do Azure.
        Nome do Grupo de Gerenciamento Obrigatória. Insira o nome do grupo de gerenciamento do Azure.
      • Para o escopo do Espaço de Trabalho de Aprendizado de Máquina , insira os seguintes parâmetros:

        Parâmetro Descrição
        ID da assinatura Obrigatória. Insira a ID de assinatura do Azure.
        Nome da assinatura Obrigatória. Insira o nome da assinatura do Azure.
        Grupo de Recursos Obrigatória. Selecione o grupo de recursos que contém o espaço de trabalho.
        Nome do espaço de trabalho ML Obrigatória. Insira o nome do espaço de trabalho existente do Aprendizado de Máquina do Azure.
        Local do espaço de trabalho ML Obrigatória. Insira o local do espaço de trabalho existente do Aprendizado de Máquina do Azure.
    2. Na seção Autenticação, insira ou selecione os seguintes parâmetros:

      Parâmetro Descrição
      Service Principal (ID da Entidade de Serviço) Obrigatória. Insira o ID da entidade de serviço.
      ID do locatário Obrigatória. Insira a ID do locatário.
    3. Na seção Detalhes, insira os seguintes parâmetros:

      Parâmetro Descrição
      Nome da conexão Obrigatório. O nome que você irá usar para se referir a essa conexão de serviço nas propriedades da tarefa. Não nome da sua assinatura do Azure.
      Descrição Opcional. Insira uma descrição da conexão de serviço.
    4. Na seção Segurança, selecione Conceder permissão de acesso a todos os pipelines para permitir que todos os pipelines usem essa conexão de serviço. Se você não selecionar essa opção, deverá conceder manualmente acesso a cada pipeline que usa essa conexão de serviço.

    5. Selecione Verificar e salvar para validar e criar a conexão de serviço.

Após criar a nova conexão de serviço, copie o nome da conexão e cole-o no seu código como o valor para azureSubscription.

Para implantar em um recurso específico do Azure, a tarefa precisa de mais dados sobre esse recurso. Vá para o recurso no portal do Azure e copie os dados em seu código. Por exemplo, para implantar um aplicativo Web, copie o nome do aplicativo do Serviço de Aplicativo do Azure e cole-o no seu código como o valor para WebAppName.

Converta uma conexão de serviço existente do Azure Resource Manager para usar a federação de identidade de workload

Você pode converter rapidamente uma conexão de serviço do Azure Resource Manager existente a fim de usar a federação de identidades de workload para autenticação em vez de uma entidade de serviço. Você poderá usar a ferramenta de conversão de conexão de serviço dentro do Azure DevOps se sua conexão de serviço atender a esses requisitos:

  • O Azure DevOps criou originalmente a conexão de serviço. Se criar sua conexão de serviço manualmente, você não poderá convertê-la com a ferramenta de conversão de conexão de serviço, pois o Azure DevOps não tem permissões para modificar suas próprias credenciais.
  • Apenas um projeto usa a conexão de serviço. Não é possível converter conexões de serviços entre projetos.

Para poder converter uma conexão de serviço:

  1. No projeto do Azure DevOps, acesse Configurações do projeto>Conexões de serviço.

    Para saber mais, confira Abra as configurações do projeto.

  2. Selecione a conexão de serviço que você quer converter para usar a identidade do workload.

  3. Selecione Converter.

    Captura de tela que mostra a seleção de conversão para credenciais federadas.

    Se você tiver uma credencial de entidade de serviço existente com um segredo expirado, verá uma opção diferente para converter.

    Captura de tela que mostra a opção de conversão para usar credenciais federadas quando você tiver um certificado expirado.

  4. Selecione Converter novamente para confirmar que você deseja criar uma nova conexão de serviço.

    A conversão pode levar alguns minutos. Se quiser reverter a conexão, reverta dentro de sete dias.

Converter várias conexões de serviço do Azure Resource Manager com um script

Use um script para atualizar várias conexões de serviço de uma só vez para agora usar a federação de identidades de carga de trabalho para autenticação.

Este exemplo de script do PowerShell requer dois parâmetros: organização do Azure DevOps (exemplo: https://dev.azure.com/fabrikam-tailspin) e projeto do Azure DevOps (exemplo: Space game web agent). Em seguida, o script recupera as conexões de serviço associadas para seu projeto e organização do Azure DevOps.

Ao converter conexões de serviço para usar a federação de identidades de carga de trabalho, você será solicitado a confirmar a atualização para cada conexão que ainda não a usa. Após a confirmação, o script atualiza essas conexões de serviço por meio da API REST do Azure DevOps para utilizar a federação de identidades de carga de trabalho.

O script requer o PowerShell 7.3 ou posterior e a CLI do Azure para ser executado. Salve o script em um .ps1 arquivo e execute-o usando o 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)'"
}

Reverter uma conexão existente do serviço Azure Resource Manager que usa um segredo da entidade de serviço

Você pode reverter uma conexão de serviço automática convertida com seu segredo por sete dias. Após sete dias, crie manualmente um novo segredo.

Se criar e converter sua conexão de serviço manualmente, você não poderá revertê-la com a ferramenta de conversão de conexão de serviço, pois o Azure DevOps não tem permissões para modificar suas próprias credenciais.

Para reverter uma conexão de serviço:

  1. No projeto do Azure DevOps, acesse Pipelines>Conexões de serviço.

  2. Escolha uma conexão de serviço existente para reverter.

  3. Selecione Reverter conversão para o esquema original.

    Captura de tela que mostra a seleção de reversão para uma credencial federada.

  4. Selecione Reverter novamente para confirmar sua escolha.

Criar uma conexão de serviço do Azure Resource Manager que use um segredo da entidade de serviço

Você pode configurar uma conexão de serviço para autenticar com recursos do Azure usando um segredo de entidade de serviço. Essa abordagem é útil quando você precisa limitar ainda mais as permissões para os recursos do Azure que os usuários acessam por meio da conexão de serviço.

Você pode optar por configurar a conexão de serviço manualmente ou automaticamente. É uma prática recomendada usar a abordagem automática se você entrou como proprietário da organização do Azure Pipelines e da assinatura do Azure, e não precisa limitar ainda mais as permissões para os recursos do Azure que os usuários acessam por meio da conexão de serviço.

Recomendamos usar essa abordagem se todos os itens a seguir forem verdadeiros para seu cenário:

  • Você está conectado como o proprietário da organização do Azure Pipelines e da assinatura do Azure.
  • Você não precisa limitar ainda mais as permissões para recursos do Azure que os usuários acessam por meio da conexão de serviço.
  • Você não está se conectando ao Azure Stack ou a uma Nuvem do Azure Governamental.
  • Você não está se conectando do Azure DevOps Server 2019 ou versões anteriores do Team Foundation Server.

Para criar a conexão de serviço:

  1. No projeto do Azure DevOps, acesse Configurações do projeto>Conexões de serviço.

    Para saber mais, confira Abra as configurações do projeto.

  2. Selecione Nova conexão de serviço e, em seguida, selecione Gerenciador de Recursos do Azure e Avançar.

    Captura de tela que mostra a seleção do Gerenciador de Recursos do Azure.

  3. Selecione Entidade de serviço (automático) e Avançar.

    Captura de tela que mostra a seleção de um método de autenticação da entidade de serviço (automático).

  4. Selecione o nível de escopo. Selecione Assinatura, Grupo de Gerenciamento ou Espaço de Trabalho de Aprendizado de Máquina. Grupos de gerenciamento são contêineres que ajudarão você a gerenciar o acesso, a política e a conformidade entre várias assinaturas. Um espaço de trabalho de aprendizado de máquina é o local para criar artefatos de aprendizado de máquina.

    • Para o escopo Assinatura, insira os seguintes parâmetros:

      Parâmetro Descrição
      ID da assinatura Obrigatória. Insira a ID de assinatura do Azure.
      Nome da assinatura Obrigatória. Insira o nome da assinatura do Azure.
    • Para o escopo do Grupo de Gerenciamento , insira os seguintes parâmetros, selecione o grupo de gerenciamento do Azure.

    • Para o escopo do Espaço de Trabalho de Aprendizado de Máquina , insira os seguintes parâmetros:

      Parâmetro Descrição
      ID da assinatura Obrigatória. Insira a ID de assinatura do Azure.
      Nome da assinatura Obrigatória. Insira o nome da assinatura do Azure.
      Grupo de Recursos Obrigatória. Selecione o grupo de recursos que contém o espaço de trabalho.
      Nome do espaço de trabalho ML Obrigatória. Insira o nome do espaço de trabalho existente do Aprendizado de Máquina do Azure.
      Local do espaço de trabalho ML Obrigatória. Insira o local do espaço de trabalho existente do Aprendizado de Máquina do Azure.
  5. Insira o nome de uma conexão de serviço.

  6. Opcionalmente, insira uma descrição para a conexão de serviço.

  7. Selecione Conceder permissão de acesso a todos os pipelines para permitir que todos os pipelines usem essa conexão de serviço. Se você não selecionar essa opção, deverá conceder manualmente acesso a cada pipeline que usa essa conexão de serviço.

  8. Selecione Salvar.

Depois que a nova conexão de serviço for criada:

  • Se você usar o editor clássico, selecione o nome da conexão atribuído na configuração Assinatura do Azure do pipeline.
  • Se você usar um arquivo YAML, copie o nome da conexão em seu código como o valor para azureSubscription.

Para implantar em um recurso específico do Azure, adicione à tarefa mais informações sobre o recurso:

  • Se você usar o editor clássico, selecione os dados que serão adicionados à tarefa. Por exemplo, selecione o nome do Serviço de Aplicativo.
  • Se você usar um arquivo YAML, acesse o recurso no portal do Azure. Copie os dados de que precisa e cole no código da tarefa. Por exemplo, para implantar um aplicativo Web, copie o nome do aplicativo do Serviço de Aplicativo e cole como o valor para WebAppName na tarefa YAML.

Observação

Quando você segue essa abordagem, o Azure DevOps se conecta ao Microsoft Entra ID e cria um registro de aplicativo com um segredo válido por três meses. Quando a conexão de serviço estiver prestes a vencer, o o Microsoft Entra ID exibirá este prompt: Um certificado ou segredo está expirando em breve. Crie um novo. Nesse cenário, você precisa atualizar a conexão de serviço.

Para atualizar a conexão de serviço, no portal do Azure DevOps, edite a conexão e selecione Verificar. Depois de salvar a edição, a conexão de serviço ficará válida por mais três meses.

Recomendamos usar a federação de identidades de cargas de trabalho em vez de criar um segredo. Se usar a federação de identidades de workload, você não precisará alternar segredos, e o registro do aplicativo manterá a finalidade pretendida. Para começar a usar a federação de identidades de cargas de trabalho, acesse a página de detalhes da conexão de serviço e selecione Converter. A conexão de serviço é convertida para usar a federação de identidade de workload em vez de um segredo. Para obter mais informações, consulte Converter uma conexão de serviço existente do Azure Resource Manager para usar a federação de identidades de workload.

Para mais informações, consulte Solucionar problemas de uma conexão de serviço do Azure Resource Manager.

Se você tiver problemas ao usar essa abordagem (como nenhuma assinatura mostrada na lista suspensa) ou se quiser limitar as permissões do usuário, poderá usar uma entidade de serviço ou uma máquina virtual com uma identidade gerenciada.

Consulte Criar uma conexão de serviço do Azure Resource Manager que use uma entidade de serviço existente.

Se você quiser usar um conjunto predefinido de permissões de acesso e ainda não tiver uma entidade de serviço definida para esta finalidade, siga um destes tutoriais para criar uma entidade de serviço:

Para criar uma conexão de serviço que use uma entidade de serviço existente:

  1. No projeto do Azure DevOps, acesse Configurações do projeto>Conexões de serviço.

    Para saber mais, confira Abra as configurações do projeto.

  2. Selecione Nova conexão de serviço e, em seguida, selecione Gerenciador de Recursos do Azure e Avançar.

    Captura de tela que mostra a seleção do Gerenciador de Recursos do Azure.

  3. Selecione Entidade de serviço (manual) e Avançar.

    Captura de tela que mostra a seleção de um método de autenticação da entidade de serviço (manual).

  4. Na caixa de diálogo Nova conexão de serviço do Azure, selecione o Ambiente. Se você selecionar Azure Stack, insira a URL do ambiente, que é algo como https://management.local.azurestack.external.

  5. Selecione o Nível de escopo. Selecione Assinatura, Grupo de Gerenciamento ou Espaço de Trabalho de Aprendizado de Máquina. Grupos de gerenciamento são contêineres que ajudarão você a gerenciar o acesso, a política e a conformidade entre várias assinaturas. Um espaço de trabalho de aprendizado de máquina é o local para criar artefatos de aprendizado de máquina.

    • Para o escopo Assinatura, insira os seguintes parâmetros:

      Parâmetro Descrição
      ID da assinatura Obrigatória. Insira a ID de assinatura do Azure.
      Nome da assinatura Obrigatória. Insira o nome da assinatura do Azure.
    • Para o escopo do Grupo de Gerenciamento , insira os seguintes parâmetros:

      Parâmetro Descrição
      ID do Grupo de Gerenciamento Obrigatória. Insira a ID do grupo de gerenciamento do Azure.
      Nome do Grupo de Gerenciamento Obrigatória. Insira o nome do grupo de gerenciamento do Azure.
    • Para o escopo do Espaço de Trabalho de Aprendizado de Máquina , insira os seguintes parâmetros:

      Parâmetro Descrição
      ID da assinatura Obrigatória. Insira a ID de assinatura do Azure.
      Nome da assinatura Obrigatória. Insira o nome da assinatura do Azure.
      Grupo de Recursos Obrigatória. Selecione o grupo de recursos que contém o espaço de trabalho.
      Nome do espaço de trabalho ML Obrigatória. Insira o nome do espaço de trabalho existente do Aprendizado de Máquina do Azure.
      Local do espaço de trabalho ML Obrigatória. Insira o local do espaço de trabalho existente do Aprendizado de Máquina do Azure.
  6. Na seção Autenticação, insira ou selecione os seguintes parâmetros:

    Parâmetro Descrição
    Service Principal (ID da Entidade de Serviço) Obrigatória. Insira o ID da entidade de serviço.
    Credencial Selecione Chave Principal de Serviço ou Certificado. Se você selecionou Chave Principal de Serviço, insira a chave (senha). Se você selecionou Certificado, insira o certificado.
    ID do locatário Obrigatória. Insira a ID do locatário.
    Verificar Selecione esta opção para validar as configurações inseridas.
  7. Na seção Detalhes, insira os seguintes parâmetros:

    Parâmetro Descrição
    Nome da conexão Obrigatório. O nome que você irá usar para se referir a essa conexão de serviço nas propriedades da tarefa. Não nome da sua assinatura do Azure.
    Descrição Opcional. Insira uma descrição da conexão de serviço.
    Segurança Selecione Conceder permissão de acesso a todos os pipelines para permitir que todos os pipelines usem essa conexão de serviço. Se você não selecionar essa opção, deverá conceder manualmente acesso a cada pipeline que usa essa conexão de serviço.
  8. Selecione Verificar e salvar para validar e criar a conexão de serviço.

Depois que a nova conexão de serviço for criada:

  • Se você usar a conexão de serviço na IU, selecione o nome da conexão que você atribuiu na caixa configuração Assinatura do Azure do pipeline.
  • Se você usar a conexão de serviço em um arquivo YAML, copie o nome da conexão e cole-o no código como o valor para azureSubscription.

Se for preciso, modifique a entidade de serviço para expor as permissões apropriadas.

Para obter mais informações sobre como autenticar com uma entidade de serviço, consulte Usar o controle de acesso baseado em função para gerenciar o acesso aos seus recursos ou a postagem do blog Automatizar uma implantação de grupo de recursos do Azure usando uma entidade de serviço no Visual Studio.

Para mais informações, consulte Solucionar problemas de conexões de serviço do Azure Resource Manager.

Criar uma conexão de serviço do Gerenciador de Recursos do Azure com uma VM que usa uma identidade gerenciada

Observação

Para usar uma identidade gerenciada para autenticar, você deve usar um agente autohospedado em uma máquina virtual (VM) do Azure.

Você pode configurar agentes auto-hospedados em VMs do Azure para usar uma identidade gerenciada do Azure na ID do Microsoft Entra. Nesse cenário, você usa a identidade gerenciada atribuída pelo sistema (entidade de serviço) para conceder aos agentes acesso a qualquer recurso do Azure que ofereça suporte à ID do Microsoft Entra, como uma instância do Cofre de Chaves do Azure.

  1. No projeto do Azure DevOps, acesse Configurações do projeto>Conexões de serviço.

    Para saber mais, confira Abra as configurações do projeto.

  2. Selecione Nova conexão de serviço e, em seguida, selecione Gerenciador de Recursos do Azure e Avançar.

    Captura de tela que mostra a escolha de um tipo de conexão de serviço.

  3. Selecione Identidade gerenciada para o método de autenticação.

    Captura de tela que mostra a seleção do método de autenticação de identidade de serviço gerenciado.

  4. Em Ambiente, selecione o nome do ambiente (opções de nuvem do Azure, Azure Stack ou Governo).

  5. Selecione o nível de escopo. Selecione Assinatura, Grupo de Gerenciamento ou Espaço de Trabalho de Aprendizado de Máquina. Grupos de gerenciamento são contêineres que ajudarão você a gerenciar o acesso, a política e a conformidade entre várias assinaturas. Um espaço de trabalho de aprendizado de máquina é o local para criar artefatos de aprendizado de máquina.

    • Para o escopo Assinatura, insira os seguintes parâmetros:

      Parâmetro Descrição
      ID da assinatura Obrigatória. Insira a ID de assinatura do Azure.
      Nome da assinatura Obrigatória. Insira o nome da assinatura do Azure.
    • Para o escopo do Grupo de Gerenciamento , insira os seguintes parâmetros:

      Parâmetro Descrição
      ID do Grupo de Gerenciamento Obrigatória. Insira a ID do grupo de gerenciamento do Azure.
      Nome do Grupo de Gerenciamento Obrigatória. Insira o nome do grupo de gerenciamento do Azure.
    • Para o escopo do Espaço de Trabalho de Aprendizado de Máquina , insira os seguintes parâmetros:

      Parâmetro Descrição
      ID da assinatura Obrigatória. Insira a ID de assinatura do Azure.
      Nome da assinatura Obrigatória. Insira o nome da assinatura do Azure.
      Grupo de Recursos Obrigatória. Selecione o grupo de recursos que contém o espaço de trabalho.
      Nome do espaço de trabalho ML Obrigatória. Insira o nome do espaço de trabalho existente do Aprendizado de Máquina do Azure.
      Local do espaço de trabalho ML Obrigatória. Insira o local do espaço de trabalho existente do Aprendizado de Máquina do Azure.
  6. Insira o ID do locatário.

  7. Digite o Nome da conexão de serviço.

  8. Opcionalmente, insira uma descrição para a conexão de serviço.

  9. Selecione Conceder permissão de acesso a todos os pipelines para permitir que todos os pipelines usem essa conexão de serviço. Se você não selecionar essa opção, deverá conceder manualmente acesso a cada pipeline que usa essa conexão de serviço.

  10. Selecione Salvar.

  11. Depois que a nova conexão de serviço for criada:

    • Se você usar a conexão de serviço na IU, selecione o nome da conexão que você atribuiu na caixa configuração Assinatura do Azure do pipeline.
    • Se você usar a conexão de serviço em um arquivo YAML, copie o nome da conexão no código como o valor para azureSubscription.
  12. Verifique se a VM (agente) tem as permissões apropriadas.

    Por exemplo, se o código precisar chamar o Azure Resource Manager, atribua a função apropriada à VM usando o RBAC (controle de acesso baseado em função) no Microsoft Entra ID.

    Para obter mais informações, consulte Como posso usar identidades gerenciadas para recursos do Azure? e Usar controle de acesso baseado em função para gerenciar o acesso aos recursos de assinatura do Azure.

Para obter mais informações sobre o processo, consulte Solucionar problemas de conexões de serviço do Azure Resource Manager.

Criar uma conexão de serviço usando um perfil de publicação

Você pode criar uma conexão de serviço usando um perfil de publicação. Você pode usar um perfil de publicação para criar uma conexão de serviço com um Serviço de Aplicativo do Azure.

  1. No projeto do Azure DevOps, acesse Configurações do projeto>Conexões de serviço.

    Para saber mais, confira Abra as configurações do projeto.

  2. Selecione Nova conexão de serviço e, em seguida, selecione Gerenciador de Recursos do Azure e Avançar.

    Captura de tela da seleção do Gerenciador de Recursos do Azure.

  3. Selecione Publicar perfil para o método de autenticação e selecione Avançar.

    Captura de tela da seleção do método de autenticação de perfil de publicação.

  4. Insira os parâmetros s seguir:

    Parâmetro Descrição
    Assinatura Obrigatória. Selecione uma assinatura existente do Azure. Se não aparecer nenhuma assinatura ou instância do Azure, consulte Solucionar problemas de conexões de serviço do Azure Resource Manager.
    WebApp Obrigatória. Insira o nome do aplicativo do Serviço de Aplicativo do Azure.
    Nome da conexão de serviço Obrigatório. O nome que você irá usar para se referir a essa conexão de serviço nas propriedades da tarefa. Não nome da sua assinatura do Azure.
    Descrição Opcional. A descrição da conexão de serviço.
  5. Selecione Conceder permissão de acesso a todos os pipelines para permitir que todos os pipelines usem essa conexão de serviço. Se você não selecionar essa opção, deverá conceder manualmente acesso a cada pipeline que usa essa conexão de serviço.

  6. Selecione Salvar.

Depois que a nova conexão de serviço for criada:

  • Se você usar a conexão de serviço na IU, selecione o nome da conexão que você atribuiu na caixa configuração Assinatura do Azure do pipeline.
  • Se você usar a conexão de serviço em um arquivo YAML, copie o nome da conexão e cole-o no código como o valor para azureSubscription.

Conectar-se a uma Nuvem do Azure Government

Para obter informações sobre como se conectar a uma Nuvem Governamental do Azure, consulte Conectar-se a partir de pipelines do Azure (Nuvem Governamental do Azure).

Conectar-se ao Azure Stack

Para obter mais informações sobre como se conectar ao Azure Stack, confira estes artigos:

Ajuda e suporte