tarefa AzureKeyVault@2 – Azure Key Vault v2

Use esta tarefa para baixar segredos, como chaves de autenticação, chaves de conta de armazenamento, chaves de criptografia de dados, . Arquivos PFX e senhas de uma instância de Key Vault do Azure. A tarefa pode ser usada para buscar os valores mais recentes de todos ou um subconjunto de segredos do cofre e defini-los como variáveis que podem ser usadas em tarefas subsequentes de um pipeline. A tarefa é baseada em nó e funciona com agentes no Linux, macOS e Windows.

Syntax

# Azure Key Vault v2
# Download Azure Key Vault secrets.
- task: AzureKeyVault@2
  inputs:
    azureSubscription: # string. Alias: ConnectedServiceName. Required. Azure subscription. 
    KeyVaultName: # string. Required. Key vault. 
    SecretsFilter: '*' # string. Required. Secrets filter. Default: *.
    #RunAsPreJob: false # boolean. Make secrets available to whole job. Default: false.

Entradas

azureSubscription - Assinatura do Azure
Alias de entrada: ConnectedServiceName. string. Obrigatórios.

Selecione a conexão de serviço para a assinatura do Azure que contém a instância Key Vault do Azure ou crie uma nova conexão. Saiba mais.


KeyVaultName - Cofre de chaves
string. Obrigatórios.

O nome do Key Vault do Azure que contém os segredos a serem baixados.


SecretsFilter - Filtro de segredos
string. Obrigatórios. Valor padrão: *.

Baixa nomes de segredo de acordo com o valor inserido. O valor pode ser o valor padrão para baixar todos os segredos do cofre de chaves selecionado ou uma lista separada por vírgulas de nomes de segredo.


RunAsPreJob - Disponibilizar segredos para todo o trabalho
boolean. Valor padrão: false.

Executa a tarefa antes do início da execução do trabalho. Expõe segredos a todas as tarefas no trabalho, não apenas às tarefas que seguem esta.


Opções de controle de tarefa

Todas as tarefas têm opções de controle além de suas entradas de tarefa. Para obter mais informações, consulte Opções de controle e propriedades comuns da tarefa.

Variáveis de saída

Nenhum.

Comentários

Novidades na versão 2.0: adição de suporte para %3B, %5D em segredos.

Use esta tarefa para baixar segredos, como chaves de autenticação, chaves de conta de armazenamento, chaves de criptografia de dados, . Arquivos PFX e senhas de uma instância de Key Vault do Azure. A tarefa pode ser usada para buscar os valores mais recentes de todos ou um subconjunto de segredos do cofre e defini-los como variáveis que podem ser usadas em tarefas subsequentes de um pipeline. A tarefa é baseada em nó e funciona com agentes no Linux, macOS e Windows.

Recebo um forbidden erro em pipelines no ponto de obter credenciais do Azure Key Vault

Isso ocorrerá se as permissões necessárias estiverem ausentes no cofre de chaves do Azure. Para resolver o problema, adicione uma política de acesso com as permissões corretas.

Pré-requisitos

A tarefa tem os seguintes pré-requisitos:

Você pode criar um cofre de chaves:

Adicione segredos a um cofre de chaves:

  • Usando o cmdlet do PowerShell Set-AzureKeyVaultSecret. Se o segredo não existir, esse cmdlet o criará. Se o segredo já existir, esse cmdlet criará uma nova versão desse segredo.

  • Usando a CLI do Azure. Para adicionar um segredo a um cofre de chaves, por exemplo, um segredo chamado SQLPassword com o valor PlaceholderPassword, digite:

    az keyvault secret set --vault-name 'ContosoKeyVault' --name 'SQLPassword' --value 'PlaceholderPassword'
    

Quando você quiser acessar segredos:

  • Verifique se a conexão de serviço do Azure tem pelo menos permissões Obter e Listar no cofre. Você pode definir essas permissões no portal do Azure:

    • Abra a folha Configurações do cofre, escolha Políticas de acesso e , em seguida, Adicionar novo.
    • Na folha Adicionar política de acesso , escolha Selecionar entidade de segurança e selecione a entidade de serviço para sua conta cliente.
    • Na folha Adicionar política de acesso , escolha Permissões secretas e verifique se Obter e Lista estão marcadas (marcadas).
    • Escolha OK para salvar as alterações.

Observação

Com um agente hospedado pela Microsoft, você deve adicionar o intervalo de IP dele ao firewall. Obtenha a lista semanal de intervalos de IP no arquivo JSON semanal, que é publicado toda quarta-feira. Os novos intervalos de IP entram em vigor na segunda-feira seguinte. Para saber mais, confira Agentes hospedados pela Microsoft. Para encontrar os intervalos de IP necessários para sua organização do Azure DevOps, saiba como identificar os intervalos de IP possíveis para agentes hospedados pela Microsoft.

Observação

Os valores são recuperados como cadeias de caracteres. Por exemplo, se houver um segredo chamado connectionString, uma variável connectionString de tarefa será criada com o valor mais recente do respectivo segredo buscado do cofre de chaves do Azure. Essa variável está disponível em tarefas subsequentes.

Se o valor buscado do cofre for um certificado (por exemplo, um arquivo PFX), a variável de tarefa conterá o conteúdo do PFX no formato de cadeia de caracteres. Você pode usar o seguinte código do PowerShell para recuperar o arquivo PFX da variável de tarefa:

$kvSecretBytes = [System.Convert]::FromBase64String("$(PfxSecret)")
$certCollection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection
$certCollection.Import($kvSecretBytes,$null,[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable)

Se o arquivo de certificado for armazenado localmente no computador, é uma boa prática criptografá-lo com uma senha:

 #Get the file created
$password = 'your password'
$protectedCertificateBytes = $certCollection.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12, $password)
$pfxPath = [Environment]::GetFolderPath("Desktop") + "\MyCert.pfx"
[System.IO.File]::WriteAllBytes($pfxPath, $protectedCertificateBytes)

Para obter mais informações, consulte Introdução aos certificados de Key Vault do Azure.

Requisitos

Requisito Descrição
Tipos de pipeline YAML, build clássico, versão clássica
É executado em Agent, DeploymentGroup
Demandas Nenhum
Funcionalidades Essa tarefa não atende a nenhuma demanda por tarefas subsequentes no trabalho.
Restrições de comando Qualquer
Variáveis configuráveis Qualquer
Versão do agente 2.182.1 ou superior
Categoria da tarefa Implantar