Share via


AzureKeyVault@2 - Azure Key Vault v2-taak

Gebruik deze taak om geheimen te downloaden, zoals verificatiesleutels, opslagaccountsleutels, gegevensversleutelingssleutels, . PFX-bestanden en wachtwoorden van een Azure Key Vault-exemplaar. De taak kan worden gebruikt om de meest recente waarden van alle of een subset van geheimen op te halen uit de kluis en deze in te stellen als variabelen die kunnen worden gebruikt in volgende taken van een pijplijn. De taak is gebaseerd op knooppunten en werkt met agents in Linux, macOS en 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.

Invoerwaarden

azureSubscription - Azure-abonnement
Invoeralias: ConnectedServiceName. string. Vereist.

Selecteer de serviceverbinding voor het Azure-abonnement met het Azure Key Vault-exemplaar of maak een nieuwe verbinding. Meer informatie.


KeyVaultName - Sleutelkluis
string. Vereist.

De naam van de Azure-Key Vault die de geheimen bevat die moeten worden gedownload.


SecretsFilter - Geheimenfilter
string. Vereist. Standaardwaarde: *.

Downloadt geheime namen op basis van de ingevoerde waarde. De waarde kan de standaardwaarde zijn voor het downloaden van alle geheimen uit de geselecteerde sleutelkluis of een door komma's gescheiden lijst met geheime namen.


RunAsPreJob - Geheimen beschikbaar maken voor de hele taak
boolean. Standaardwaarde: false.

Hiermee wordt de taak uitgevoerd voordat de taak wordt uitgevoerd. Geheimen zichtbaar maken voor alle taken in de taak, niet alleen taken die volgen op deze taak.


Opties voor taakbeheer

Alle taken hebben naast de taakinvoer besturingsopties. Zie Besturingsopties en algemene taakeigenschappen voor meer informatie.

Uitvoervariabelen

Geen.

Opmerkingen

Wat is er nieuw in versie 2.0: Ondersteuning toegevoegd voor %3B, %5D in geheimen.

Gebruik deze taak om geheimen te downloaden, zoals verificatiesleutels, opslagaccountsleutels, gegevensversleutelingssleutels, . PFX-bestanden en wachtwoorden van een Azure Key Vault-exemplaar. De taak kan worden gebruikt om de meest recente waarden van alle of een subset van geheimen op te halen uit de kluis en deze in te stellen als variabelen die kunnen worden gebruikt in volgende taken van een pijplijn. De taak is gebaseerd op knooppunten en werkt met agents in Linux, macOS en Windows.

Ik krijg een forbidden foutmelding over pijplijnen op het moment dat referenties worden opgehaald uit Azure Key Vault

Dit gebeurt als de vereiste machtigingen ontbreken in de Azure-sleutelkluis. Voeg een toegangsbeleid met de juiste machtigingen toe om het probleem op te lossen.

Vereisten

De taak heeft de volgende vereisten:

U kunt een sleutelkluis maken:

Geheimen toevoegen aan een sleutelkluis:

  • Met behulp van de PowerShell-cmdlet Set-AzureKeyVaultSecret. Als het geheim niet bestaat, wordt het met deze cmdlet gemaakt. Als het geheim al bestaat, maakt deze cmdlet een nieuwe versie van dat geheim.

  • Met behulp van de Azure CLI. Als u een geheim wilt toevoegen aan een sleutelkluis, bijvoorbeeld een geheim met de naam SQLPassword met de waarde PlaceholderPassword, typt u:

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

Wanneer u toegang wilt tot geheimen:

  • Zorg ervoor dat de Azure-serviceverbinding ten minste de machtigingen Ophalen en Weergeven heeft voor de kluis. U kunt deze machtigingen instellen in de Azure Portal:

    • Open de blade Instellingen voor de kluis, kies Toegangsbeleid en vervolgens Nieuwe toevoegen.
    • Kies op de blade Toegangsbeleid toevoegen de optie Principal selecteren en selecteer de service-principal voor uw clientaccount.
    • Kies op de blade Toegangsbeleid toevoegende optie Machtigingen voor geheim en zorg ervoor dat Ophalen en Lijst zijn ingeschakeld (aangevinkt).
    • Kies OK om de wijzigingen op te slaan.

Notitie

Als u een door Microsoft gehoste agent gebruikt, moet u het IP-bereik van de door Microsoft gehoste agent toevoegen aan uw firewall. Haal de wekelijkse lijst met IP-bereiken op uit het wekelijkse JSON-bestand, dat elke woensdag wordt gepubliceerd. De nieuwe IP-bereiken worden de volgende maandag van kracht. Zie Door Microsoft gehoste agents voor meer informatie. Als u de IP-bereiken wilt vinden die vereist zijn voor uw Azure DevOps-organisatie, leert u hoe u de mogelijke IP-bereiken voor door Microsoft gehoste agents kunt identificeren.

Notitie

Waarden worden opgehaald als tekenreeksen. Als er bijvoorbeeld een geheim is met de naam connectionString, wordt er een taakvariabele connectionString gemaakt met de meest recente waarde van het betreffende geheim dat is opgehaald uit De Azure-sleutelkluis. Deze variabele is vervolgens beschikbaar in volgende taken.

Als de waarde die wordt opgehaald uit de kluis een certificaat is (bijvoorbeeld een PFX-bestand), bevat de taakvariabele de inhoud van de PFX in tekenreeksindeling. U kunt de volgende PowerShell-code gebruiken om het PFX-bestand op te halen uit de taakvariabele:

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

Als het certificaatbestand lokaal op de computer wordt opgeslagen, is het raadzaam om het te versleutelen met een wachtwoord:

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

Zie Aan de slag met Azure Key Vault-certificaten voor meer informatie.

Vereisten

Vereiste Beschrijving
Pijplijntypen YAML, klassieke build, klassieke release
Wordt uitgevoerd op Agent, DeploymentGroup
Eisen Geen
Functies Deze taak voldoet niet aan eventuele vereisten voor volgende taken in de taak.
Opdrachtbeperkingen Alle
Instelbare variabelen Alle
Agentversie 2.182.1 of hoger
Taakcategorie Implementeren