Condividi tramite


AzureKeyVault@2 - Attività di 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.

Input

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


KeyVaultName - Insieme di credenziali delle chiavi
string. Obbligatorio.

Nome del Key Vault di Azure che contiene i segreti da scaricare.


SecretsFilter - Filtro dei 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 dell'attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.

Variabili di output

No.

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 forbidden errore 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:

È possibile creare un insieme di credenziali delle chiavi:

Aggiungere segreti a un insieme di credenziali delle chiavi:

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

  • Tramite l'uso dell'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 disponga almeno delle autorizzazioni Get ed List 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 e quindi Aggiungi nuovo.
    • Nel pannello Aggiungi criteri di accesso scegliere Seleziona entità e selezionare l'entità servizio per l'account client.
    • Nel pannello Aggiungi criteri di accesso scegliere Autorizzazioni segrete e verificare che Get e List siano selezionate (selezionate).
    • 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 connectionString di attività 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 del 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.

Requisiti

Requisito Descrizione
Tipi di pipeline YAML, build classica, versione classica
Viene eseguito in Agente, DeploymentGroup
Richieste Nessuno
Capabilities Questa attività non soddisfa le richieste per le attività successive nel processo.
Restrizioni dei comandi Qualsiasi
Variabili impostabili Qualsiasi
Versione agente 2.182.1 o versione successiva
Categoria attività Distribuire