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 Node-baserad 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.

Ingångar

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 - Key Vault-
string. Krävs.

Namnet på Azure Key Vault som innehåller hemligheterna 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 uppgiften innan jobbkörningen börjar. Exponerar hemligheter för alla uppgifter 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

Ingen.

Anmärkningar

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

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 Node-baserad och fungerar med agenter i Linux, macOS och Windows.

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

Detta inträffar om nödvändiga behörigheter saknas i Azure-nyckelvalvet. 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-AzKeyVaultSecret. Om hemligheten inte finns skapar den här cmdleten den. Om hemligheten redan finns skapar den här cmdleten en ny version av hemligheten.

  • Genom att använda Azure CLI. Om du vill lägga till en hemlighet i ett nyckelvalv, till exempel en hemlighet med namnet SQLPassword med värdet PlaceholderPasswordskriver du:

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

När du vill komma åt hemligheter:

  • Kontrollera att Azure-tjänstanslutningen har minst Behörigheter för hämta och lista i valvet. Du kan ange dessa behörigheter i Azure-portalen:

    • Öppna bladet Inställningar för valvet, välj Åtkomstprinciperoch sedan Lägg till nya.
    • På bladet Lägg till åtkomstprincip väljer du Välj huvudnamn och väljer tjänstens huvudnamn för ditt klientkonto.
    • På bladet Lägg till åtkomstprincip väljer du hemliga behörigheter och kontrollerar att Hämta och List är markerade (markerad).
    • Välj OK för att spara ändringarna.

Not

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 veckolistan över IP-intervall från den veckovisa JSON-filen, som publiceras varje onsdag. De nya IP-intervallen träder i kraft följande måndag. Mer information finns i Microsoft-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 identifiera möjliga IP-intervall för Microsoft-värdbaserade agenter.

Not

Värden hämtas som strängar. Om det till exempel finns en hemlighet med namnet connectionStringskapas 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 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 Komma igång med Azure Key Vault-certifikat.

Exempel

Krav

Krav Beskrivning
Pipelinetyper YAML, klassisk version, klassisk version
Körs på Agent, DeploymentGroup
kräver Ingen
funktioner Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet.
Kommandobegränsningar Någon
variabler som kan Någon
Agentversion 2.182.1 eller senare
Aktivitetskategori Gruppera