Partilhar via


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

Serviços de DevOps do Azure | Azure DevOps Server 2022 - Azure DevOps Server 2019

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

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

  • Entidade de serviço com federação de identidade de carga de trabalho
  • Principal de serviço com segredo
  • Identidade gerida 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 usa a federação de identidade de carga de trabalho

A federação de identidades de carga de trabalho 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 que use esta abordagem se todos os seguintes itens forem verdadeiros no seu cenário:

  • Tem a função Proprietário na sua subscrição do Azure.
  • Você não está se conectando ao Azure Stack ou aos ambientes do Azure US Government .
  • Todas as tarefas de extensões do Marketplace que você usa são atualizadas para dar suporte à federação de identidades de carga de trabalho.

Criar uma conexão de serviço com federação de identidades 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 de Aprendizado de Máquina 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, vá para Configurações>do projeto Conexões de serviço.

    Para obter mais informações, consulte Abrir configurações do projeto.

  2. Selecione Nova conexão de serviço e, em seguida, selecione Azure Resource Manager e Avançar.

    Captura de ecrã que mostra a escolha da seleção do Azure Resource Manager.

  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 (automática) da federação de Identidade de Carga de Trabalho.

  4. Selecione um nível de escopo. Selecione Assinatura, Grupo de Gerenciamento ou Espaço de Trabalho de Aprendizado de Máquina. Os grupos de gerenciamento são contêineres que ajudam a gerenciar o acesso, a política e a conformidade em 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 Description
      Subscrição Obrigatório. Selecione a assinatura do Azure.
      Grupo de recursos Obrigatório. 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 Description
      Subscrição Obrigatório. Selecione a assinatura do Azure.
      Grupo de Recursos Obrigatório. Selecione o grupo de recursos que contém o espaço de trabalho.
      Espaço de trabalho de aprendizado de máquina Obrigatório. Selecione o espaço de trabalho do Azure Machine Learning.
  5. Insira um nome de 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 Guardar.

Depois que a nova conexão de serviço for criada, copie o nome da conexão e cole-o em seu código como o valor de 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 para o 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 em seu código como o valor de 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, vá para Configurações>do projeto Conexões de serviço.

    Para obter mais informações, consulte Abrir configurações do projeto.

  2. Selecione Nova conexão de serviço e, em seguida, selecione Azure Resource Manager e Avançar.

    Captura de tela da seleção do método de autenticação (manual) da federação de Identidade de Carga de Trabalho.

  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. No Passo 1: Noções básicas:

    1. Insira um nome de conexão de serviço
    2. Opcionalmente, 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 Seguinte.
  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 Description
    Emissor Obrigatório. O DevOps cria automaticamente o URL do emissor é criado automaticamente
    Identificador do assunto Obrigatório. O DevOps cria automaticamente o identificador de assunto.
    Ambiente Obrigatório. Escolha um ambiente de nuvem para 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. Os grupos de gerenciamento são contêineres que ajudam a gerenciar o acesso, a política e a conformidade em 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 Description
        ID da subscrição Obrigatório. Insira a ID de assinatura do Azure.
        Nome da subscrição Obrigatório. Insira o nome da assinatura do Azure.
      • Para o escopo do Grupo de Gerenciamento, insira os seguintes parâmetros:

        Parâmetro Description
        ID do Grupo de Gestão Obrigatório. Insira a ID do grupo de gerenciamento do Azure.
        Nome do Grupo de Gerenciamento Obrigatório. 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 Description
        ID da subscrição Obrigatório. Insira a ID de assinatura do Azure.
        Nome da subscrição Obrigatório. Insira o nome da assinatura do Azure.
        Grupo de Recursos Obrigatório. Selecione o grupo de recursos que contém o espaço de trabalho.
        Nome do espaço de trabalho de ML Obrigatório. Insira o nome do espaço de trabalho existente do Azure Machine Learning.
        Localização do espaço de trabalho de ML Obrigatório. Insira o local do espaço de trabalho existente do Azure Machine Learning.
    2. Na seção Autenticação, insira ou selecione os seguintes parâmetros:

      Parâmetro Description
      ID da entidade de serviço Obrigatório. Insira o ID da entidade de serviço.
      ID do inquilino Obrigatório. Insira o ID do locatário.
    3. Na seção Detalhes, insira os seguintes parâmetros:

      Parâmetro Description
      Nome da Ligação Obrigatório. O nome que você usa para se referir a essa conexão de serviço nas propriedades da tarefa. Não é 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.

Depois que a nova conexão de serviço for criada, copie o nome da conexão e cole-o em seu código como o valor de 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 para o 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 em seu código como o valor de WebAppName.

