Compartilhar via


AzureKeyVault@2 – Tarefa do 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 do Azure Key Vault . 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.

Sintaxe

# 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. Necessário.

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


do cofre de chaves do
string. Necessário.

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


de filtro de Segredos
string. Necessário. Valor padrão: *.

Baixa nomes secretos 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 secretos.


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 as opções de Controle de e as propriedades comuns da tarefa.

Variáveis de saída

Nenhum.

Observações

Novidades na versão 2.0: adicionado 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 do Azure Key Vault . 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 erro forbidden 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, adicionar 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-AzKeyVaultSecret. 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ê deseja acessar segredos:

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

    • Abra a folha configurações de para o cofre, escolha políticas de acessoe, em seguida, Adicionar nova.
    • Na folha Adicionar política de acesso, escolha Selecionar de 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 List estão marcadas (marcadas).
    • Escolha OK para salvar as alterações.

Nota

Se você estiver usando um agente hospedado pela Microsoft, deverá adicionar o intervalo de IP do agente hospedado pela Microsoft ao firewall. Obtenha a lista semanal de intervalos de IP do arquivo JSON semanal, que é publicado todas as quartas-feiras. Os novos intervalos de IP passam a vigorar na segunda-feira seguinte. Para obter mais informações, consulte agentes hospedados pela Microsoft. Para localizar os intervalos de IP necessários para sua organização do Azure DevOps, saiba como identificar os possíveis intervalos de IP para agentes hospedados pela Microsoft.

Nota

Os valores são recuperados como cadeias de caracteres. Por exemplo, se houver um segredo chamado connectionString, uma variável de tarefa connectionString será criada com o valor mais recente do respectivo segredo buscado do cofre de chaves do Azure. Essa variável está disponível nas 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 do Azure Key Vault.

Exemplos

Requisitos

Requisito Descrição
Tipos de pipeline YAML, build clássico, versão clássica
Execuções em Agent, DeploymentGroup
de demandas Nenhum
recursos Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho.
restrições de comando Qualquer
variáveis settable Qualquer
Versão do agente 2.182.1 ou superior
Categoria de tarefa Implantar