Dela via


AzureKeyVault@2 – Azure Key Vault v2-uppgift

Använd den här uppgiften för att ladda ned hemligheter, till exempel autentiseringsnycklar, lagringskontonycklar, datakrypteringsnycklar, . PFX-filer och lösenord från en Azure Key Vault-instans. Uppgiften kan användas för att hämta de senaste värdena för alla eller en delmängd hemligheter från valvet och ange dem som variabler som kan användas i efterföljande uppgifter i en pipeline. Uppgiften är nodbaserad och fungerar med agenter i Linux, macOS och 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.

Indata

azureSubscription - Azure-prenumeration
Indataalias: ConnectedServiceName. string. Krävs.

Välj tjänstanslutningen för Azure-prenumerationen som innehåller Azure Key Vault-instansen eller skapa en ny anslutning. Läs mer.


KeyVaultName - Nyckelvalv
string. Krävs.

Namnet på den Azure-Key Vault som innehåller de hemligheter som ska laddas ned.


SecretsFilter - Hemlighetsfilter
string. Krävs. Standardvärde: *.

Laddar ned hemliga namn enligt det angivna värdet. Värdet kan vara standardvärdet för att ladda ned alla hemligheter från det valda nyckelvalvet eller en kommaavgränsad lista med hemliga namn.


RunAsPreJob - Gör hemligheter tillgängliga för hela jobbet
boolean. Standardvärde: false.

Kör aktiviteten innan jobbkörningen påbörjas. Exponerar hemligheter för alla aktiviteter i jobbet, inte bara uppgifter som följer den här.


Alternativ för aktivitetskontroll

Alla aktiviteter har kontrollalternativ utöver sina uppgiftsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.

Utdatavariabler

Inga.

Kommentarer

Nyheter i version 2.0: Stöd för %3B, %5D i hemligheter har lagts till.

Använd den här uppgiften för att ladda ned hemligheter, till exempel autentiseringsnycklar, lagringskontonycklar, datakrypteringsnycklar, . PFX-filer och lösenord från en Azure Key Vault-instans. Uppgiften kan användas för att hämta de senaste värdena för alla eller en delmängd hemligheter från valvet och ange dem som variabler som kan användas i efterföljande uppgifter i en pipeline. Uppgiften är nodbaserad och fungerar med agenter i Linux, macOS och Windows.

Jag får ett forbidden fel i pipelines när jag hämtar autentiseringsuppgifter från Azure Key Vault

Detta inträffar om de nödvändiga behörigheterna saknas i Azure Key Vault. Lös problemet genom att lägga till en åtkomstprincip med rätt behörigheter.

Förutsättningar

Uppgiften har följande förutsättningar:

Du kan skapa ett nyckelvalv:

Lägg till hemligheter i ett nyckelvalv:

  • Genom att använda PowerShell-cmdleten Set-AzureKeyVaultSecret. Om hemligheten inte finns skapar den här cmdleten den. Om hemligheten redan finns skapar den här cmdleten en ny version av hemligheten.

  • Med hjälp av Azure CLI. Om du vill lägga till en hemlighet i ett nyckelvalv, till exempel en hemlighet med namnet SQLPassword med värdet PlaceholderPassword, skriver du:

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

När du vill komma åt hemligheter:

  • Se till att Azure-tjänstanslutningen har minst behörigheterna Hämta och Lista för valvet. Du kan ange dessa behörigheter i Azure Portal:

    • Öppna bladet Inställningar för valvet, välj Åtkomstprinciper och sedan Lägg till ny.
    • På bladet Lägg till åtkomstprincip väljer du Välj huvudnamn och tjänstens huvudnamn för klientkontot.
    • På bladet Lägg till åtkomstprincip väljer du Hemliga behörigheter och ser till att Hämta och Lista är markerade (markerad).
    • Spara ändringarna genom att välja OK .

Anteckning

Om du använder en Microsoft-värdbaserad agent måste du lägga till IP-intervallet för den Microsoft-värdbaserade agenten i brandväggen. Hämta den veckovisa listan över IP-intervall från den veckovisa JSON-filen, som publiceras varje onsdag. De nya IP-intervallen börjar gälla följande måndag. Mer information finns i Microsofts värdbaserade agenter. Om du vill hitta de IP-intervall som krävs för din Azure DevOps-organisation kan du lära dig hur du identifierar möjliga IP-intervall för Microsoft-värdbaserade agenter.

Anteckning

Värden hämtas som strängar. Om det till exempel finns en hemlighet med namnet connectionString skapas en aktivitetsvariabel connectionString med det senaste värdet för respektive hemlighet som hämtats från Azure Key Vault. Den här variabeln är sedan tillgänglig i efterföljande uppgifter.

Om värdet som hämtas från valvet är ett certifikat (till exempel en PFX-fil) innehåller aktivitetsvariabeln innehållet i PFX i strängformat. Du kan använda följande PowerShell-kod för att hämta PFX-filen från aktivitetsvariabeln:

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

Om certifikatfilen ska lagras lokalt på datorn är det bra att kryptera den med ett lösenord:

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

Mer information finns i Kom igång med Azure Key Vault-certifikat.

Krav

Krav Beskrivning
Pipelinetyper YAML, klassisk version, klassisk version
Körs på Agent, DeploymentGroup
Krav Ingen
Funktioner Den här aktiviteten uppfyller inte några krav för efterföljande uppgifter i jobbet.
Kommandobegränsningar Valfri
Inställningsbara variabler Valfri
Agentversion 2.182.1 eller senare
Uppgiftskategori Distribuera