Condividi tramite


AzureKeyVault@2 - Attività azure Key Vault v2

Usare questa attività per scaricare segreti, ad esempio chiavi di autenticazione, chiavi dell'account di archiviazione, chiavi di crittografia dei dati, . File PFX e password da un'istanza di Azure Key Vault. L'attività può essere usata per recuperare i valori più recenti di tutti o un subset di segreti dall'insieme di credenziali e impostarli come variabili che possono essere usate nelle attività successive di una pipeline. L'attività è basata su Node e funziona con gli agenti in Linux, macOS e Windows.

Sintassi

# 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.

Ingressi

azureSubscription - sottoscrizione di Azure
Alias di input: ConnectedServiceName. string. Obbligatorio.

Selezionare la connessione al servizio per la sottoscrizione di Azure contenente l'istanza di Azure Key Vault oppure creare una nuova connessione. Altre informazioni.


dell'insieme di credenziali delle chiavi di
string. Obbligatorio.

Nome dell'insieme di credenziali delle chiavi di Azure che contiene i segreti da scaricare.


di filtro segreti
string. Obbligatorio. Valore predefinito: *.

Scarica i nomi dei segreti in base al valore immesso. Il valore può essere il valore predefinito per scaricare tutti i segreti dall'insieme di credenziali delle chiavi selezionato o un elenco delimitato da virgole di nomi segreti.


RunAsPreJob - Rendere disponibili segreti per l'intero processo
boolean. Valore predefinito: false.

Esegue l'attività prima dell'inizio dell'esecuzione del processo. Espone i segreti a tutte le attività del processo, non solo alle attività che seguono questa attività.


Opzioni di controllo attività

Tutte le attività hanno opzioni di controllo oltre ai relativi input di attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.

Variabili di output

Nessuno.

Osservazioni

Novità della versione 2.0: aggiunta del supporto per %3B, %5D nei segreti.

Usare questa attività per scaricare segreti, ad esempio chiavi di autenticazione, chiavi dell'account di archiviazione, chiavi di crittografia dei dati, . File PFX e password da un'istanza di Azure Key Vault. L'attività può essere usata per recuperare i valori più recenti di tutti o un subset di segreti dall'insieme di credenziali e impostarli come variabili che possono essere usate nelle attività successive di una pipeline. L'attività è basata su Node e funziona con gli agenti in Linux, macOS e Windows.

Viene visualizzato un errore di forbidden nelle pipeline al momento del recupero delle credenziali da Azure Key Vault

Ciò si verifica se mancano le autorizzazioni necessarie nell'insieme di credenziali delle chiavi di Azure. Per risolvere il problema, aggiungere un criterio di accesso con le autorizzazioni corrette.

Prerequisiti

L'attività presenta i prerequisiti seguenti:

  • Una sottoscrizione di Azure collegata ad Azure Pipelines o Team Foundation Server usando la connessione al servizio azure Resource Manager .
  • Un azure Key Vault contenente i segreti.

È possibile creare un insieme di credenziali delle chiavi:

  • Nel portale di Azure
  • Usando azure PowerShell
  • Usando l'interfaccia della riga di comando di Azure

Aggiungere segreti a un insieme di credenziali delle chiavi:

  • Usando il cmdlet di PowerShell Set-AzKeyVaultSecret. Se il segreto non esiste, questo cmdlet lo crea. Se il segreto esiste già, questo cmdlet crea una nuova versione di tale segreto.

  • Usando l'interfaccia della riga di comando di Azure. Per aggiungere un segreto a un insieme di credenziali delle chiavi, ad esempio un segreto denominato SQLPassword con il valore PlaceholderPassword, digitare:

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

Quando si vuole accedere ai segreti:

  • Verificare che la connessione al servizio di Azure abbia almeno Ottenere e List autorizzazioni per l'insieme di credenziali. È possibile impostare queste autorizzazioni nel portale di Azure :

    • Aprire il pannello Impostazioni per l'insieme di credenziali, scegliere Criteri di accesso, quindi Aggiungi nuovo.
    • Nel pannello Aggiungi criteri di accesso scegliere Selezionare principale e selezionare l'entità servizio per l'account client.
    • Nel pannello Aggiungi criteri di accesso scegliere Autorizzazioni segrete e assicurarsi che Ottenere e List siano selezionati (selezionata).
    • Scegliere OK per salvare le modifiche.

Nota

Se si usa un agente ospitato da Microsoft, è necessario aggiungere l'intervallo IP dell'agente ospitato da Microsoft al firewall. Ottenere l'elenco settimanale degli intervalli IP dal file JSON settimanale , pubblicato ogni mercoledì. I nuovi intervalli IP diventano effettivi il lunedì seguente. Per altre informazioni, vedere agenti ospitati da Microsoft. Per trovare gli intervalli IP necessari per l'organizzazione di Azure DevOps, informazioni su come identificare gli intervalli IP possibili per gli agenti ospitati da Microsoft.

Nota

I valori vengono recuperati come stringhe. Ad esempio, se è presente un segreto denominato connectionString, viene creata una variabile di attività connectionString con il valore più recente del rispettivo segreto recuperato dall'insieme di credenziali delle chiavi di Azure. Questa variabile è quindi disponibile nelle attività successive.

Se il valore recuperato dall'insieme di credenziali è un certificato (ad esempio, un file PFX), la variabile di attività conterrà il contenuto del file PFX in formato stringa. È possibile usare il codice di PowerShell seguente per recuperare il file PFX dalla variabile di attività:

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

Se il file di certificato verrà archiviato localmente nel computer, è consigliabile crittografarlo con una password:

 #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)

Per altre informazioni, vedere Introduzione ai certificati di Azure Key Vault.

Esempi

Fabbisogno

Requisito Descrizione
Tipi di pipeline YAML, build classica, versione classica
Viene eseguito in Agente, DeploymentGroup
richieste Nessuno
funzionalità di Questa attività non soddisfa alcuna richiesta di attività successive nel processo.
restrizioni dei comandi Qualunque
variabili impostabili Qualunque
Versione dell'agente 2.182.1 o versione successiva
Categoria attività Schierare