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:
- En Azure-prenumeration som är länkad till Azure Pipelines eller Team Foundation Server med hjälp av Azure Resource Manager-tjänstanslutningen.
- En Azure Key Vault- som innehåller hemligheterna.
Du kan skapa ett nyckelvalv:
- I Azure-portalen
- Med hjälp av Azure PowerShell-
- Med hjälp av Azure CLI-
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
snabbstart: Använda hemligheter från Azure Key Vault (klassisk/YAML)
Självstudie: Använda Azure Key Vault-hemligheter i din YAML-pipeline
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 |