Converter uma conexão de serviço existente do Azure Resource Manager para usar a federação de identidade de carga de trabalho

Você pode converter rapidamente uma conexão de serviço existente do Azure Resource Manager para usar a federação de identidade de carga de trabalho para autenticação em vez de uma entidade de serviço. Você pode usar a ferramenta de conversão de conexão de serviço no Azure DevOps se sua conexão de serviço atender a estes requisitos:

  • O Azure DevOps criou originalmente a conexão de serviço. Se você criar manualmente sua conexão de serviço, não poderá converter a conexão de serviço usando a ferramenta de conversão de conexão de serviço porque 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ço entre projetos.

Para converter uma conexão de serviço:

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

    Para obter mais informações, consulte Abrir configurações do projeto.

  2. Selecione a conexão de serviço que você deseja converter para usar a identidade da carga de trabalho.

  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 converter para usar credenciais federadas quando você tem um certificado expirado.

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

    A conversão pode demorar alguns minutos. Se você quiser reverter a conexão, você deve revertê-la 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 identidade 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 está usando. 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 mais recente 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 do 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 você criar e converter manualmente sua conexão de serviço, não poderá reverter a conexão de serviço usando a ferramenta de conversão de conexão de serviço porque 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 Azure DevOps, vá para Conexões do Serviço de Pipelines>.

  2. Selecione 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 reverter para uma credencial federada.

  4. Selecione Reverter novamente para confirmar sua escolha.

Criar uma conexão de serviço do Azure Resource Manager que usa 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 da entidade de serviço. Essa abordagem é útil quando você 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ê pode optar por configurar a conexão de serviço manual 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 que use esta abordagem se todos os seguintes itens forem verdadeiros no seu cenário:

  • Você está conectado como 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.
  • Não se está a ligar ao Azure Stack ou a uma Cloud do Azure Government.
  • Você não está se conectando do Azure DevOps Server 2019 ou de versões anteriores do Team Foundation Server.

Para criar a conexão de serviço:

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

    Para obter mais informações, consulte Abrir configurações do projeto.

  2. Selecione Nova conexão de serviço e, em seguida, selecione Azure Resource Manager e Avançar.

    Captura de ecrã que mostra a seleção do Azure Resource Manager.

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

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

  4. Selecione o nível Escopo. Selecione Assinatura, Grupo de Gerenciamento ou Espaço de Trabalho de Aprendizado de Máquina. Os grupos de gerenciamento são contêineres que ajudam a gerenciar o acesso, a política e a conformidade em 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 Description
      ID da subscrição Obrigatório. Insira a ID de assinatura do Azure.
      Nome da subscrição Obrigatório. 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 Description
      ID da subscrição Obrigatório. Insira a ID de assinatura do Azure.
      Nome da subscrição Obrigatório. Insira o nome da assinatura do Azure.
      Grupo de Recursos Obrigatório. Selecione o grupo de recursos que contém o espaço de trabalho.
      Nome do espaço de trabalho de ML Obrigatório. Insira o nome do espaço de trabalho existente do Azure Machine Learning.
      Localização do espaço de trabalho de ML Obrigatório. Insira o local do espaço de trabalho existente do Azure Machine Learning.
  5. Insira um nome de 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 Guardar.

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

  • Se você usar o editor clássico, selecione o nome de conexão atribuído na configuração de assinatura do Azure do seu 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 mais informações sobre o recurso à tarefa:

  • Se você usar o editor clássico, selecione os dados a serem adicionados à tarefa. Por exemplo, selecione o nome do Serviço de Aplicativo.
  • Se você usar um arquivo YAML, vá para o recurso no portal do Azure. Copie os dados necessários 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-o como o valor para WebAppName a tarefa YAML.

Nota

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

Para atualizar uma 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 é válida por mais três meses.

Recomendamos que você use a federação de identidades de carga de trabalho em vez de criar um segredo. Se você usar a federação de identidades de carga de trabalho, não precisará alternar segredos e o registro de aplicativo manterá a finalidade pretendida. Para começar a usar a federação de identidades de carga de trabalho, vá para 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 carga de trabalho 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 carga de trabalho.

Para obter 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.

