Partilhar via


AzureKeyVault@2 - Tarefa do Azure Key Vault v2

Utilize esta tarefa para transferir segredos, tais como chaves de autenticação, chaves de conta de armazenamento, chaves de encriptação de dados, . Ficheiros PFX e palavras-passe de uma instância do Azure Key Vault. A tarefa pode ser utilizada para obter os valores mais recentes de todos ou um subconjunto de segredos do cofre e defini-los como variáveis que podem ser utilizadas em tarefas subsequentes de um pipeline. A tarefa é baseada em Nós 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 - Subscrição do Azure
Alias de entrada: ConnectedServiceName. string. Obrigatório.

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


KeyVaultName - Cofre de chaves
string. Obrigatório.

O nome da Key Vault do Azure que contém os segredos a transferir.


SecretsFilter - Filtro de segredos
string. Obrigatório. Valor predefinido: *.

Transfere os nomes dos segredos de acordo com o valor introduzido. O valor pode ser o valor predefinido para transferir todos os segredos do cofre de chaves selecionado ou uma lista separada por vírgulas de nomes de segredos.


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

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


Opções de controlo de tarefas

Todas as tarefas têm opções de controlo para além das respetivas entradas de tarefas. Para obter mais informações, veja Opções de controlo e propriedades de tarefas comuns.

Variáveis de saída

Nenhum.

Observações

Novidades na Versão 2.0: suporte adicionado para %3B, %5D em segredos.

Utilize esta tarefa para transferir segredos, tais como chaves de autenticação, chaves de conta de armazenamento, chaves de encriptação de dados, . Ficheiros PFX e palavras-passe de uma instância do Azure Key Vault. A tarefa pode ser utilizada para obter os valores mais recentes de todos ou um subconjunto de segredos do cofre e defini-los como variáveis que podem ser utilizadas em tarefas subsequentes de um pipeline. A tarefa é baseada em Nós e funciona com agentes no Linux, macOS e Windows.

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

Isto ocorre se as permissões necessárias estiverem em falta 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:

Pode criar um cofre de chaves:

Adicionar segredos a um cofre de chaves:

  • Ao utilizar o cmdlet do PowerShell Set-AzureKeyVaultSecret. Se o segredo não existir, este cmdlet cria-o. Se o segredo já existir, este cmdlet cria uma nova versão desse segredo.

  • Com a CLI do Azure. Para adicionar um segredo a um cofre de chaves, por exemplo, um segredo com o nome SQLPassword com o valor PlaceholderPassword, escreva:

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

Quando pretender aceder a segredos:

  • Confirme que a ligação de serviço do Azure tem, pelo menos, permissões Obter e Listar no cofre. Pode definir estas permissões no portal do Azure:

    • Abra o painel Definições do cofre, selecione Políticas de acesso e, em seguida, Adicionar novo.
    • No painel Adicionar política de acesso , selecione Selecionar principal e selecione o principal de serviço da sua conta de cliente.
    • No painel Adicionar política de acesso , selecione Permissões de segredos e certifique-se de que a opção Obter e Lista está selecionada (marcada).
    • Selecione OK para guardar as alterações.

Nota

Se estiver a utilizar um agente alojado na Microsoft, tem de adicionar o intervalo de IP do agente alojado pela Microsoft à firewall. Obtenha a lista semanal de intervalos de IP do ficheiro JSON semanal, que é publicado todas as quartas-feiras. Os novos intervalos de IP tornam-se eficazes na segunda-feira seguinte. Para obter mais informações, veja Agentes alojados na Microsoft. Para encontrar os intervalos de IP necessários para a sua organização do Azure DevOps, saiba como identificar os possíveis intervalos de IP para agentes alojados na Microsoft.

Nota

Os valores são obtidos como cadeias. Por exemplo, se existir um segredo com o nome connectionString, é criada uma variável connectionString de tarefa com o valor mais recente do respetivo segredo obtido a partir do cofre de chaves do Azure. Esta variável está então disponível em tarefas subsequentes.

Se o valor obtido do cofre for um certificado (por exemplo, um ficheiro PFX), a variável de tarefa irá conter os conteúdos do PFX no formato de cadeia. Pode utilizar o seguinte código do PowerShell para obter o ficheiro 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 ficheiro de certificado for armazenado localmente no computador, é boa prática encriptá-lo com uma palavra-passe:

 #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, veja Introdução aos certificados do Azure Key Vault.

Requisitos

Requisito Description
Tipos de pipeline YAML, Compilação clássica, Versão clássica
É executado em Agent, DeploymentGroup
Exigências Nenhuma
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes na tarefa.
Restrições de comandos Qualquer
Variáveis de definição Qualquer
Versão do agente 2.182.1 ou superior
Categoria da tarefa Implementação