Criar uma conexão de serviço do Azure Resource Manager que usa 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 essa finalidade, siga um destes tutoriais para criar uma nova entidade de serviço:

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

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

    Para obter mais informações, consulte Abrir configurações do projeto.

  2. Selecione Nova conexão de serviço e, em seguida, selecione Azure Resource Manager e Avançar.

    Captura de ecrã que mostra a seleção do Azure Resource Manager.

  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. Os grupos de gerenciamento são contêineres que ajudam a gerenciar o acesso, a política e a conformidade em 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 Description
      ID da subscrição Obrigatório. Insira a ID de assinatura do Azure.
      Nome da subscrição Obrigatório. Insira o nome da assinatura do Azure.
    • Para o escopo do Grupo de Gerenciamento, insira os seguintes parâmetros:

      Parâmetro Description
      ID do Grupo de Gestão Obrigatório. Insira a ID do grupo de gerenciamento do Azure.
      Nome do Grupo de Gerenciamento Obrigatório. 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 Description
      ID da subscrição Obrigatório. Insira a ID de assinatura do Azure.
      Nome da subscrição Obrigatório. Insira o nome da assinatura do Azure.
      Grupo de Recursos Obrigatório. Selecione o grupo de recursos que contém o espaço de trabalho.
      Nome do espaço de trabalho de ML Obrigatório. Insira o nome do espaço de trabalho existente do Azure Machine Learning.
      Localização do espaço de trabalho de ML Obrigatório. Insira o local do espaço de trabalho existente do Azure Machine Learning.
  6. Na seção Autenticação, insira ou selecione os seguintes parâmetros:

    Parâmetro Description
    ID da entidade de serviço Obrigatório. 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, digite a chave (senha). Se você selecionou Certificado, insira o certificado.
    ID do inquilino Obrigatório. Insira o 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 Description
    Nome da Ligação Obrigatório. O nome que você usa para se referir a essa conexão de serviço nas propriedades da tarefa. Não é 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 interface do usuário, selecione o nome da conexão que você atribuiu na configuração de assinatura do Azure do seu pipeline.
  • Se você usar a conexão de serviço em um arquivo YAML, copie o nome da conexão e cole-o em seu código como o valor para azureSubscription.

Se necessário, modifique a entidade de serviço para expor as permissões apropriadas.

Para obter mais informações sobre a autenticação usando uma entidade de serviço, consulte Usar controle de acesso baseado em função para gerenciar o acesso aos recursos de assinatura do Azure 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 obter mais informações, consulte Solucionar problemas de conexões de serviço do Azure Resource Manager.

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

Nota

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

Você pode configurar agentes autohospedados 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 ao 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 da Chave do Azure.

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

    Para obter mais informações, consulte Abrir configurações do projeto.

  2. Selecione Nova conexão de serviço e, em seguida, selecione Azure Resource Manager 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 Escopo. Selecione Assinatura, Grupo de Gerenciamento ou Espaço de Trabalho de Aprendizado de Máquina. Os grupos de gerenciamento são contêineres que ajudam a gerenciar o acesso, a política e a conformidade em 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 Description
      ID da subscrição Obrigatório. Insira a ID de assinatura do Azure.
      Nome da subscrição Obrigatório. Insira o nome da assinatura do Azure.
    • Para o escopo do Grupo de Gerenciamento, insira os seguintes parâmetros:

      Parâmetro Description
      ID do Grupo de Gestão Obrigatório. Insira a ID do grupo de gerenciamento do Azure.
      Nome do Grupo de Gerenciamento Obrigatório. 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 Description
      ID da subscrição Obrigatório. Insira a ID de assinatura do Azure.
      Nome da subscrição Obrigatório. Insira o nome da assinatura do Azure.
      Grupo de Recursos Obrigatório. Selecione o grupo de recursos que contém o espaço de trabalho.
      Nome do espaço de trabalho de ML Obrigatório. Insira o nome do espaço de trabalho existente do Azure Machine Learning.
      Localização do espaço de trabalho de ML Obrigatório. Insira o local do espaço de trabalho existente do Azure Machine Learning.
  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 Guardar.

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

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

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

    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, vá para Configurações>do projeto Conexões de serviço.

    Para obter mais informações, consulte Abrir configurações do projeto.

  2. Selecione Nova conexão de serviço e, em seguida, selecione Azure Resource Manager e Avançar.

    Captura de ecrã da seleção do Azure Resource Manager.

  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 seguintes parâmetros:

    Parâmetro Description
    Subscrição Obrigatório. Selecione uma assinatura existente do Azure. Se não aparecerem subscrições ou instâncias do Azure, consulte Resolução de problemas de ligações de serviço do Azure Resource Manager.
    WebApp Obrigatório. 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ê usa para se referir a essa conexão de serviço nas propriedades da tarefa. Não é 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 Guardar.

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

  • Se você usar a conexão de serviço na interface do usuário, selecione o nome da conexão que você atribuiu na configuração de assinatura do Azure do seu pipeline.
  • Se você usar a conexão de serviço em um arquivo YAML, copie o nome da conexão e cole-o em seu 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 (Azure Government Cloud).

Ligar ao Azure Stack

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

Ajuda e suporte